@rechargeapps/storefront-client 1.17.3 → 1.18.1

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 (77) hide show
  1. package/dist/cjs/api/address.js +20 -10
  2. package/dist/cjs/api/address.js.map +1 -1
  3. package/dist/cjs/api/auth.js.map +1 -1
  4. package/dist/cjs/api/bundle.js +13 -8
  5. package/dist/cjs/api/bundle.js.map +1 -1
  6. package/dist/cjs/api/charge.js +22 -7
  7. package/dist/cjs/api/charge.js.map +1 -1
  8. package/dist/cjs/api/collection.js +88 -0
  9. package/dist/cjs/api/collection.js.map +1 -0
  10. package/dist/cjs/api/customer.js +17 -8
  11. package/dist/cjs/api/customer.js.map +1 -1
  12. package/dist/cjs/api/gift.js +2 -2
  13. package/dist/cjs/api/gift.js.map +1 -1
  14. package/dist/cjs/api/membership.js +15 -5
  15. package/dist/cjs/api/membership.js.map +1 -1
  16. package/dist/cjs/api/membershipProgram.js +7 -2
  17. package/dist/cjs/api/membershipProgram.js.map +1 -1
  18. package/dist/cjs/api/metafield.js +3 -3
  19. package/dist/cjs/api/metafield.js.map +1 -1
  20. package/dist/cjs/api/onetime.js +10 -5
  21. package/dist/cjs/api/onetime.js.map +1 -1
  22. package/dist/cjs/api/order.js +2 -2
  23. package/dist/cjs/api/order.js.map +1 -1
  24. package/dist/cjs/api/paymentMethod.js +9 -4
  25. package/dist/cjs/api/paymentMethod.js.map +1 -1
  26. package/dist/cjs/api/plan.js +2 -2
  27. package/dist/cjs/api/plan.js.map +1 -1
  28. package/dist/cjs/api/product.js +1 -1
  29. package/dist/cjs/api/product.js.map +1 -1
  30. package/dist/cjs/api/store.js +1 -1
  31. package/dist/cjs/api/store.js.map +1 -1
  32. package/dist/cjs/api/subscription.js +17 -12
  33. package/dist/cjs/api/subscription.js.map +1 -1
  34. package/dist/cjs/index.js +4 -0
  35. package/dist/cjs/index.js.map +1 -1
  36. package/dist/cjs/utils/request.js +11 -0
  37. package/dist/cjs/utils/request.js.map +1 -1
  38. package/dist/esm/api/address.js +21 -11
  39. package/dist/esm/api/address.js.map +1 -1
  40. package/dist/esm/api/auth.js.map +1 -1
  41. package/dist/esm/api/bundle.js +13 -8
  42. package/dist/esm/api/bundle.js.map +1 -1
  43. package/dist/esm/api/charge.js +23 -8
  44. package/dist/esm/api/charge.js.map +1 -1
  45. package/dist/esm/api/collection.js +84 -0
  46. package/dist/esm/api/collection.js.map +1 -0
  47. package/dist/esm/api/customer.js +18 -9
  48. package/dist/esm/api/customer.js.map +1 -1
  49. package/dist/esm/api/gift.js +3 -3
  50. package/dist/esm/api/gift.js.map +1 -1
  51. package/dist/esm/api/membership.js +16 -6
  52. package/dist/esm/api/membership.js.map +1 -1
  53. package/dist/esm/api/membershipProgram.js +8 -3
  54. package/dist/esm/api/membershipProgram.js.map +1 -1
  55. package/dist/esm/api/metafield.js +4 -4
  56. package/dist/esm/api/metafield.js.map +1 -1
  57. package/dist/esm/api/onetime.js +11 -6
  58. package/dist/esm/api/onetime.js.map +1 -1
  59. package/dist/esm/api/order.js +3 -3
  60. package/dist/esm/api/order.js.map +1 -1
  61. package/dist/esm/api/paymentMethod.js +10 -5
  62. package/dist/esm/api/paymentMethod.js.map +1 -1
  63. package/dist/esm/api/plan.js +3 -3
  64. package/dist/esm/api/plan.js.map +1 -1
  65. package/dist/esm/api/product.js +2 -2
  66. package/dist/esm/api/product.js.map +1 -1
  67. package/dist/esm/api/store.js +2 -2
  68. package/dist/esm/api/store.js.map +1 -1
  69. package/dist/esm/api/subscription.js +18 -13
  70. package/dist/esm/api/subscription.js.map +1 -1
  71. package/dist/esm/index.js +1 -0
  72. package/dist/esm/index.js.map +1 -1
  73. package/dist/esm/utils/request.js +11 -1
  74. package/dist/esm/utils/request.js.map +1 -1
  75. package/dist/index.d.ts +111 -74
  76. package/dist/umd/recharge-client.min.js +11 -11
  77. package/package.json +2 -2
@@ -3,14 +3,22 @@
3
3
  var request = require('../utils/request.js');
4
4
 
5
5
  function listAddresses(session, query) {
6
- return request.rechargeApiRequest("get", `/addresses`, { query }, session);
6
+ return request.rechargeApiRequest(
7
+ "get",
8
+ `/addresses`,
9
+ { query },
10
+ request.getInternalSession(session, "listAddresses")
11
+ );
7
12
  }
8
13
  async function getAddress(session, id, options) {
9
14
  const { address } = await request.rechargeApiRequest(
10
15
  "get",
11
16
  `/addresses`,
12
- { id, query: { include: options?.include } },
13
- session
17
+ {
18
+ id,
19
+ query: { include: options?.include }
20
+ },
21
+ request.getInternalSession(session, "getAddress")
14
22
  );
15
23
  return address;
16
24
  }
@@ -19,7 +27,7 @@ async function createAddress(session, createRequest) {
19
27
  "post",
20
28
  `/addresses`,
21
29
  { data: { customer_id: session.customerId ? Number(session.customerId) : void 0, ...createRequest } },
22
- session
30
+ request.getInternalSession(session, "createAddress")
23
31
  );
24
32
  return address;
25
33
  }
@@ -28,18 +36,20 @@ async function updateAddress(session, id, updateRequest) {
28
36
  "put",
29
37
  `/addresses`,
30
38
  { id, data: updateRequest },
31
- session
39
+ request.getInternalSession(session, "updateAddress")
32
40
  );
33
41
  return address;
34
42
  }
35
43
  async function applyDiscountToAddress(session, id, discountCode) {
36
- return updateAddress(session, id, { discounts: [{ code: discountCode }] });
44
+ return updateAddress(request.getInternalSession(session, "applyDiscountToAddress"), id, {
45
+ discounts: [{ code: discountCode }]
46
+ });
37
47
  }
38
48
  async function removeDiscountsFromAddress(session, id) {
39
- return updateAddress(session, id, { discounts: [] });
49
+ return updateAddress(request.getInternalSession(session, "removeDiscountsFromAddress"), id, { discounts: [] });
40
50
  }
41
51
  function deleteAddress(session, id) {
42
- return request.rechargeApiRequest("delete", `/addresses`, { id }, session);
52
+ return request.rechargeApiRequest("delete", `/addresses`, { id }, request.getInternalSession(session, "deleteAddress"));
43
53
  }
44
54
  async function mergeAddresses(session, mergeRequest) {
45
55
  const { address } = await request.rechargeApiRequest(
@@ -48,7 +58,7 @@ async function mergeAddresses(session, mergeRequest) {
48
58
  {
49
59
  data: mergeRequest
50
60
  },
51
- session
61
+ request.getInternalSession(session, "mergeAddresses")
52
62
  );
53
63
  return address;
54
64
  }
@@ -59,7 +69,7 @@ async function skipFutureCharge(session, id, skipRequest) {
59
69
  {
60
70
  data: skipRequest
61
71
  },
62
- session
72
+ request.getInternalSession(session, "skipFutureCharge")
63
73
  );
64
74
  return charge;
65
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"address.js","sources":["../../../src/api/address.ts"],"sourcesContent":["import { rechargeApiRequest } from '../utils/request';\nimport {\n AddressResponse,\n AddressListParams,\n CreateAddressRequest,\n UpdateAddressRequest,\n AddressListResponse,\n MergeAddressesRequest,\n SkipFutureChargeAddressRequest,\n SkipFutureChargeAddressResponse,\n GetAddressOptions,\n} from '../types/address';\nimport { Session } from '../types/session';\n\n/** Returns all addresses from the store, or addresses for the customer given in the parameter. */\nexport function listAddresses(session: Session, query?: AddressListParams) {\n return rechargeApiRequest<AddressListResponse>('get', `/addresses`, { query }, session);\n}\n\n/** Retrieves address for customer based on specified address id. */\nexport async function getAddress(session: Session, id: string | number, options?: GetAddressOptions) {\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'get',\n `/addresses`,\n { id, query: { include: options?.include } },\n session\n );\n return address;\n}\n\n/** Create a new address for a customer. */\nexport async function createAddress(session: Session, createRequest: CreateAddressRequest) {\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'post',\n `/addresses`,\n { data: { customer_id: session.customerId ? Number(session.customerId) : undefined, ...createRequest } },\n session\n );\n return address;\n}\n\n/** Updates an existing address to match the specified parameters. */\nexport async function updateAddress(session: Session, id: string | number, updateRequest: UpdateAddressRequest) {\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'put',\n `/addresses`,\n { id, data: updateRequest },\n session\n );\n return address;\n}\n\n/** Apply discount code to an address. Addresses are currently limited to a single discount. */\nexport async function applyDiscountToAddress(session: Session, id: string | number, discountCode: string) {\n return updateAddress(session, id, { discounts: [{ code: discountCode }] });\n}\n\n/** Removes all discounts from an address. */\nexport async function removeDiscountsFromAddress(session: Session, id: string | number) {\n return updateAddress(session, id, { discounts: [] });\n}\n\n/** Deletes an address. Only Addresses with no active Subscriptions can be deleted. */\nexport function deleteAddress(session: Session, id: string | number) {\n return rechargeApiRequest<void>('delete', `/addresses`, { id }, session);\n}\n\n/**\n * Merges up to 10 source addresses into 1 target address.\n */\nexport async function mergeAddresses(session: Session, mergeRequest: MergeAddressesRequest) {\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'post',\n `/addresses/merge`,\n {\n data: mergeRequest,\n },\n session\n );\n return address;\n}\n\n/**\n * Skip a Charge in the future for one or multiple Subscriptions associated with the Address.\n */\nexport async function skipFutureCharge(\n session: Session,\n id: string | number,\n skipRequest: SkipFutureChargeAddressRequest\n) {\n const { charge } = await rechargeApiRequest<SkipFutureChargeAddressResponse>(\n 'post',\n `/addresses/${id}/charges/skip`,\n {\n data: skipRequest,\n },\n session\n );\n return charge;\n}\n"],"names":["rechargeApiRequest"],"mappings":";;;;AAegB,SAAA,aAAA,CAAc,SAAkB,KAA2B,EAAA;AACzE,EAAA,OAAOA,2BAAwC,KAAO,EAAA,CAAA,UAAA,CAAA,EAAc,EAAE,KAAA,IAAS,OAAO,CAAA,CAAA;AACxF,CAAA;AAGsB,eAAA,UAAA,CAAW,OAAkB,EAAA,EAAA,EAAqB,OAA6B,EAAA;AACnG,EAAM,MAAA,EAAE,OAAQ,EAAA,GAAI,MAAMA,0BAAA;AAAA,IACxB,KAAA;AAAA,IACA,CAAA,UAAA,CAAA;AAAA,IACA,EAAE,EAAI,EAAA,KAAA,EAAO,EAAE,OAAS,EAAA,OAAA,EAAS,SAAU,EAAA;AAAA,IAC3C,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,OAAA,CAAA;AACT,CAAA;AAGsB,eAAA,aAAA,CAAc,SAAkB,aAAqC,EAAA;AACzF,EAAM,MAAA,EAAE,OAAQ,EAAA,GAAI,MAAMA,0BAAA;AAAA,IACxB,MAAA;AAAA,IACA,CAAA,UAAA,CAAA;AAAA,IACA,EAAE,IAAA,EAAM,EAAE,WAAA,EAAa,OAAQ,CAAA,UAAA,GAAa,MAAO,CAAA,OAAA,CAAQ,UAAU,CAAA,GAAI,KAAW,CAAA,EAAA,GAAG,eAAgB,EAAA;AAAA,IACvG,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,OAAA,CAAA;AACT,CAAA;AAGsB,eAAA,aAAA,CAAc,OAAkB,EAAA,EAAA,EAAqB,aAAqC,EAAA;AAC9G,EAAM,MAAA,EAAE,OAAQ,EAAA,GAAI,MAAMA,0BAAA;AAAA,IACxB,KAAA;AAAA,IACA,CAAA,UAAA,CAAA;AAAA,IACA,EAAE,EAAI,EAAA,IAAA,EAAM,aAAc,EAAA;AAAA,IAC1B,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,OAAA,CAAA;AACT,CAAA;AAGsB,eAAA,sBAAA,CAAuB,OAAkB,EAAA,EAAA,EAAqB,YAAsB,EAAA;AACxG,EAAO,OAAA,aAAA,CAAc,OAAS,EAAA,EAAA,EAAI,EAAE,SAAA,EAAW,CAAC,EAAE,IAAM,EAAA,YAAA,EAAc,CAAA,EAAG,CAAA,CAAA;AAC3E,CAAA;AAGsB,eAAA,0BAAA,CAA2B,SAAkB,EAAqB,EAAA;AACtF,EAAA,OAAO,cAAc,OAAS,EAAA,EAAA,EAAI,EAAE,SAAW,EAAA,IAAI,CAAA,CAAA;AACrD,CAAA;AAGgB,SAAA,aAAA,CAAc,SAAkB,EAAqB,EAAA;AACnE,EAAA,OAAOA,2BAAyB,QAAU,EAAA,CAAA,UAAA,CAAA,EAAc,EAAE,EAAA,IAAM,OAAO,CAAA,CAAA;AACzE,CAAA;AAKsB,eAAA,cAAA,CAAe,SAAkB,YAAqC,EAAA;AAC1F,EAAM,MAAA,EAAE,OAAQ,EAAA,GAAI,MAAMA,0BAAA;AAAA,IACxB,MAAA;AAAA,IACA,CAAA,gBAAA,CAAA;AAAA,IACA;AAAA,MACE,IAAM,EAAA,YAAA;AAAA,KACR;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,OAAA,CAAA;AACT,CAAA;AAKsB,eAAA,gBAAA,CACpB,OACA,EAAA,EAAA,EACA,WACA,EAAA;AACA,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,MAAMA,0BAAA;AAAA,IACvB,MAAA;AAAA,IACA,cAAc,EAAE,CAAA,aAAA,CAAA;AAAA,IAChB;AAAA,MACE,IAAM,EAAA,WAAA;AAAA,KACR;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,MAAA,CAAA;AACT;;;;;;;;;;;;"}
1
+ {"version":3,"file":"address.js","sources":["../../../src/api/address.ts"],"sourcesContent":["import { getInternalSession, rechargeApiRequest } from '../utils/request';\nimport {\n AddressResponse,\n AddressListParams,\n CreateAddressRequest,\n UpdateAddressRequest,\n AddressListResponse,\n MergeAddressesRequest,\n SkipFutureChargeAddressRequest,\n SkipFutureChargeAddressResponse,\n GetAddressOptions,\n Session,\n} from '../types';\n\n/** Returns all addresses from the store, or addresses for the customer given in the parameter. */\nexport function listAddresses(session: Session, query?: AddressListParams) {\n return rechargeApiRequest<AddressListResponse>(\n 'get',\n `/addresses`,\n { query },\n getInternalSession(session, 'listAddresses')\n );\n}\n\n/** Retrieves address for customer based on specified address id. */\nexport async function getAddress(session: Session, id: string | number, options?: GetAddressOptions) {\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'get',\n `/addresses`,\n {\n id,\n query: { include: options?.include },\n },\n getInternalSession(session, 'getAddress')\n );\n return address;\n}\n\n/** Create a new address for a customer. */\nexport async function createAddress(session: Session, createRequest: CreateAddressRequest) {\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'post',\n `/addresses`,\n { data: { customer_id: session.customerId ? Number(session.customerId) : undefined, ...createRequest } },\n getInternalSession(session, 'createAddress')\n );\n return address;\n}\n\n/** Updates an existing address to match the specified parameters. */\nexport async function updateAddress(session: Session, id: string | number, updateRequest: UpdateAddressRequest) {\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'put',\n `/addresses`,\n { id, data: updateRequest },\n getInternalSession(session, 'updateAddress')\n );\n return address;\n}\n\n/** Apply discount code to an address. Addresses are currently limited to a single discount. */\nexport async function applyDiscountToAddress(session: Session, id: string | number, discountCode: string) {\n return updateAddress(getInternalSession(session, 'applyDiscountToAddress'), id, {\n discounts: [{ code: discountCode }],\n });\n}\n\n/** Removes all discounts from an address. */\nexport async function removeDiscountsFromAddress(session: Session, id: string | number) {\n return updateAddress(getInternalSession(session, 'removeDiscountsFromAddress'), id, { discounts: [] });\n}\n\n/** Deletes an address. Only Addresses with no active Subscriptions can be deleted. */\nexport function deleteAddress(session: Session, id: string | number) {\n return rechargeApiRequest<void>('delete', `/addresses`, { id }, getInternalSession(session, 'deleteAddress'));\n}\n\n/**\n * Merges up to 10 source addresses into 1 target address.\n */\nexport async function mergeAddresses(session: Session, mergeRequest: MergeAddressesRequest) {\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'post',\n `/addresses/merge`,\n {\n data: mergeRequest,\n },\n getInternalSession(session, 'mergeAddresses')\n );\n return address;\n}\n\n/**\n * Skip a Charge in the future for one or multiple Subscriptions associated with the Address.\n */\nexport async function skipFutureCharge(\n session: Session,\n id: string | number,\n skipRequest: SkipFutureChargeAddressRequest\n) {\n const { charge } = await rechargeApiRequest<SkipFutureChargeAddressResponse>(\n 'post',\n `/addresses/${id}/charges/skip`,\n {\n data: skipRequest,\n },\n getInternalSession(session, 'skipFutureCharge')\n );\n return charge;\n}\n"],"names":["rechargeApiRequest","getInternalSession"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sources":["../../../src/api/auth.ts"],"sourcesContent":["import { request as baseRequest, shopifyAppProxyRequest } from '../utils/request';\nimport {\n LoginResponse,\n PasswordlessCodeResponse,\n PasswordlessOptions,\n PasswordlessValidateResponse,\n} from '../types/auth';\nimport { getOptions } from '../utils/options';\nimport { RECHARGE_ADMIN_URL } from '../constants/api';\nimport { Session } from '../types/session';\nimport { RequestHeaders } from '../types';\n\nexport async function loginShopifyAppProxy(): Promise<Session> {\n const { storefrontAccessToken } = getOptions();\n const headers: RequestHeaders = {};\n if (storefrontAccessToken) {\n headers['X-Recharge-Storefront-Access-Token'] = storefrontAccessToken;\n }\n const response = await shopifyAppProxyRequest<LoginResponse>('get', '/access', { headers });\n\n return { apiToken: response.api_token, customerId: response.customer_id, message: response.message };\n}\n\n/** @deprecated Use `loginWithShopifyStorefront` instead */\nexport async function loginShopifyApi(\n shopifyStorefrontToken: string,\n shopifyCustomerAccessToken?: string\n): Promise<Session | null> {\n return loginWithShopifyStorefront(shopifyStorefrontToken, shopifyCustomerAccessToken);\n}\n\nexport async function loginWithShopifyStorefront(\n shopifyStorefrontToken: string,\n shopifyCustomerAccessToken?: string\n): Promise<Session | null> {\n const { environment, environmentUri, storefrontAccessToken, storeIdentifier } = getOptions();\n const rechargeBaseUrl = RECHARGE_ADMIN_URL(environment, environmentUri);\n const headers: RequestHeaders = {};\n if (storefrontAccessToken) {\n headers['X-Recharge-Storefront-Access-Token'] = storefrontAccessToken;\n }\n const {\n api_token: apiToken,\n customer_id: customerId,\n message,\n } = await baseRequest<LoginResponse>('post', `${rechargeBaseUrl}/shopify_storefront_access`, {\n data: {\n customer_token: shopifyCustomerAccessToken,\n storefront_token: shopifyStorefrontToken,\n shop_url: storeIdentifier,\n },\n headers,\n });\n\n return apiToken ? { apiToken, customerId, message } : null;\n}\n\nexport async function loginWithShopifyCustomerAccount(shopifyCustomerAccessToken?: string): Promise<Session | null> {\n const { environment, environmentUri, storefrontAccessToken, storeIdentifier } = getOptions();\n const rechargeBaseUrl = RECHARGE_ADMIN_URL(environment, environmentUri);\n const headers: RequestHeaders = {};\n if (storefrontAccessToken) {\n headers['X-Recharge-Storefront-Access-Token'] = storefrontAccessToken;\n }\n const {\n api_token: apiToken,\n customer_id: customerId,\n message,\n } = await baseRequest<LoginResponse>('post', `${rechargeBaseUrl}/shopify_customer_account_api_access`, {\n data: {\n customer_token: shopifyCustomerAccessToken,\n shop_url: storeIdentifier,\n },\n headers,\n });\n\n return apiToken ? { apiToken, customerId, message } : null;\n}\n\nexport async function sendPasswordlessCode(email: string, options: PasswordlessOptions = {}): Promise<string> {\n const { environment, environmentUri, storefrontAccessToken, storeIdentifier } = getOptions();\n const rechargeBaseUrl = RECHARGE_ADMIN_URL(environment, environmentUri);\n const headers: RequestHeaders = {};\n if (storefrontAccessToken) {\n headers['X-Recharge-Storefront-Access-Token'] = storefrontAccessToken;\n }\n const response = await baseRequest<PasswordlessCodeResponse>('post', `${rechargeBaseUrl}/attempt_login`, {\n data: {\n email,\n shop: storeIdentifier,\n ...options,\n },\n headers,\n });\n\n if (response.errors) {\n throw new Error(response.errors);\n }\n return response.session_token;\n}\n\nexport async function sendPasswordlessCodeAppProxy(email: string, options: PasswordlessOptions = {}): Promise<string> {\n const { storefrontAccessToken } = getOptions();\n const headers: RequestHeaders = {};\n if (storefrontAccessToken) {\n headers['X-Recharge-Storefront-Access-Token'] = storefrontAccessToken;\n }\n const response = await shopifyAppProxyRequest<PasswordlessCodeResponse>('post', '/attempt_login', {\n data: {\n email,\n ...options,\n },\n headers,\n });\n\n if (response.errors) {\n throw new Error(response.errors);\n }\n return response.session_token;\n}\n\nexport async function validatePasswordlessCode(email: string, session_token: string, code: string): Promise<Session> {\n const { environment, environmentUri, storefrontAccessToken, storeIdentifier } = getOptions();\n const rechargeBaseUrl = RECHARGE_ADMIN_URL(environment, environmentUri);\n const headers: RequestHeaders = {};\n if (storefrontAccessToken) {\n headers['X-Recharge-Storefront-Access-Token'] = storefrontAccessToken;\n }\n const response = await baseRequest<PasswordlessValidateResponse>('post', `${rechargeBaseUrl}/validate_login`, {\n data: {\n code,\n email,\n session_token,\n shop: storeIdentifier,\n },\n headers,\n });\n\n if (response.errors) {\n throw new Error(response.errors);\n }\n return { apiToken: response.api_token, customerId: response.customer_id };\n}\n\nexport async function validatePasswordlessCodeAppProxy(\n email: string,\n session_token: string,\n code: string\n): Promise<Session> {\n const { storefrontAccessToken } = getOptions();\n const headers: RequestHeaders = {};\n if (storefrontAccessToken) {\n headers['X-Recharge-Storefront-Access-Token'] = storefrontAccessToken;\n }\n const response = await shopifyAppProxyRequest<PasswordlessValidateResponse>('post', '/validate_login', {\n data: {\n code,\n email,\n session_token,\n },\n headers,\n });\n\n if (response.errors) {\n throw new Error(response.errors);\n }\n return { apiToken: response.api_token, customerId: response.customer_id };\n}\n\nfunction getCustomerParams() {\n const { pathname, search } = window.location;\n const urlParams = new URLSearchParams(search);\n const token = urlParams.get('token');\n const subpaths = pathname.split('/').filter(Boolean);\n const portalIndex = subpaths.findIndex(path => path === 'portal');\n const customerHash = portalIndex !== -1 ? subpaths[portalIndex + 1] : undefined;\n\n // make sure the URL contained the data we need\n if (!token || !customerHash) {\n throw new Error('Not in context of Recharge Customer Portal or URL did not contain correct params');\n }\n return { customerHash, token };\n}\n\nexport async function loginCustomerPortal(): Promise<Session> {\n const { customerHash, token } = getCustomerParams();\n const { environment, environmentUri, storefrontAccessToken, storeIdentifier } = getOptions();\n const rechargeBaseUrl = RECHARGE_ADMIN_URL(environment, environmentUri);\n const headers: RequestHeaders = {};\n if (storefrontAccessToken) {\n headers['X-Recharge-Storefront-Access-Token'] = storefrontAccessToken;\n }\n const response = await baseRequest<LoginResponse>('post', `${rechargeBaseUrl}/customers/${customerHash}/access`, {\n headers,\n data: {\n token,\n shop: storeIdentifier,\n },\n });\n\n return { apiToken: response.api_token, customerId: response.customer_id };\n}\n"],"names":["getOptions","shopifyAppProxyRequest","RECHARGE_ADMIN_URL","baseRequest","options"],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sources":["../../../src/api/auth.ts"],"sourcesContent":["import { request as baseRequest, shopifyAppProxyRequest } from '../utils/request';\nimport {\n LoginResponse,\n PasswordlessCodeResponse,\n PasswordlessOptions,\n PasswordlessValidateResponse,\n RequestHeaders,\n Session,\n} from '../types';\nimport { getOptions } from '../utils/options';\nimport { RECHARGE_ADMIN_URL } from '../constants/api';\n\nexport async function loginShopifyAppProxy(): Promise<Session> {\n const { storefrontAccessToken } = getOptions();\n const headers: RequestHeaders = {};\n if (storefrontAccessToken) {\n headers['X-Recharge-Storefront-Access-Token'] = storefrontAccessToken;\n }\n const response = await shopifyAppProxyRequest<LoginResponse>('get', '/access', { headers });\n\n return { apiToken: response.api_token, customerId: response.customer_id, message: response.message };\n}\n\n/** @deprecated Use `loginWithShopifyStorefront` instead */\nexport async function loginShopifyApi(\n shopifyStorefrontToken: string,\n shopifyCustomerAccessToken?: string\n): Promise<Session | null> {\n return loginWithShopifyStorefront(shopifyStorefrontToken, shopifyCustomerAccessToken);\n}\n\nexport async function loginWithShopifyStorefront(\n shopifyStorefrontToken: string,\n shopifyCustomerAccessToken?: string\n): Promise<Session | null> {\n const { environment, environmentUri, storefrontAccessToken, storeIdentifier } = getOptions();\n const rechargeBaseUrl = RECHARGE_ADMIN_URL(environment, environmentUri);\n const headers: RequestHeaders = {};\n if (storefrontAccessToken) {\n headers['X-Recharge-Storefront-Access-Token'] = storefrontAccessToken;\n }\n const {\n api_token: apiToken,\n customer_id: customerId,\n message,\n } = await baseRequest<LoginResponse>('post', `${rechargeBaseUrl}/shopify_storefront_access`, {\n data: {\n customer_token: shopifyCustomerAccessToken,\n storefront_token: shopifyStorefrontToken,\n shop_url: storeIdentifier,\n },\n headers,\n });\n\n return apiToken ? { apiToken, customerId, message } : null;\n}\n\nexport async function loginWithShopifyCustomerAccount(shopifyCustomerAccessToken?: string): Promise<Session | null> {\n const { environment, environmentUri, storefrontAccessToken, storeIdentifier } = getOptions();\n const rechargeBaseUrl = RECHARGE_ADMIN_URL(environment, environmentUri);\n const headers: RequestHeaders = {};\n if (storefrontAccessToken) {\n headers['X-Recharge-Storefront-Access-Token'] = storefrontAccessToken;\n }\n const {\n api_token: apiToken,\n customer_id: customerId,\n message,\n } = await baseRequest<LoginResponse>('post', `${rechargeBaseUrl}/shopify_customer_account_api_access`, {\n data: {\n customer_token: shopifyCustomerAccessToken,\n shop_url: storeIdentifier,\n },\n headers,\n });\n\n return apiToken ? { apiToken, customerId, message } : null;\n}\n\nexport async function sendPasswordlessCode(email: string, options: PasswordlessOptions = {}): Promise<string> {\n const { environment, environmentUri, storefrontAccessToken, storeIdentifier } = getOptions();\n const rechargeBaseUrl = RECHARGE_ADMIN_URL(environment, environmentUri);\n const headers: RequestHeaders = {};\n if (storefrontAccessToken) {\n headers['X-Recharge-Storefront-Access-Token'] = storefrontAccessToken;\n }\n const response = await baseRequest<PasswordlessCodeResponse>('post', `${rechargeBaseUrl}/attempt_login`, {\n data: {\n email,\n shop: storeIdentifier,\n ...options,\n },\n headers,\n });\n\n if (response.errors) {\n throw new Error(response.errors);\n }\n return response.session_token;\n}\n\nexport async function sendPasswordlessCodeAppProxy(email: string, options: PasswordlessOptions = {}): Promise<string> {\n const { storefrontAccessToken } = getOptions();\n const headers: RequestHeaders = {};\n if (storefrontAccessToken) {\n headers['X-Recharge-Storefront-Access-Token'] = storefrontAccessToken;\n }\n const response = await shopifyAppProxyRequest<PasswordlessCodeResponse>('post', '/attempt_login', {\n data: {\n email,\n ...options,\n },\n headers,\n });\n\n if (response.errors) {\n throw new Error(response.errors);\n }\n return response.session_token;\n}\n\nexport async function validatePasswordlessCode(email: string, session_token: string, code: string): Promise<Session> {\n const { environment, environmentUri, storefrontAccessToken, storeIdentifier } = getOptions();\n const rechargeBaseUrl = RECHARGE_ADMIN_URL(environment, environmentUri);\n const headers: RequestHeaders = {};\n if (storefrontAccessToken) {\n headers['X-Recharge-Storefront-Access-Token'] = storefrontAccessToken;\n }\n const response = await baseRequest<PasswordlessValidateResponse>('post', `${rechargeBaseUrl}/validate_login`, {\n data: {\n code,\n email,\n session_token,\n shop: storeIdentifier,\n },\n headers,\n });\n\n if (response.errors) {\n throw new Error(response.errors);\n }\n return { apiToken: response.api_token, customerId: response.customer_id };\n}\n\nexport async function validatePasswordlessCodeAppProxy(\n email: string,\n session_token: string,\n code: string\n): Promise<Session> {\n const { storefrontAccessToken } = getOptions();\n const headers: RequestHeaders = {};\n if (storefrontAccessToken) {\n headers['X-Recharge-Storefront-Access-Token'] = storefrontAccessToken;\n }\n const response = await shopifyAppProxyRequest<PasswordlessValidateResponse>('post', '/validate_login', {\n data: {\n code,\n email,\n session_token,\n },\n headers,\n });\n\n if (response.errors) {\n throw new Error(response.errors);\n }\n return { apiToken: response.api_token, customerId: response.customer_id };\n}\n\nfunction getCustomerParams() {\n const { pathname, search } = window.location;\n const urlParams = new URLSearchParams(search);\n const token = urlParams.get('token');\n const subpaths = pathname.split('/').filter(Boolean);\n const portalIndex = subpaths.findIndex(path => path === 'portal');\n const customerHash = portalIndex !== -1 ? subpaths[portalIndex + 1] : undefined;\n\n // make sure the URL contained the data we need\n if (!token || !customerHash) {\n throw new Error('Not in context of Recharge Customer Portal or URL did not contain correct params');\n }\n return { customerHash, token };\n}\n\nexport async function loginCustomerPortal(): Promise<Session> {\n const { customerHash, token } = getCustomerParams();\n const { environment, environmentUri, storefrontAccessToken, storeIdentifier } = getOptions();\n const rechargeBaseUrl = RECHARGE_ADMIN_URL(environment, environmentUri);\n const headers: RequestHeaders = {};\n if (storefrontAccessToken) {\n headers['X-Recharge-Storefront-Access-Token'] = storefrontAccessToken;\n }\n const response = await baseRequest<LoginResponse>('post', `${rechargeBaseUrl}/customers/${customerHash}/access`, {\n headers,\n data: {\n token,\n shop: storeIdentifier,\n },\n });\n\n return { apiToken: response.api_token, customerId: response.customer_id };\n}\n"],"names":["getOptions","shopifyAppProxyRequest","RECHARGE_ADMIN_URL","baseRequest","options"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var nanoid = require('nanoid');
3
+ var nonSecure = require('nanoid/non-secure');
4
4
  var request = require('../utils/request.js');
5
5
  var options = require('../utils/options.js');
6
6
  var bundle = require('../utils/bundle.js');
@@ -66,7 +66,7 @@ function getDynamicBundleItems(bundle, shopifyProductHandle) {
66
66
  if (isValid !== true) {
67
67
  throw new Error(`Dynamic Bundle is invalid. ${isValid}`);
68
68
  }
69
- const bundleId = `${nanoid.nanoid(9)}:${bundle.externalProductId}`;
69
+ const bundleId = `${nonSecure.nanoid(9)}:${bundle.externalProductId}`;
70
70
  return bundle.selections.map((item) => {
71
71
  const itemData = {
72
72
  id: item.externalVariantId,
@@ -139,12 +139,17 @@ async function getBundleSelection(session, id) {
139
139
  {
140
140
  id
141
141
  },
142
- session
142
+ request.getInternalSession(session, "getBundleSelection")
143
143
  );
144
144
  return bundle_selection;
145
145
  }
146
146
  function listBundleSelections(session, query) {
147
- return request.rechargeApiRequest("get", `/bundle_selections`, { query }, session);
147
+ return request.rechargeApiRequest(
148
+ "get",
149
+ `/bundle_selections`,
150
+ { query },
151
+ request.getInternalSession(session, "listBundleSelections")
152
+ );
148
153
  }
149
154
  async function createBundleSelection(session, createRequest) {
150
155
  const { bundle_selection } = await request.rechargeApiRequest(
@@ -153,7 +158,7 @@ async function createBundleSelection(session, createRequest) {
153
158
  {
154
159
  data: createRequest
155
160
  },
156
- session
161
+ request.getInternalSession(session, "createBundleSelection")
157
162
  );
158
163
  return bundle_selection;
159
164
  }
@@ -165,7 +170,7 @@ async function updateBundleSelection(session, id, updateRequest) {
165
170
  id,
166
171
  data: updateRequest
167
172
  },
168
- session
173
+ request.getInternalSession(session, "updateBundleSelection")
169
174
  );
170
175
  return bundle_selection;
171
176
  }
@@ -176,7 +181,7 @@ function deleteBundleSelection(session, id) {
176
181
  {
177
182
  id
178
183
  },
179
- session
184
+ request.getInternalSession(session, "deleteBundleSelection")
180
185
  );
181
186
  }
182
187
  async function updateBundle(session, purchase_item_id, updateRequest, query) {
@@ -188,7 +193,7 @@ async function updateBundle(session, purchase_item_id, updateRequest, query) {
188
193
  data: updateRequest,
189
194
  query
190
195
  },
191
- session
196
+ request.getInternalSession(session, "updateBundle")
192
197
  );
193
198
  return subscription;
194
199
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.js","sources":["../../../src/api/bundle.ts"],"sourcesContent":["import { nanoid } from 'nanoid';\nimport {\n BundleAppProxy,\n DynamicBundleItemAppProxy,\n BundleSelection,\n BundleSelectionListParams,\n BundleSelectionsResponse,\n CreateBundleSelectionRequest,\n Session,\n UpdateBundleSelectionRequest,\n UpdateBundlePurchaseItem,\n BundlePurchaseItem,\n BundlePurchaseItemParams,\n} from '../types';\nimport { rechargeApiRequest, shopifyAppProxyRequest } from '../utils/request';\nimport { getOptions } from '../utils/options';\nimport { getCDNBundleSettings } from './cdn';\nimport { toLineItemProperty } from '../utils/bundle';\n\nconst STORE_FRONT_MANAGER_URL = '/bundling-storefront-manager';\n\nfunction getTimestampSecondsFromClient(): number {\n /**\n * Get the current unix epoch in seconds from the client-side.\n */\n return Math.ceil(Date.now() / 1000);\n}\n\nasync function getTimestampSecondsFromServer(): Promise<number> {\n /**\n * Get the unix epoch from the server instead of using it directly from the\n * client. This must reduce even more the number of invalid Bundles.\n */\n try {\n const { timestamp } = await shopifyAppProxyRequest<{ timestamp: number }>('get', `${STORE_FRONT_MANAGER_URL}/t`, {\n headers: { 'X-Recharge-App': 'storefront-client' },\n });\n return timestamp;\n } catch (ex) {\n console.error(`Fetch failed: ${ex}. Using client-side date.`);\n return getTimestampSecondsFromClient();\n }\n}\n\nexport async function getBundleId(bundle: BundleAppProxy): Promise<string> {\n const opts = getOptions();\n const isValid = await validateBundle(bundle);\n if (isValid !== true) {\n throw new Error(isValid);\n }\n const timestampSeconds = await getTimestampSecondsFromServer();\n const bundleData = toLineItemProperty({\n variantId: bundle.externalVariantId,\n version: timestampSeconds,\n items: bundle.selections.map(item => {\n return {\n collectionId: item.collectionId,\n productId: item.externalProductId,\n variantId: item.externalVariantId,\n quantity: item.quantity,\n sku: '',\n };\n }),\n });\n\n try {\n const payload = await shopifyAppProxyRequest<{ id: string; code: number; message: string }>(\n 'post',\n `${STORE_FRONT_MANAGER_URL}/api/v1/bundles`,\n {\n data: {\n bundle: bundleData,\n },\n headers: {\n Origin: `https://${opts.storeIdentifier}`,\n },\n }\n );\n\n if (!payload.id || payload.code !== 200) {\n throw new Error(`1: failed generating rb_id: ${JSON.stringify(payload)}`);\n }\n\n return payload.id;\n } catch (e) {\n // Handle NetworkError exceptions\n throw new Error(`2: failed generating rb_id ${e}`);\n }\n}\n\nexport function getDynamicBundleItems(bundle: BundleAppProxy, shopifyProductHandle: string) {\n const isValid = validateDynamicBundle(bundle);\n if (isValid !== true) {\n throw new Error(`Dynamic Bundle is invalid. ${isValid}`);\n }\n // generate unique id for dynamic bundle\n const bundleId = `${nanoid(9)}:${bundle.externalProductId}`;\n return bundle.selections.map(item => {\n const itemData: DynamicBundleItemAppProxy = {\n id: item.externalVariantId,\n quantity: item.quantity,\n properties: {\n _rc_bundle: bundleId,\n _rc_bundle_variant: bundle.externalVariantId,\n _rc_bundle_parent: shopifyProductHandle,\n _rc_bundle_collection_id: item.collectionId,\n },\n };\n\n if (item.sellingPlan) {\n // this is used by SCI stores\n itemData.selling_plan = item.sellingPlan;\n } else if (item.shippingIntervalFrequency) {\n // this is used by RCS stores\n itemData.properties.shipping_interval_frequency = item.shippingIntervalFrequency;\n itemData.properties.shipping_interval_unit_type = item.shippingIntervalUnitType;\n itemData.id = `${item.discountedVariantId}`;\n }\n\n return itemData;\n });\n}\n\nexport async function validateBundle(bundle: BundleAppProxy): Promise<true | string> {\n try {\n // once we implement this function, we can make it raise an exception\n // we could also have a local store relative to this function so we don't have to pass bundleProduct\n if (!bundle) {\n return 'Bundle is not defined';\n }\n // Don't make bundle settings call due to merchant issues\n // const bundleSettings = await getCDNBundleSettings(bundle.externalProductId);\n // if (!bundleSettings) {\n // return 'Bundle settings do not exist for the given product';\n // }\n return true;\n } catch (e) {\n return `Error fetching bundle settings: ${e}`;\n }\n}\n\nconst intervalUnitGroups = {\n day: ['day', 'days', 'Days'],\n days: ['day', 'days', 'Days'],\n Days: ['day', 'days', 'Days'],\n week: ['week', 'weeks', 'Weeks'],\n weeks: ['week', 'weeks', 'Weeks'],\n Weeks: ['week', 'weeks', 'Weeks'],\n month: ['month', 'months', 'Months'],\n months: ['month', 'months', 'Months'],\n Months: ['month', 'months', 'Months'],\n};\n\n/**\n * Validates a dynamic bundle\n *\n * @param bundle Dynamic Bundle being validated\n * @returns true or error message\n */\nexport function validateDynamicBundle(bundle: BundleAppProxy): true | string {\n if (!bundle) {\n return 'No bundle defined.';\n }\n if (bundle.selections.length === 0) {\n return 'No selections defined.';\n }\n // validation for RCS onetimes\n const { shippingIntervalFrequency, shippingIntervalUnitType } =\n bundle.selections.find(selection => selection.shippingIntervalFrequency || selection.shippingIntervalUnitType) ||\n {};\n if (shippingIntervalFrequency || shippingIntervalUnitType) {\n // if we have shipping intervals then we should have both defined\n if (!shippingIntervalFrequency || !shippingIntervalUnitType) {\n return 'Shipping intervals do not match on selections.';\n } else {\n // if we have shipping intervals then any that are defined should match\n const shippingIntervalUnitGroup = intervalUnitGroups[shippingIntervalUnitType];\n for (let x = 0; x < bundle.selections.length; x++) {\n const { shippingIntervalFrequency: frequency, shippingIntervalUnitType: unitType } = bundle.selections[x];\n if (\n (frequency && frequency !== shippingIntervalFrequency) ||\n (unitType && !shippingIntervalUnitGroup.includes(unitType))\n ) {\n return 'Shipping intervals do not match on selections.';\n }\n }\n }\n }\n return true;\n}\n\nexport async function getBundleSelection(session: Session, id: string | number): Promise<BundleSelection> {\n const { bundle_selection } = await rechargeApiRequest<{ bundle_selection: BundleSelection }>(\n 'get',\n `/bundle_selections`,\n {\n id,\n },\n session\n );\n return bundle_selection;\n}\n\nexport function listBundleSelections(\n session: Session,\n query?: BundleSelectionListParams\n): Promise<BundleSelectionsResponse> {\n return rechargeApiRequest<BundleSelectionsResponse>('get', `/bundle_selections`, { query }, session);\n}\n\nexport async function createBundleSelection(\n session: Session,\n createRequest: CreateBundleSelectionRequest\n): Promise<BundleSelection> {\n const { bundle_selection } = await rechargeApiRequest<{ bundle_selection: BundleSelection }>(\n 'post',\n `/bundle_selections`,\n {\n data: createRequest,\n },\n session\n );\n return bundle_selection;\n}\n\nexport async function updateBundleSelection(\n session: Session,\n id: string | number,\n updateRequest: UpdateBundleSelectionRequest\n): Promise<BundleSelection> {\n const { bundle_selection } = await rechargeApiRequest<{ bundle_selection: BundleSelection }>(\n 'put',\n `/bundle_selections`,\n {\n id,\n data: updateRequest,\n },\n session\n );\n return bundle_selection;\n}\n\nexport function deleteBundleSelection(session: Session, id: string | number): Promise<void> {\n return rechargeApiRequest<void>(\n 'delete',\n `/bundle_selections`,\n {\n id,\n },\n session\n );\n}\n\nexport async function updateBundle(\n session: Session,\n purchase_item_id: string | number,\n updateRequest: UpdateBundlePurchaseItem,\n query?: BundlePurchaseItemParams\n): Promise<BundlePurchaseItem> {\n const { subscription } = await rechargeApiRequest<{ subscription: BundlePurchaseItem }>(\n 'put',\n '/bundles',\n {\n id: purchase_item_id,\n data: updateRequest,\n query,\n },\n session\n );\n\n return subscription;\n}\n"],"names":["shopifyAppProxyRequest","bundle","getOptions","toLineItemProperty","nanoid","rechargeApiRequest"],"mappings":"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"}
1
+ {"version":3,"file":"bundle.js","sources":["../../../src/api/bundle.ts"],"sourcesContent":["import { nanoid } from 'nanoid/non-secure';\nimport {\n BundleAppProxy,\n DynamicBundleItemAppProxy,\n BundleSelection,\n BundleSelectionListParams,\n BundleSelectionsResponse,\n CreateBundleSelectionRequest,\n Session,\n UpdateBundleSelectionRequest,\n UpdateBundlePurchaseItem,\n BundlePurchaseItem,\n BundlePurchaseItemParams,\n} from '../types';\nimport { getInternalSession, rechargeApiRequest, shopifyAppProxyRequest } from '../utils/request';\nimport { getOptions } from '../utils/options';\nimport { toLineItemProperty } from '../utils/bundle';\n\nconst STORE_FRONT_MANAGER_URL = '/bundling-storefront-manager';\n\nfunction getTimestampSecondsFromClient(): number {\n /**\n * Get the current unix epoch in seconds from the client-side.\n */\n return Math.ceil(Date.now() / 1000);\n}\n\nasync function getTimestampSecondsFromServer(): Promise<number> {\n /**\n * Get the unix epoch from the server instead of using it directly from the\n * client. This must reduce even more the number of invalid Bundles.\n */\n try {\n const { timestamp } = await shopifyAppProxyRequest<{ timestamp: number }>('get', `${STORE_FRONT_MANAGER_URL}/t`, {\n headers: { 'X-Recharge-App': 'storefront-client' },\n });\n return timestamp;\n } catch (ex) {\n console.error(`Fetch failed: ${ex}. Using client-side date.`);\n return getTimestampSecondsFromClient();\n }\n}\n\nexport async function getBundleId(bundle: BundleAppProxy): Promise<string> {\n const opts = getOptions();\n const isValid = await validateBundle(bundle);\n if (isValid !== true) {\n throw new Error(isValid);\n }\n const timestampSeconds = await getTimestampSecondsFromServer();\n const bundleData = toLineItemProperty({\n variantId: bundle.externalVariantId,\n version: timestampSeconds,\n items: bundle.selections.map(item => {\n return {\n collectionId: item.collectionId,\n productId: item.externalProductId,\n variantId: item.externalVariantId,\n quantity: item.quantity,\n sku: '',\n };\n }),\n });\n\n try {\n const payload = await shopifyAppProxyRequest<{ id: string; code: number; message: string }>(\n 'post',\n `${STORE_FRONT_MANAGER_URL}/api/v1/bundles`,\n {\n data: {\n bundle: bundleData,\n },\n headers: {\n Origin: `https://${opts.storeIdentifier}`,\n },\n }\n );\n\n if (!payload.id || payload.code !== 200) {\n throw new Error(`1: failed generating rb_id: ${JSON.stringify(payload)}`);\n }\n\n return payload.id;\n } catch (e) {\n // Handle NetworkError exceptions\n throw new Error(`2: failed generating rb_id ${e}`);\n }\n}\n\nexport function getDynamicBundleItems(bundle: BundleAppProxy, shopifyProductHandle: string) {\n const isValid = validateDynamicBundle(bundle);\n if (isValid !== true) {\n throw new Error(`Dynamic Bundle is invalid. ${isValid}`);\n }\n // generate unique id for dynamic bundle\n const bundleId = `${nanoid(9)}:${bundle.externalProductId}`;\n return bundle.selections.map(item => {\n const itemData: DynamicBundleItemAppProxy = {\n id: item.externalVariantId,\n quantity: item.quantity,\n properties: {\n _rc_bundle: bundleId,\n _rc_bundle_variant: bundle.externalVariantId,\n _rc_bundle_parent: shopifyProductHandle,\n _rc_bundle_collection_id: item.collectionId,\n },\n };\n\n if (item.sellingPlan) {\n // this is used by SCI stores\n itemData.selling_plan = item.sellingPlan;\n } else if (item.shippingIntervalFrequency) {\n // this is used by RCS stores\n itemData.properties.shipping_interval_frequency = item.shippingIntervalFrequency;\n itemData.properties.shipping_interval_unit_type = item.shippingIntervalUnitType;\n itemData.id = `${item.discountedVariantId}`;\n }\n\n return itemData;\n });\n}\n\nexport async function validateBundle(bundle: BundleAppProxy): Promise<true | string> {\n try {\n // once we implement this function, we can make it raise an exception\n // we could also have a local store relative to this function so we don't have to pass bundleProduct\n if (!bundle) {\n return 'Bundle is not defined';\n }\n // Don't make bundle settings call due to merchant issues\n // const bundleSettings = await getCDNBundleSettings(bundle.externalProductId);\n // if (!bundleSettings) {\n // return 'Bundle settings do not exist for the given product';\n // }\n return true;\n } catch (e) {\n return `Error fetching bundle settings: ${e}`;\n }\n}\n\nconst intervalUnitGroups = {\n day: ['day', 'days', 'Days'],\n days: ['day', 'days', 'Days'],\n Days: ['day', 'days', 'Days'],\n week: ['week', 'weeks', 'Weeks'],\n weeks: ['week', 'weeks', 'Weeks'],\n Weeks: ['week', 'weeks', 'Weeks'],\n month: ['month', 'months', 'Months'],\n months: ['month', 'months', 'Months'],\n Months: ['month', 'months', 'Months'],\n};\n\n/**\n * Validates a dynamic bundle\n *\n * @param bundle Dynamic Bundle being validated\n * @returns true or error message\n */\nexport function validateDynamicBundle(bundle: BundleAppProxy): true | string {\n if (!bundle) {\n return 'No bundle defined.';\n }\n if (bundle.selections.length === 0) {\n return 'No selections defined.';\n }\n // validation for RCS onetimes\n const { shippingIntervalFrequency, shippingIntervalUnitType } =\n bundle.selections.find(selection => selection.shippingIntervalFrequency || selection.shippingIntervalUnitType) ||\n {};\n if (shippingIntervalFrequency || shippingIntervalUnitType) {\n // if we have shipping intervals then we should have both defined\n if (!shippingIntervalFrequency || !shippingIntervalUnitType) {\n return 'Shipping intervals do not match on selections.';\n } else {\n // if we have shipping intervals then any that are defined should match\n const shippingIntervalUnitGroup = intervalUnitGroups[shippingIntervalUnitType];\n for (let x = 0; x < bundle.selections.length; x++) {\n const { shippingIntervalFrequency: frequency, shippingIntervalUnitType: unitType } = bundle.selections[x];\n if (\n (frequency && frequency !== shippingIntervalFrequency) ||\n (unitType && !shippingIntervalUnitGroup.includes(unitType))\n ) {\n return 'Shipping intervals do not match on selections.';\n }\n }\n }\n }\n return true;\n}\n\nexport async function getBundleSelection(session: Session, id: string | number): Promise<BundleSelection> {\n const { bundle_selection } = await rechargeApiRequest<{ bundle_selection: BundleSelection }>(\n 'get',\n `/bundle_selections`,\n {\n id,\n },\n getInternalSession(session, 'getBundleSelection')\n );\n return bundle_selection;\n}\n\nexport function listBundleSelections(\n session: Session,\n query?: BundleSelectionListParams\n): Promise<BundleSelectionsResponse> {\n return rechargeApiRequest<BundleSelectionsResponse>(\n 'get',\n `/bundle_selections`,\n { query },\n getInternalSession(session, 'listBundleSelections')\n );\n}\n\nexport async function createBundleSelection(\n session: Session,\n createRequest: CreateBundleSelectionRequest\n): Promise<BundleSelection> {\n const { bundle_selection } = await rechargeApiRequest<{ bundle_selection: BundleSelection }>(\n 'post',\n `/bundle_selections`,\n {\n data: createRequest,\n },\n getInternalSession(session, 'createBundleSelection')\n );\n return bundle_selection;\n}\n\nexport async function updateBundleSelection(\n session: Session,\n id: string | number,\n updateRequest: UpdateBundleSelectionRequest\n): Promise<BundleSelection> {\n const { bundle_selection } = await rechargeApiRequest<{ bundle_selection: BundleSelection }>(\n 'put',\n `/bundle_selections`,\n {\n id,\n data: updateRequest,\n },\n getInternalSession(session, 'updateBundleSelection')\n );\n return bundle_selection;\n}\n\nexport function deleteBundleSelection(session: Session, id: string | number): Promise<void> {\n return rechargeApiRequest<void>(\n 'delete',\n `/bundle_selections`,\n {\n id,\n },\n getInternalSession(session, 'deleteBundleSelection')\n );\n}\n\nexport async function updateBundle(\n session: Session,\n purchase_item_id: string | number,\n updateRequest: UpdateBundlePurchaseItem,\n query?: BundlePurchaseItemParams\n): Promise<BundlePurchaseItem> {\n const { subscription } = await rechargeApiRequest<{ subscription: BundlePurchaseItem }>(\n 'put',\n '/bundles',\n {\n id: purchase_item_id,\n data: updateRequest,\n query,\n },\n getInternalSession(session, 'updateBundle')\n );\n\n return subscription;\n}\n"],"names":["shopifyAppProxyRequest","bundle","getOptions","toLineItemProperty","nanoid","rechargeApiRequest","getInternalSession"],"mappings":"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"}
@@ -7,12 +7,17 @@ async function getCharge(session, id, options) {
7
7
  "get",
8
8
  `/charges`,
9
9
  { id, query: { include: options?.include } },
10
- session
10
+ request.getInternalSession(session, "getCharge")
11
11
  );
12
12
  return charge;
13
13
  }
14
14
  function listCharges(session, query) {
15
- return request.rechargeApiRequest("get", `/charges`, { query }, session);
15
+ return request.rechargeApiRequest(
16
+ "get",
17
+ `/charges`,
18
+ { query },
19
+ request.getInternalSession(session, "listCharges")
20
+ );
16
21
  }
17
22
  async function applyDiscountToCharge(session, id, discountCode) {
18
23
  const { charge } = await request.rechargeApiRequest(
@@ -21,12 +26,17 @@ async function applyDiscountToCharge(session, id, discountCode) {
21
26
  {
22
27
  data: { discount_code: discountCode }
23
28
  },
24
- session
29
+ request.getInternalSession(session, "applyDiscountToCharge")
25
30
  );
26
31
  return charge;
27
32
  }
28
33
  async function removeDiscountsFromCharge(session, id) {
29
- const { charge } = await request.rechargeApiRequest("post", `/charges/${id}/remove_discount`, {}, session);
34
+ const { charge } = await request.rechargeApiRequest(
35
+ "post",
36
+ `/charges/${id}/remove_discount`,
37
+ {},
38
+ request.getInternalSession(session, "removeDiscountsFromCharge")
39
+ );
30
40
  return charge;
31
41
  }
32
42
  async function skipCharge(session, id, purchaseItemIds, query) {
@@ -39,7 +49,7 @@ async function skipCharge(session, id, purchaseItemIds, query) {
39
49
  purchase_item_ids: purchaseItemIds.map((id2) => Number(id2))
40
50
  }
41
51
  },
42
- session
52
+ request.getInternalSession(session, "skipCharge")
43
53
  );
44
54
  return charge;
45
55
  }
@@ -53,12 +63,17 @@ async function unskipCharge(session, id, purchaseItemIds, query) {
53
63
  purchase_item_ids: purchaseItemIds.map((id2) => Number(id2))
54
64
  }
55
65
  },
56
- session
66
+ request.getInternalSession(session, "unskipCharge")
57
67
  );
58
68
  return charge;
59
69
  }
60
70
  async function processCharge(session, id) {
61
- const { charge } = await request.rechargeApiRequest("post", `/charges/${id}/process`, {}, session);
71
+ const { charge } = await request.rechargeApiRequest(
72
+ "post",
73
+ `/charges/${id}/process`,
74
+ {},
75
+ request.getInternalSession(session, "processCharge")
76
+ );
62
77
  return charge;
63
78
  }
64
79
 
@@ -1 +1 @@
1
- {"version":3,"file":"charge.js","sources":["../../../src/api/charge.ts"],"sourcesContent":["import { RequestOptions } from '../types';\nimport {\n ChargeListParams,\n ChargeListResponse,\n ChargeResponse,\n GetChargeOptions,\n SkipChargeParams,\n} from '../types/charge';\nimport { Session } from '../types/session';\nimport { rechargeApiRequest } from '../utils/request';\n\n/* Retrieve a Charge using the charge_id. */\nexport async function getCharge(session: Session, id: number | string, options?: GetChargeOptions) {\n const { charge } = await rechargeApiRequest<ChargeResponse>(\n 'get',\n `/charges`,\n { id, query: { include: options?.include } },\n session\n );\n return charge;\n}\n\n/** Lists charges */\nexport function listCharges(session: Session, query?: ChargeListParams) {\n return rechargeApiRequest<ChargeListResponse>('get', `/charges`, { query }, session);\n}\n\n/**\n * You cannot add a Discount to an existing queued Charge if the Charge or the associated Address already has one.\n * If a Charge has a Discount and it gets updated, or a regeneration occurs, the Discount will be lost. Regeneration is a process that refreshes the Charge JSON with new data in the case of the Subscription or Address being updated.\n */\nexport async function applyDiscountToCharge(session: Session, id: number | string, discountCode: string) {\n const { charge } = await rechargeApiRequest<ChargeResponse>(\n 'post',\n `/charges/${id}/apply_discount`,\n {\n data: { discount_code: discountCode },\n },\n session\n );\n return charge;\n}\n\n/**\n * Remove all Discounts from a Charge without destroying the Discount.\n * In most cases the Discount should be removed from the Address. When the Discount is removed from the Address, the Discount is also removed from any future Charges.\n * If the Discount is on the parent Address, you cannot remove it using charge_id.\n * When removing your Discount, it is preferable to pass the address_id so that the Discount stays removed if the Charge is regenerated. Only pass charge_id in edge cases in which there are two or more Charges on a parent Address and you only want to remove the Discount from one Charge.\n * If you pass both parameters, it will remove the Discount from the Address.\n */\nexport async function removeDiscountsFromCharge(session: Session, id: number | string) {\n const { charge } = await rechargeApiRequest<ChargeResponse>('post', `/charges/${id}/remove_discount`, {}, session);\n return charge;\n}\n\n/* Skip a Charge. */\nexport async function skipCharge(\n session: Session,\n id: number | string,\n purchaseItemIds: (string | number)[],\n query?: SkipChargeParams\n) {\n const { charge } = await rechargeApiRequest<ChargeResponse>(\n 'post',\n `/charges/${id}/skip`,\n {\n query,\n data: {\n purchase_item_ids: purchaseItemIds.map(id => Number(id)),\n },\n },\n session\n );\n return charge;\n}\n\n/* Unskip a Charge. */\nexport async function unskipCharge(\n session: Session,\n id: number | string,\n purchaseItemIds: (string | number)[],\n query?: SkipChargeParams\n) {\n const { charge } = await rechargeApiRequest<ChargeResponse>(\n 'post',\n `/charges/${id}/unskip`,\n {\n query,\n data: {\n purchase_item_ids: purchaseItemIds.map(id => Number(id)),\n },\n },\n session\n );\n return charge;\n}\n\n/* Process a Charge. */\nexport async function processCharge(session: Session, id: number | string) {\n const { charge } = await rechargeApiRequest<ChargeResponse>('post', `/charges/${id}/process`, {}, session);\n return charge;\n}\n"],"names":["rechargeApiRequest","id"],"mappings":";;;;AAYsB,eAAA,SAAA,CAAU,OAAkB,EAAA,EAAA,EAAqB,OAA4B,EAAA;AACjG,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,MAAMA,0BAAA;AAAA,IACvB,KAAA;AAAA,IACA,CAAA,QAAA,CAAA;AAAA,IACA,EAAE,EAAI,EAAA,KAAA,EAAO,EAAE,OAAS,EAAA,OAAA,EAAS,SAAU,EAAA;AAAA,IAC3C,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAGgB,SAAA,WAAA,CAAY,SAAkB,KAA0B,EAAA;AACtE,EAAA,OAAOA,2BAAuC,KAAO,EAAA,CAAA,QAAA,CAAA,EAAY,EAAE,KAAA,IAAS,OAAO,CAAA,CAAA;AACrF,CAAA;AAMsB,eAAA,qBAAA,CAAsB,OAAkB,EAAA,EAAA,EAAqB,YAAsB,EAAA;AACvG,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,MAAMA,0BAAA;AAAA,IACvB,MAAA;AAAA,IACA,YAAY,EAAE,CAAA,eAAA,CAAA;AAAA,IACd;AAAA,MACE,IAAA,EAAM,EAAE,aAAA,EAAe,YAAa,EAAA;AAAA,KACtC;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AASsB,eAAA,yBAAA,CAA0B,SAAkB,EAAqB,EAAA;AACrF,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,MAAMA,0BAAA,CAAmC,MAAQ,EAAA,CAAA,SAAA,EAAY,EAAE,CAAA,gBAAA,CAAA,EAAoB,EAAC,EAAG,OAAO,CAAA,CAAA;AACjH,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAGA,eAAsB,UACpB,CAAA,OAAA,EACA,EACA,EAAA,eAAA,EACA,KACA,EAAA;AACA,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,MAAMA,0BAAA;AAAA,IACvB,MAAA;AAAA,IACA,YAAY,EAAE,CAAA,KAAA,CAAA;AAAA,IACd;AAAA,MACE,KAAA;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,mBAAmB,eAAgB,CAAA,GAAA,CAAI,CAAAC,GAAM,KAAA,MAAA,CAAOA,GAAE,CAAC,CAAA;AAAA,OACzD;AAAA,KACF;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAGA,eAAsB,YACpB,CAAA,OAAA,EACA,EACA,EAAA,eAAA,EACA,KACA,EAAA;AACA,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,MAAMD,0BAAA;AAAA,IACvB,MAAA;AAAA,IACA,YAAY,EAAE,CAAA,OAAA,CAAA;AAAA,IACd;AAAA,MACE,KAAA;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,mBAAmB,eAAgB,CAAA,GAAA,CAAI,CAAAC,GAAM,KAAA,MAAA,CAAOA,GAAE,CAAC,CAAA;AAAA,OACzD;AAAA,KACF;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAGsB,eAAA,aAAA,CAAc,SAAkB,EAAqB,EAAA;AACzE,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,MAAMD,0BAAA,CAAmC,MAAQ,EAAA,CAAA,SAAA,EAAY,EAAE,CAAA,QAAA,CAAA,EAAY,EAAC,EAAG,OAAO,CAAA,CAAA;AACzG,EAAO,OAAA,MAAA,CAAA;AACT;;;;;;;;;;"}
1
+ {"version":3,"file":"charge.js","sources":["../../../src/api/charge.ts"],"sourcesContent":["import {\n ChargeListParams,\n ChargeListResponse,\n ChargeResponse,\n GetChargeOptions,\n Session,\n SkipChargeParams,\n} from '../types';\nimport { getInternalSession, rechargeApiRequest } from '../utils/request';\n\n/* Retrieve a Charge using the charge_id. */\nexport async function getCharge(session: Session, id: number | string, options?: GetChargeOptions) {\n const { charge } = await rechargeApiRequest<ChargeResponse>(\n 'get',\n `/charges`,\n { id, query: { include: options?.include } },\n getInternalSession(session, 'getCharge')\n );\n return charge;\n}\n\n/** Lists charges */\nexport function listCharges(session: Session, query?: ChargeListParams) {\n return rechargeApiRequest<ChargeListResponse>(\n 'get',\n `/charges`,\n { query },\n getInternalSession(session, 'listCharges')\n );\n}\n\n/**\n * You cannot add a Discount to an existing queued Charge if the Charge or the associated Address already has one.\n * If a Charge has a Discount and it gets updated, or a regeneration occurs, the Discount will be lost. Regeneration is a process that refreshes the Charge JSON with new data in the case of the Subscription or Address being updated.\n */\nexport async function applyDiscountToCharge(session: Session, id: number | string, discountCode: string) {\n const { charge } = await rechargeApiRequest<ChargeResponse>(\n 'post',\n `/charges/${id}/apply_discount`,\n {\n data: { discount_code: discountCode },\n },\n getInternalSession(session, 'applyDiscountToCharge')\n );\n return charge;\n}\n\n/**\n * Remove all Discounts from a Charge without destroying the Discount.\n * In most cases the Discount should be removed from the Address. When the Discount is removed from the Address, the Discount is also removed from any future Charges.\n * If the Discount is on the parent Address, you cannot remove it using charge_id.\n * When removing your Discount, it is preferable to pass the address_id so that the Discount stays removed if the Charge is regenerated. Only pass charge_id in edge cases in which there are two or more Charges on a parent Address and you only want to remove the Discount from one Charge.\n * If you pass both parameters, it will remove the Discount from the Address.\n */\nexport async function removeDiscountsFromCharge(session: Session, id: number | string) {\n const { charge } = await rechargeApiRequest<ChargeResponse>(\n 'post',\n `/charges/${id}/remove_discount`,\n {},\n getInternalSession(session, 'removeDiscountsFromCharge')\n );\n return charge;\n}\n\n/* Skip a Charge. */\nexport async function skipCharge(\n session: Session,\n id: number | string,\n purchaseItemIds: (string | number)[],\n query?: SkipChargeParams\n) {\n const { charge } = await rechargeApiRequest<ChargeResponse>(\n 'post',\n `/charges/${id}/skip`,\n {\n query,\n data: {\n purchase_item_ids: purchaseItemIds.map(id => Number(id)),\n },\n },\n getInternalSession(session, 'skipCharge')\n );\n return charge;\n}\n\n/* Unskip a Charge. */\nexport async function unskipCharge(\n session: Session,\n id: number | string,\n purchaseItemIds: (string | number)[],\n query?: SkipChargeParams\n) {\n const { charge } = await rechargeApiRequest<ChargeResponse>(\n 'post',\n `/charges/${id}/unskip`,\n {\n query,\n data: {\n purchase_item_ids: purchaseItemIds.map(id => Number(id)),\n },\n },\n getInternalSession(session, 'unskipCharge')\n );\n return charge;\n}\n\n/* Process a Charge. */\nexport async function processCharge(session: Session, id: number | string) {\n const { charge } = await rechargeApiRequest<ChargeResponse>(\n 'post',\n `/charges/${id}/process`,\n {},\n getInternalSession(session, 'processCharge')\n );\n return charge;\n}\n"],"names":["rechargeApiRequest","getInternalSession","id"],"mappings":";;;;AAWsB,eAAA,SAAA,CAAU,OAAkB,EAAA,EAAA,EAAqB,OAA4B,EAAA;AACjG,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,MAAMA,0BAAA;AAAA,IACvB,KAAA;AAAA,IACA,CAAA,QAAA,CAAA;AAAA,IACA,EAAE,EAAI,EAAA,KAAA,EAAO,EAAE,OAAS,EAAA,OAAA,EAAS,SAAU,EAAA;AAAA,IAC3CC,0BAAA,CAAmB,SAAS,WAAW,CAAA;AAAA,GACzC,CAAA;AACA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAGgB,SAAA,WAAA,CAAY,SAAkB,KAA0B,EAAA;AACtE,EAAO,OAAAD,0BAAA;AAAA,IACL,KAAA;AAAA,IACA,CAAA,QAAA,CAAA;AAAA,IACA,EAAE,KAAM,EAAA;AAAA,IACRC,0BAAA,CAAmB,SAAS,aAAa,CAAA;AAAA,GAC3C,CAAA;AACF,CAAA;AAMsB,eAAA,qBAAA,CAAsB,OAAkB,EAAA,EAAA,EAAqB,YAAsB,EAAA;AACvG,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,MAAMD,0BAAA;AAAA,IACvB,MAAA;AAAA,IACA,YAAY,EAAE,CAAA,eAAA,CAAA;AAAA,IACd;AAAA,MACE,IAAA,EAAM,EAAE,aAAA,EAAe,YAAa,EAAA;AAAA,KACtC;AAAA,IACAC,0BAAA,CAAmB,SAAS,uBAAuB,CAAA;AAAA,GACrD,CAAA;AACA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AASsB,eAAA,yBAAA,CAA0B,SAAkB,EAAqB,EAAA;AACrF,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,MAAMD,0BAAA;AAAA,IACvB,MAAA;AAAA,IACA,YAAY,EAAE,CAAA,gBAAA,CAAA;AAAA,IACd,EAAC;AAAA,IACDC,0BAAA,CAAmB,SAAS,2BAA2B,CAAA;AAAA,GACzD,CAAA;AACA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAGA,eAAsB,UACpB,CAAA,OAAA,EACA,EACA,EAAA,eAAA,EACA,KACA,EAAA;AACA,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,MAAMD,0BAAA;AAAA,IACvB,MAAA;AAAA,IACA,YAAY,EAAE,CAAA,KAAA,CAAA;AAAA,IACd;AAAA,MACE,KAAA;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,mBAAmB,eAAgB,CAAA,GAAA,CAAI,CAAAE,GAAM,KAAA,MAAA,CAAOA,GAAE,CAAC,CAAA;AAAA,OACzD;AAAA,KACF;AAAA,IACAD,0BAAA,CAAmB,SAAS,YAAY,CAAA;AAAA,GAC1C,CAAA;AACA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAGA,eAAsB,YACpB,CAAA,OAAA,EACA,EACA,EAAA,eAAA,EACA,KACA,EAAA;AACA,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,MAAMD,0BAAA;AAAA,IACvB,MAAA;AAAA,IACA,YAAY,EAAE,CAAA,OAAA,CAAA;AAAA,IACd;AAAA,MACE,KAAA;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,mBAAmB,eAAgB,CAAA,GAAA,CAAI,CAAAE,GAAM,KAAA,MAAA,CAAOA,GAAE,CAAC,CAAA;AAAA,OACzD;AAAA,KACF;AAAA,IACAD,0BAAA,CAAmB,SAAS,cAAc,CAAA;AAAA,GAC5C,CAAA;AACA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAGsB,eAAA,aAAA,CAAc,SAAkB,EAAqB,EAAA;AACzE,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,MAAMD,0BAAA;AAAA,IACvB,MAAA;AAAA,IACA,YAAY,EAAE,CAAA,QAAA,CAAA;AAAA,IACd,EAAC;AAAA,IACDC,0BAAA,CAAmB,SAAS,eAAe,CAAA;AAAA,GAC7C,CAAA;AACA,EAAO,OAAA,MAAA,CAAA;AACT;;;;;;;;;;"}
@@ -0,0 +1,88 @@
1
+ 'use strict';
2
+
3
+ var request = require('../utils/request.js');
4
+ var product = require('./product.js');
5
+
6
+ async function getCollection(session, id) {
7
+ const { collection } = await request.rechargeApiRequest(
8
+ "get",
9
+ `/collections`,
10
+ {
11
+ id
12
+ },
13
+ request.getInternalSession(session, "getCollection")
14
+ );
15
+ return collection;
16
+ }
17
+ function listCollections(session, query) {
18
+ return request.rechargeApiRequest(
19
+ "get",
20
+ `/collections`,
21
+ { query },
22
+ request.getInternalSession(session, "listCollections")
23
+ );
24
+ }
25
+ async function listCollectionProducts(session, id, query) {
26
+ if (!["2020-12", "2022-06"].includes(query.format_version)) {
27
+ throw new Error("Missing or unsupported format_version.");
28
+ }
29
+ const internalSession = request.getInternalSession(session, "listCollectionProducts");
30
+ const [{ sort_order, manual_sort_order }, { products }] = await Promise.all([
31
+ getCollection(internalSession, id),
32
+ product.productSearch(internalSession, {
33
+ ...query,
34
+ collection_ids: [id],
35
+ limit: 250
36
+ })
37
+ ]);
38
+ if (sort_order === "manual") {
39
+ return {
40
+ products: manual_sort_order.reduce((prev, curr) => {
41
+ const product = products.find((product2) => product2.external_product_id === curr);
42
+ if (product) {
43
+ prev.push(product);
44
+ }
45
+ return prev;
46
+ }, [])
47
+ };
48
+ } else {
49
+ const compareFn = getProductCompareFn(sort_order);
50
+ return { products: products.slice().sort(compareFn) };
51
+ }
52
+ }
53
+ function sortByCreatedAt(a, b) {
54
+ const aCreatedAt = a.external_created_at;
55
+ const bCreatedAt = b.external_created_at;
56
+ return aCreatedAt < bCreatedAt ? -1 : bCreatedAt > aCreatedAt ? 1 : 0;
57
+ }
58
+ function sortById(a, b) {
59
+ const aProductId = a.external_product_id;
60
+ const bProductId = b.external_product_id;
61
+ return aProductId < bProductId ? -1 : bProductId > aProductId ? 1 : 0;
62
+ }
63
+ function sortByTitle(a, b) {
64
+ const aTitle = a.title.toLowerCase();
65
+ const bTitle = b.title.toLowerCase();
66
+ return aTitle < bTitle ? -1 : bTitle > aTitle ? 1 : 0;
67
+ }
68
+ function getProductCompareFn(sortOrder) {
69
+ switch (sortOrder) {
70
+ case "created_at-asc":
71
+ return sortByCreatedAt;
72
+ case "created_at-desc":
73
+ return (a, b) => sortByCreatedAt(b, a);
74
+ case "id-asc":
75
+ return sortById;
76
+ case "id-desc":
77
+ return (a, b) => sortById(b, a);
78
+ case "title-asc":
79
+ return sortByTitle;
80
+ case "title-desc":
81
+ return (a, b) => sortByTitle(b, a);
82
+ }
83
+ }
84
+
85
+ exports.getCollection = getCollection;
86
+ exports.listCollectionProducts = listCollectionProducts;
87
+ exports.listCollections = listCollections;
88
+ //# sourceMappingURL=collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection.js","sources":["../../../src/api/collection.ts"],"sourcesContent":["import {\n Collection,\n CollectionListParams,\n CollectionsResponse,\n CollectionsSortBy,\n ProductSearchParams_2020_12,\n ProductSearchParams_2022_06,\n Product_2020_12,\n Product_2022_06,\n Session,\n} from '../types';\nimport { getInternalSession, rechargeApiRequest } from '../utils/request';\nimport { productSearch } from './product';\n\nexport type ProductListResponse<T extends ProductSearchParams_2020_12 | ProductSearchParams_2022_06> =\n T extends ProductSearchParams_2020_12 ? { products: Product_2020_12[] } : { products: Product_2022_06[] };\n\nexport async function getCollection(session: Session, id: string | number): Promise<Collection> {\n const { collection } = await rechargeApiRequest<{ collection: Collection }>(\n 'get',\n `/collections`,\n {\n id,\n },\n getInternalSession(session, 'getCollection')\n );\n return collection;\n}\n\nexport function listCollections(session: Session, query?: CollectionListParams): Promise<CollectionsResponse> {\n return rechargeApiRequest<CollectionsResponse>(\n 'get',\n `/collections`,\n { query },\n getInternalSession(session, 'listCollections')\n );\n}\n\nexport async function listCollectionProducts<T extends ProductSearchParams_2020_12 | ProductSearchParams_2022_06>(\n session: Session,\n id: string | number,\n query: T\n): Promise<ProductListResponse<T>> {\n if (!['2020-12', '2022-06'].includes(query.format_version)) {\n throw new Error('Missing or unsupported format_version.');\n }\n\n const internalSession = getInternalSession(session, 'listCollectionProducts');\n const [{ sort_order, manual_sort_order }, { products }] = await Promise.all([\n getCollection(internalSession, id),\n productSearch(internalSession, {\n ...query,\n collection_ids: [id],\n limit: 250,\n }),\n ]);\n if (sort_order === 'manual') {\n return {\n products: manual_sort_order.reduce((prev, curr) => {\n const product = products.find(product => product.external_product_id === curr);\n if (product) {\n // @ts-expect-error types are unhappy with push\n prev.push(product);\n }\n return prev;\n }, [] as Product_2020_12[] | Product_2022_06[]),\n } as ProductListResponse<T>;\n } else {\n const compareFn = getProductCompareFn(sort_order);\n return { products: products.slice().sort(compareFn) } as ProductListResponse<T>;\n }\n}\n\nfunction sortByCreatedAt(a: Product_2020_12 | Product_2022_06, b: Product_2020_12 | Product_2022_06) {\n const aCreatedAt = a.external_created_at;\n const bCreatedAt = b.external_created_at;\n return aCreatedAt < bCreatedAt ? -1 : bCreatedAt > aCreatedAt ? 1 : 0;\n}\n\nfunction sortById(a: Product_2020_12 | Product_2022_06, b: Product_2020_12 | Product_2022_06) {\n const aProductId = a.external_product_id;\n const bProductId = b.external_product_id;\n return aProductId < bProductId ? -1 : bProductId > aProductId ? 1 : 0;\n}\n\nfunction sortByTitle(a: Product_2020_12 | Product_2022_06, b: Product_2020_12 | Product_2022_06) {\n const aTitle = a.title.toLowerCase();\n const bTitle = b.title.toLowerCase();\n return aTitle < bTitle ? -1 : bTitle > aTitle ? 1 : 0;\n}\n\nfunction getProductCompareFn(sortOrder: CollectionsSortBy) {\n switch (sortOrder) {\n case 'created_at-asc':\n return sortByCreatedAt;\n case 'created_at-desc':\n return (a: Product_2020_12 | Product_2022_06, b: Product_2020_12 | Product_2022_06) => sortByCreatedAt(b, a);\n case 'id-asc':\n return sortById;\n case 'id-desc':\n return (a: Product_2020_12 | Product_2022_06, b: Product_2020_12 | Product_2022_06) => sortById(b, a);\n case 'title-asc':\n return sortByTitle;\n case 'title-desc':\n return (a: Product_2020_12 | Product_2022_06, b: Product_2020_12 | Product_2022_06) => sortByTitle(b, a);\n }\n}\n"],"names":["rechargeApiRequest","getInternalSession","productSearch","product"],"mappings":"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"}
@@ -14,7 +14,7 @@ async function getCustomer(session, options) {
14
14
  id,
15
15
  query: { include: options?.include }
16
16
  },
17
- session
17
+ request.getInternalSession(session, "getCustomer")
18
18
  );
19
19
  return customer;
20
20
  }
@@ -27,7 +27,7 @@ async function updateCustomer(session, updateRequest) {
27
27
  "put",
28
28
  `/customers`,
29
29
  { id, data: updateRequest },
30
- session
30
+ request.getInternalSession(session, "updateCustomer")
31
31
  );
32
32
  return customer;
33
33
  }
@@ -40,22 +40,31 @@ async function getDeliverySchedule(session, query) {
40
40
  "get",
41
41
  `/customers/${id}/delivery_schedule`,
42
42
  { query },
43
- session
43
+ request.getInternalSession(session, "getDeliverySchedule")
44
44
  );
45
45
  return deliveries;
46
46
  }
47
47
  async function getCustomerPortalAccess(session) {
48
- return request.rechargeApiRequest("get", "/portal_access", {}, session);
48
+ return request.rechargeApiRequest(
49
+ "get",
50
+ "/portal_access",
51
+ {},
52
+ request.getInternalSession(session, "getCustomerPortalAccess")
53
+ );
49
54
  }
50
55
  async function getActiveChurnLandingPageURL(session, subscriptionId, redirectURL) {
51
- const { base_url, customer_hash, temp_token } = await getCustomerPortalAccess(session);
56
+ const { base_url, customer_hash, temp_token } = await getCustomerPortalAccess(
57
+ request.getInternalSession(session, "getActiveChurnLandingPageURL")
58
+ );
52
59
  return `${base_url.replace(
53
60
  "portal",
54
61
  "pages"
55
62
  )}${customer_hash}/subscriptions/${subscriptionId}/cancel?token=${temp_token}&subscription=${subscriptionId}&redirect_to=${redirectURL}`;
56
63
  }
57
64
  async function getGiftRedemptionLandingPageURL(session, giftId, redirectURL) {
58
- const { base_url, customer_hash, temp_token } = await getCustomerPortalAccess(session);
65
+ const { base_url, customer_hash, temp_token } = await getCustomerPortalAccess(
66
+ request.getInternalSession(session, "getGiftRedemptionLandingPageURL")
67
+ );
59
68
  return `${base_url.replace(
60
69
  "portal",
61
70
  "pages"
@@ -85,7 +94,7 @@ async function sendCustomerNotification(session, notification, options) {
85
94
  template_vars: options
86
95
  }
87
96
  },
88
- session
97
+ request.getInternalSession(session, "sendCustomerNotification")
89
98
  );
90
99
  }
91
100
  async function getCreditSummary(session, options) {
@@ -99,7 +108,7 @@ async function getCreditSummary(session, options) {
99
108
  {
100
109
  query: { include: options?.include }
101
110
  },
102
- session
111
+ request.getInternalSession(session, "getCreditSummary")
103
112
  );
104
113
  return credit_summary;
105
114
  }