@rechargeapps/storefront-client 1.14.2 → 1.14.4

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 (96) hide show
  1. package/dist/cjs/api/address.js +2 -20
  2. package/dist/cjs/api/address.js.map +1 -1
  3. package/dist/cjs/api/auth.js +8 -24
  4. package/dist/cjs/api/auth.js.map +1 -1
  5. package/dist/cjs/api/bundle.js +0 -2
  6. package/dist/cjs/api/bundle.js.map +1 -1
  7. package/dist/cjs/api/cdn.js +3 -6
  8. package/dist/cjs/api/cdn.js.map +1 -1
  9. package/dist/cjs/api/charge.js +1 -3
  10. package/dist/cjs/api/charge.js.map +1 -1
  11. package/dist/cjs/api/customer.js +5 -25
  12. package/dist/cjs/api/customer.js.map +1 -1
  13. package/dist/cjs/api/gift.js +0 -2
  14. package/dist/cjs/api/gift.js.map +1 -1
  15. package/dist/cjs/api/membership.js +0 -2
  16. package/dist/cjs/api/membership.js.map +1 -1
  17. package/dist/cjs/api/membershipProgram.js +1 -3
  18. package/dist/cjs/api/membershipProgram.js.map +1 -1
  19. package/dist/cjs/api/metafield.js +0 -2
  20. package/dist/cjs/api/metafield.js.map +1 -1
  21. package/dist/cjs/api/onetime.js +0 -2
  22. package/dist/cjs/api/onetime.js.map +1 -1
  23. package/dist/cjs/api/order.js +0 -2
  24. package/dist/cjs/api/order.js.map +1 -1
  25. package/dist/cjs/api/paymentMethod.js +2 -23
  26. package/dist/cjs/api/paymentMethod.js.map +1 -1
  27. package/dist/cjs/api/plan.js +0 -2
  28. package/dist/cjs/api/plan.js.map +1 -1
  29. package/dist/cjs/api/product.js +0 -2
  30. package/dist/cjs/api/product.js.map +1 -1
  31. package/dist/cjs/api/store.js +0 -2
  32. package/dist/cjs/api/store.js.map +1 -1
  33. package/dist/cjs/api/subscription.js +3 -9
  34. package/dist/cjs/api/subscription.js.map +1 -1
  35. package/dist/cjs/constants/api.js +0 -2
  36. package/dist/cjs/constants/api.js.map +1 -1
  37. package/dist/cjs/index.js +0 -2
  38. package/dist/cjs/index.js.map +1 -1
  39. package/dist/cjs/mappers/cdn.js +8 -33
  40. package/dist/cjs/mappers/cdn.js.map +1 -1
  41. package/dist/cjs/mappers/subscription.js +23 -47
  42. package/dist/cjs/mappers/subscription.js.map +1 -1
  43. package/dist/cjs/mappers/utils.js +2 -23
  44. package/dist/cjs/mappers/utils.js.map +1 -1
  45. package/dist/cjs/utils/bundle.js +0 -2
  46. package/dist/cjs/utils/bundle.js.map +1 -1
  47. package/dist/cjs/utils/error.js +0 -2
  48. package/dist/cjs/utils/error.js.map +1 -1
  49. package/dist/cjs/utils/init.js +3 -6
  50. package/dist/cjs/utils/init.js.map +1 -1
  51. package/dist/cjs/utils/options.js +0 -2
  52. package/dist/cjs/utils/options.js.map +1 -1
  53. package/dist/cjs/utils/request.js +16 -37
  54. package/dist/cjs/utils/request.js.map +1 -1
  55. package/dist/esm/api/address.js +2 -18
  56. package/dist/esm/api/address.js.map +1 -1
  57. package/dist/esm/api/auth.js +8 -22
  58. package/dist/esm/api/auth.js.map +1 -1
  59. package/dist/esm/api/bundle.js.map +1 -1
  60. package/dist/esm/api/cdn.js +3 -4
  61. package/dist/esm/api/cdn.js.map +1 -1
  62. package/dist/esm/api/charge.js +1 -1
  63. package/dist/esm/api/charge.js.map +1 -1
  64. package/dist/esm/api/customer.js +5 -23
  65. package/dist/esm/api/customer.js.map +1 -1
  66. package/dist/esm/api/gift.js.map +1 -1
  67. package/dist/esm/api/membership.js.map +1 -1
  68. package/dist/esm/api/membershipProgram.js +1 -1
  69. package/dist/esm/api/membershipProgram.js.map +1 -1
  70. package/dist/esm/api/metafield.js.map +1 -1
  71. package/dist/esm/api/onetime.js.map +1 -1
  72. package/dist/esm/api/order.js.map +1 -1
  73. package/dist/esm/api/paymentMethod.js +2 -21
  74. package/dist/esm/api/paymentMethod.js.map +1 -1
  75. package/dist/esm/api/plan.js.map +1 -1
  76. package/dist/esm/api/product.js.map +1 -1
  77. package/dist/esm/api/store.js.map +1 -1
  78. package/dist/esm/api/subscription.js +2 -2
  79. package/dist/esm/api/subscription.js.map +1 -1
  80. package/dist/esm/constants/api.js.map +1 -1
  81. package/dist/esm/mappers/cdn.js +8 -27
  82. package/dist/esm/mappers/cdn.js.map +1 -1
  83. package/dist/esm/mappers/subscription.js +23 -41
  84. package/dist/esm/mappers/subscription.js.map +1 -1
  85. package/dist/esm/mappers/utils.js +2 -21
  86. package/dist/esm/mappers/utils.js.map +1 -1
  87. package/dist/esm/utils/bundle.js.map +1 -1
  88. package/dist/esm/utils/error.js.map +1 -1
  89. package/dist/esm/utils/init.js +3 -4
  90. package/dist/esm/utils/init.js.map +1 -1
  91. package/dist/esm/utils/options.js.map +1 -1
  92. package/dist/esm/utils/request.js +15 -30
  93. package/dist/esm/utils/request.js.map +1 -1
  94. package/dist/index.d.ts +7 -2
  95. package/dist/umd/recharge-client.min.js +9 -9
  96. package/package.json +23 -22
@@ -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":[],"mappings":"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"}
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":[],"mappings":";;AAegB,SAAA,aAAA,CAAc,SAAkB,KAA2B,EAAA;AACzE,EAAA,OAAO,mBAAwC,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,MAAM,kBAAA;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,MAAM,kBAAA;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,MAAM,kBAAA;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,OAAO,mBAAyB,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,MAAM,kBAAA;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,MAAM,kBAAA;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;;;;"}
@@ -2,22 +2,6 @@ import { shopifyAppProxyRequest, request } from '../utils/request.js';
2
2
  import { getOptions } from '../utils/options.js';
3
3
  import { RECHARGE_ADMIN_URL } from '../constants/api.js';
4
4
 
5
- var __defProp = Object.defineProperty;
6
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
- var __spreadValues = (a, b) => {
11
- for (var prop in b || (b = {}))
12
- if (__hasOwnProp.call(b, prop))
13
- __defNormalProp(a, prop, b[prop]);
14
- if (__getOwnPropSymbols)
15
- for (var prop of __getOwnPropSymbols(b)) {
16
- if (__propIsEnum.call(b, prop))
17
- __defNormalProp(a, prop, b[prop]);
18
- }
19
- return a;
20
- };
21
5
  async function loginShopifyAppProxy() {
22
6
  const { storefrontAccessToken } = getOptions();
23
7
  const headers = {};
@@ -52,10 +36,11 @@ async function sendPasswordlessCode(email, options = {}) {
52
36
  headers["X-Recharge-Storefront-Access-Token"] = storefrontAccessToken;
53
37
  }
54
38
  const response = await request("post", `${rechargeBaseUrl}/attempt_login`, {
55
- data: __spreadValues({
39
+ data: {
56
40
  email,
57
- shop: storeIdentifier
58
- }, options),
41
+ shop: storeIdentifier,
42
+ ...options
43
+ },
59
44
  headers
60
45
  });
61
46
  if (response.errors) {
@@ -70,9 +55,10 @@ async function sendPasswordlessCodeAppProxy(email, options = {}) {
70
55
  headers["X-Recharge-Storefront-Access-Token"] = storefrontAccessToken;
71
56
  }
72
57
  const response = await shopifyAppProxyRequest("post", "/attempt_login", {
73
- data: __spreadValues({
74
- email
75
- }, options),
58
+ data: {
59
+ email,
60
+ ...options
61
+ },
76
62
  headers
77
63
  });
78
64
  if (response.errors) {
@@ -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 };\n}\n\nexport async function loginShopifyApi(\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 response = 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 response.api_token ? { apiToken: response.api_token, customerId: response.customer_id } : 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":["baseRequest"],"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} 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 };\n}\n\nexport async function loginShopifyApi(\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 response = 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 response.api_token ? { apiToken: response.api_token, customerId: response.customer_id } : 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":["baseRequest"],"mappings":"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"}
@@ -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 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":[],"mappings":"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"}
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 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":[],"mappings":";;;;;;AAmBA,MAAM,uBAA0B,GAAA,8BAAA,CAAA;AAEhC,SAAS,6BAAwC,GAAA;AAI/C,EAAA,OAAO,IAAK,CAAA,IAAA,CAAK,IAAK,CAAA,GAAA,KAAQ,GAAI,CAAA,CAAA;AACpC,CAAA;AAEA,eAAe,6BAAiD,GAAA;AAK9D,EAAI,IAAA;AACF,IAAM,MAAA,EAAE,WAAc,GAAA,MAAM,uBAA8C,KAAO,EAAA,CAAA,EAAG,uBAAuB,CAAM,EAAA,CAAA,EAAA;AAAA,MAC/G,OAAA,EAAS,EAAE,gBAAA,EAAkB,mBAAoB,EAAA;AAAA,KAClD,CAAA,CAAA;AACD,IAAO,OAAA,SAAA,CAAA;AAAA,WACA,EAAI,EAAA;AACX,IAAQ,OAAA,CAAA,KAAA,CAAM,CAAiB,cAAA,EAAA,EAAE,CAA2B,yBAAA,CAAA,CAAA,CAAA;AAC5D,IAAA,OAAO,6BAA8B,EAAA,CAAA;AAAA,GACvC;AACF,CAAA;AAEA,eAAsB,YAAY,MAAyC,EAAA;AACzE,EAAA,MAAM,OAAO,UAAW,EAAA,CAAA;AACxB,EAAM,MAAA,OAAA,GAAU,MAAM,cAAA,CAAe,MAAM,CAAA,CAAA;AAC3C,EAAA,IAAI,YAAY,IAAM,EAAA;AACpB,IAAM,MAAA,IAAI,MAAM,OAAO,CAAA,CAAA;AAAA,GACzB;AACA,EAAM,MAAA,gBAAA,GAAmB,MAAM,6BAA8B,EAAA,CAAA;AAC7D,EAAA,MAAM,aAAa,kBAAmB,CAAA;AAAA,IACpC,WAAW,MAAO,CAAA,iBAAA;AAAA,IAClB,OAAS,EAAA,gBAAA;AAAA,IACT,KAAO,EAAA,MAAA,CAAO,UAAW,CAAA,GAAA,CAAI,CAAQ,IAAA,KAAA;AACnC,MAAO,OAAA;AAAA,QACL,cAAc,IAAK,CAAA,YAAA;AAAA,QACnB,WAAW,IAAK,CAAA,iBAAA;AAAA,QAChB,WAAW,IAAK,CAAA,iBAAA;AAAA,QAChB,UAAU,IAAK,CAAA,QAAA;AAAA,QACf,GAAK,EAAA,EAAA;AAAA,OACP,CAAA;AAAA,KACD,CAAA;AAAA,GACF,CAAA,CAAA;AAED,EAAI,IAAA;AACF,IAAA,MAAM,UAAU,MAAM,sBAAA;AAAA,MACpB,MAAA;AAAA,MACA,GAAG,uBAAuB,CAAA,eAAA,CAAA;AAAA,MAC1B;AAAA,QACE,IAAM,EAAA;AAAA,UACJ,MAAQ,EAAA,UAAA;AAAA,SACV;AAAA,QACA,OAAS,EAAA;AAAA,UACP,MAAA,EAAQ,CAAW,QAAA,EAAA,IAAA,CAAK,eAAe,CAAA,CAAA;AAAA,SACzC;AAAA,OACF;AAAA,KACF,CAAA;AAEA,IAAA,IAAI,CAAC,OAAA,CAAQ,EAAM,IAAA,OAAA,CAAQ,SAAS,GAAK,EAAA;AACvC,MAAA,MAAM,IAAI,KAAM,CAAA,CAAA,4BAAA,EAA+B,KAAK,SAAU,CAAA,OAAO,CAAC,CAAE,CAAA,CAAA,CAAA;AAAA,KAC1E;AAEA,IAAA,OAAO,OAAQ,CAAA,EAAA,CAAA;AAAA,WACR,CAAG,EAAA;AAEV,IAAA,MAAM,IAAI,KAAA,CAAM,CAA8B,2BAAA,EAAA,CAAC,CAAE,CAAA,CAAA,CAAA;AAAA,GACnD;AACF,CAAA;AAEgB,SAAA,qBAAA,CAAsB,QAAwB,oBAA8B,EAAA;AAC1F,EAAM,MAAA,OAAA,GAAU,sBAAsB,MAAM,CAAA,CAAA;AAC5C,EAAA,IAAI,YAAY,IAAM,EAAA;AACpB,IAAA,MAAM,IAAI,KAAA,CAAM,CAA8B,2BAAA,EAAA,OAAO,CAAE,CAAA,CAAA,CAAA;AAAA,GACzD;AAEA,EAAA,MAAM,WAAW,CAAG,EAAA,MAAA,CAAO,CAAC,CAAC,CAAA,CAAA,EAAI,OAAO,iBAAiB,CAAA,CAAA,CAAA;AACzD,EAAO,OAAA,MAAA,CAAO,UAAW,CAAA,GAAA,CAAI,CAAQ,IAAA,KAAA;AACnC,IAAA,MAAM,QAAsC,GAAA;AAAA,MAC1C,IAAI,IAAK,CAAA,iBAAA;AAAA,MACT,UAAU,IAAK,CAAA,QAAA;AAAA,MACf,UAAY,EAAA;AAAA,QACV,UAAY,EAAA,QAAA;AAAA,QACZ,oBAAoB,MAAO,CAAA,iBAAA;AAAA,QAC3B,iBAAmB,EAAA,oBAAA;AAAA,QACnB,0BAA0B,IAAK,CAAA,YAAA;AAAA,OACjC;AAAA,KACF,CAAA;AAEA,IAAA,IAAI,KAAK,WAAa,EAAA;AAEpB,MAAA,QAAA,CAAS,eAAe,IAAK,CAAA,WAAA,CAAA;AAAA,KAC/B,MAAA,IAAW,KAAK,yBAA2B,EAAA;AAEzC,MAAS,QAAA,CAAA,UAAA,CAAW,8BAA8B,IAAK,CAAA,yBAAA,CAAA;AACvD,MAAS,QAAA,CAAA,UAAA,CAAW,8BAA8B,IAAK,CAAA,wBAAA,CAAA;AACvD,MAAS,QAAA,CAAA,EAAA,GAAK,CAAG,EAAA,IAAA,CAAK,mBAAmB,CAAA,CAAA,CAAA;AAAA,KAC3C;AAEA,IAAO,OAAA,QAAA,CAAA;AAAA,GACR,CAAA,CAAA;AACH,CAAA;AAEA,eAAsB,eAAe,MAAgD,EAAA;AACnF,EAAI,IAAA;AAGF,IAAA,IAAI,CAAC,MAAQ,EAAA;AACX,MAAO,OAAA,uBAAA,CAAA;AAAA,KACT;AACA,IAAA,MAAM,cAAiB,GAAA,MAAM,oBAAqB,CAAA,MAAA,CAAO,iBAAiB,CAAA,CAAA;AAC1E,IAAA,IAAI,CAAC,cAAgB,EAAA;AACnB,MAAO,OAAA,oDAAA,CAAA;AAAA,KACT;AACA,IAAO,OAAA,IAAA,CAAA;AAAA,WACA,CAAG,EAAA;AACV,IAAA,OAAO,mCAAmC,CAAC,CAAA,CAAA,CAAA;AAAA,GAC7C;AACF,CAAA;AAEA,MAAM,kBAAqB,GAAA;AAAA,EACzB,GAAK,EAAA,CAAC,KAAO,EAAA,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC3B,IAAM,EAAA,CAAC,KAAO,EAAA,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC5B,IAAM,EAAA,CAAC,KAAO,EAAA,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC5B,IAAM,EAAA,CAAC,MAAQ,EAAA,OAAA,EAAS,OAAO,CAAA;AAAA,EAC/B,KAAO,EAAA,CAAC,MAAQ,EAAA,OAAA,EAAS,OAAO,CAAA;AAAA,EAChC,KAAO,EAAA,CAAC,MAAQ,EAAA,OAAA,EAAS,OAAO,CAAA;AAAA,EAChC,KAAO,EAAA,CAAC,OAAS,EAAA,QAAA,EAAU,QAAQ,CAAA;AAAA,EACnC,MAAQ,EAAA,CAAC,OAAS,EAAA,QAAA,EAAU,QAAQ,CAAA;AAAA,EACpC,MAAQ,EAAA,CAAC,OAAS,EAAA,QAAA,EAAU,QAAQ,CAAA;AACtC,CAAA,CAAA;AAQO,SAAS,sBAAsB,MAAuC,EAAA;AAC3E,EAAA,IAAI,CAAC,MAAQ,EAAA;AACX,IAAO,OAAA,oBAAA,CAAA;AAAA,GACT;AACA,EAAI,IAAA,MAAA,CAAO,UAAW,CAAA,MAAA,KAAW,CAAG,EAAA;AAClC,IAAO,OAAA,wBAAA,CAAA;AAAA,GACT;AAEA,EAAA,MAAM,EAAE,yBAAA,EAA2B,wBAAyB,EAAA,GAC1D,MAAO,CAAA,UAAA,CAAW,IAAK,CAAA,CAAA,SAAA,KAAa,SAAU,CAAA,yBAAA,IAA6B,SAAU,CAAA,wBAAwB,KAC7G,EAAC,CAAA;AACH,EAAA,IAAI,6BAA6B,wBAA0B,EAAA;AAEzD,IAAI,IAAA,CAAC,yBAA6B,IAAA,CAAC,wBAA0B,EAAA;AAC3D,MAAO,OAAA,gDAAA,CAAA;AAAA,KACF,MAAA;AAEL,MAAM,MAAA,yBAAA,GAA4B,mBAAmB,wBAAwB,CAAA,CAAA;AAC7E,MAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,MAAO,CAAA,UAAA,CAAW,QAAQ,CAAK,EAAA,EAAA;AACjD,QAAM,MAAA,EAAE,2BAA2B,SAAW,EAAA,wBAAA,EAA0B,UAAa,GAAA,MAAA,CAAO,WAAW,CAAC,CAAA,CAAA;AACxG,QACG,IAAA,SAAA,IAAa,cAAc,yBAC3B,IAAA,QAAA,IAAY,CAAC,yBAA0B,CAAA,QAAA,CAAS,QAAQ,CACzD,EAAA;AACA,UAAO,OAAA,gDAAA,CAAA;AAAA,SACT;AAAA,OACF;AAAA,KACF;AAAA,GACF;AACA,EAAO,OAAA,IAAA,CAAA;AACT,CAAA;AAEsB,eAAA,kBAAA,CAAmB,SAAkB,EAA+C,EAAA;AACxG,EAAM,MAAA,EAAE,gBAAiB,EAAA,GAAI,MAAM,kBAAA;AAAA,IACjC,KAAA;AAAA,IACA,CAAA,kBAAA,CAAA;AAAA,IACA;AAAA,MACE,EAAA;AAAA,KACF;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,gBAAA,CAAA;AACT,CAAA;AAEgB,SAAA,oBAAA,CACd,SACA,KACmC,EAAA;AACnC,EAAA,OAAO,mBAA6C,KAAO,EAAA,CAAA,kBAAA,CAAA,EAAsB,EAAE,KAAA,IAAS,OAAO,CAAA,CAAA;AACrG,CAAA;AAEsB,eAAA,qBAAA,CACpB,SACA,aAC0B,EAAA;AAC1B,EAAM,MAAA,EAAE,gBAAiB,EAAA,GAAI,MAAM,kBAAA;AAAA,IACjC,MAAA;AAAA,IACA,CAAA,kBAAA,CAAA;AAAA,IACA;AAAA,MACE,IAAM,EAAA,aAAA;AAAA,KACR;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,gBAAA,CAAA;AACT,CAAA;AAEsB,eAAA,qBAAA,CACpB,OACA,EAAA,EAAA,EACA,aAC0B,EAAA;AAC1B,EAAM,MAAA,EAAE,gBAAiB,EAAA,GAAI,MAAM,kBAAA;AAAA,IACjC,KAAA;AAAA,IACA,CAAA,kBAAA,CAAA;AAAA,IACA;AAAA,MACE,EAAA;AAAA,MACA,IAAM,EAAA,aAAA;AAAA,KACR;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,gBAAA,CAAA;AACT,CAAA;AAEgB,SAAA,qBAAA,CAAsB,SAAkB,EAAoC,EAAA;AAC1F,EAAO,OAAA,kBAAA;AAAA,IACL,QAAA;AAAA,IACA,CAAA,kBAAA,CAAA;AAAA,IACA;AAAA,MACE,EAAA;AAAA,KACF;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF,CAAA;AAEA,eAAsB,YACpB,CAAA,OAAA,EACA,gBACA,EAAA,aAAA,EACA,KAC6B,EAAA;AAC7B,EAAM,MAAA,EAAE,YAAa,EAAA,GAAI,MAAM,kBAAA;AAAA,IAC7B,KAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,MACE,EAAI,EAAA,gBAAA;AAAA,MACJ,IAAM,EAAA,aAAA;AAAA,MACN,KAAA;AAAA,KACF;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AAEA,EAAO,OAAA,YAAA,CAAA;AACT;;;;"}
@@ -19,8 +19,7 @@ function cacheRequest(cacheKey, request) {
19
19
  return promiseCache.get(cacheKey);
20
20
  }
21
21
  async function getCDNProduct(externalProductId, query) {
22
- var _a;
23
- const version = (_a = query == null ? void 0 : query.version) != null ? _a : "2020-12";
22
+ const version = query?.version ?? "2020-12";
24
23
  const { product } = await cacheRequest(
25
24
  `product.${externalProductId}.${version}`,
26
25
  () => cdnRequest("get", `/product/${version}/${externalProductId}.json`)
@@ -52,13 +51,13 @@ async function getCDNProductsAndSettings() {
52
51
  "productsAndSettings",
53
52
  () => cdnRequest("get", `/product/${BASE_CDN_VERSION}/products.json`)
54
53
  );
55
- if ((meta == null ? void 0 : meta.status) === "error") {
54
+ if (meta?.status === "error") {
56
55
  return Promise.reject(meta.message);
57
56
  }
58
57
  return {
59
58
  products: productArrayMapper(products),
60
59
  widget_settings: widgetSettingsMapper(widget_settings),
61
- store_settings: store_settings != null ? store_settings : {}
60
+ store_settings: store_settings ?? {}
62
61
  };
63
62
  }
64
63
  async function getCDNProducts() {
@@ -1 +1 @@
1
- {"version":3,"file":"cdn.js","sources":["../../../src/api/cdn.ts"],"sourcesContent":["import {\n CDNWidgetSettings,\n CDNStoreSettings,\n CDNWidgetSettingsResource,\n CDNProductsAndSettings,\n CDNProductAndSettings,\n CDNProductsAndSettingsResource,\n CDNBundleSettings,\n CDNProductKeyObject,\n CDNProductRaw,\n CDNProductType,\n CDNProductQuery_2020_12,\n CDNProductQuery_2022_06,\n CDNProductResponseType,\n} from '../types';\nimport { productArrayMapper, productMapper, widgetSettingsMapper } from '../mappers/cdn';\nimport { cdnRequest } from '../utils/request';\n\nconst BASE_CDN_VERSION = '2020-12';\n\n// Default store settings if none are provided from the cdn\nconst DEFAULT_STORE_SETTINGS: CDNStoreSettings = {\n store_currency: {\n currency_code: 'USD',\n currency_symbol: '$',\n decimal_separator: '.',\n thousands_separator: ',',\n currency_symbol_location: 'left',\n },\n};\n\nconst promiseCache = new Map();\n\n// This will cache the request and use the same promise anywhere we call this function. This will never make multiple calls and always return the first request\nfunction cacheRequest<T>(cacheKey: string, request: () => T): T {\n if (!promiseCache.has(cacheKey)) {\n promiseCache.set(cacheKey, request());\n }\n return promiseCache.get(cacheKey);\n}\n\nexport async function getCDNProduct<\n T extends CDNProductQuery_2020_12 | CDNProductQuery_2022_06 = CDNProductQuery_2020_12\n>(externalProductId: string | number, query?: T): Promise<CDNProductType<T>> {\n const version = query?.version ?? '2020-12';\n const { product } = await cacheRequest(`product.${externalProductId}.${version}`, () =>\n cdnRequest<CDNProductResponseType<T>>('get', `/product/${version}/${externalProductId}.json`)\n );\n\n if (version === '2020-12') {\n return productMapper(product as CDNProductRaw) as CDNProductType<T>;\n }\n return product as CDNProductType<T>;\n}\n\nexport async function getCDNStoreSettings(): Promise<CDNStoreSettings> {\n const storeSettings = await cacheRequest('storeSettings', () =>\n cdnRequest<CDNStoreSettings>('get', `/${BASE_CDN_VERSION}/store_settings.json`).catch(() => {\n return DEFAULT_STORE_SETTINGS;\n })\n );\n return storeSettings;\n}\n\nexport async function getCDNWidgetSettings(): Promise<CDNWidgetSettings> {\n const { widget_settings } = await cacheRequest('widgetSettings', () =>\n cdnRequest<CDNWidgetSettingsResource>('get', `/${BASE_CDN_VERSION}/widget_settings.json`)\n );\n\n const widgetSettings = widgetSettingsMapper(widget_settings);\n\n return widgetSettings;\n}\n\nexport async function getCDNProductsAndSettings(): Promise<CDNProductsAndSettings> {\n const { products, widget_settings, store_settings, meta } = await cacheRequest('productsAndSettings', () =>\n cdnRequest<CDNProductsAndSettingsResource>('get', `/product/${BASE_CDN_VERSION}/products.json`)\n );\n\n if (meta?.status === 'error') {\n return Promise.reject(meta.message);\n }\n\n return {\n products: productArrayMapper(products),\n widget_settings: widgetSettingsMapper(widget_settings),\n store_settings: store_settings ?? {},\n };\n}\n\nexport async function getCDNProducts(): Promise<CDNProductKeyObject[]> {\n const { products } = await getCDNProductsAndSettings();\n return products;\n}\n\nexport async function getCDNProductAndSettings(externalProductId: string | number): Promise<CDNProductAndSettings> {\n const [product, store_settings, widget_settings] = await Promise.all([\n getCDNProduct(externalProductId),\n getCDNStoreSettings(),\n getCDNWidgetSettings(),\n ]);\n\n return {\n product,\n store_settings,\n widget_settings,\n storeSettings: store_settings,\n widgetSettings: widget_settings,\n };\n}\n\nexport async function getCDNBundleSettings(\n externalProductId: string | number\n): Promise<CDNBundleSettings | null | undefined> {\n const { bundle_product } = await getCDNProduct(externalProductId);\n\n return bundle_product;\n}\n\nexport async function resetCDNCache() {\n return Array.from(promiseCache.keys()).forEach(key => promiseCache.delete(key));\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cdn.js","sources":["../../../src/api/cdn.ts"],"sourcesContent":["import {\n CDNWidgetSettings,\n CDNStoreSettings,\n CDNWidgetSettingsResource,\n CDNProductsAndSettings,\n CDNProductAndSettings,\n CDNProductsAndSettingsResource,\n CDNBundleSettings,\n CDNProductKeyObject,\n CDNProductRaw,\n CDNProductType,\n CDNProductQuery_2020_12,\n CDNProductQuery_2022_06,\n CDNProductResponseType,\n} from '../types';\nimport { productArrayMapper, productMapper, widgetSettingsMapper } from '../mappers/cdn';\nimport { cdnRequest } from '../utils/request';\n\nconst BASE_CDN_VERSION = '2020-12';\n\n// Default store settings if none are provided from the cdn\nconst DEFAULT_STORE_SETTINGS: CDNStoreSettings = {\n store_currency: {\n currency_code: 'USD',\n currency_symbol: '$',\n decimal_separator: '.',\n thousands_separator: ',',\n currency_symbol_location: 'left',\n },\n};\n\nconst promiseCache = new Map();\n\n// This will cache the request and use the same promise anywhere we call this function. This will never make multiple calls and always return the first request\nfunction cacheRequest<T>(cacheKey: string, request: () => T): T {\n if (!promiseCache.has(cacheKey)) {\n promiseCache.set(cacheKey, request());\n }\n return promiseCache.get(cacheKey);\n}\n\nexport async function getCDNProduct<\n T extends CDNProductQuery_2020_12 | CDNProductQuery_2022_06 = CDNProductQuery_2020_12\n>(externalProductId: string | number, query?: T): Promise<CDNProductType<T>> {\n const version = query?.version ?? '2020-12';\n const { product } = await cacheRequest(`product.${externalProductId}.${version}`, () =>\n cdnRequest<CDNProductResponseType<T>>('get', `/product/${version}/${externalProductId}.json`)\n );\n\n if (version === '2020-12') {\n return productMapper(product as CDNProductRaw) as CDNProductType<T>;\n }\n return product as CDNProductType<T>;\n}\n\nexport async function getCDNStoreSettings(): Promise<CDNStoreSettings> {\n const storeSettings = await cacheRequest('storeSettings', () =>\n cdnRequest<CDNStoreSettings>('get', `/${BASE_CDN_VERSION}/store_settings.json`).catch(() => {\n return DEFAULT_STORE_SETTINGS;\n })\n );\n return storeSettings;\n}\n\nexport async function getCDNWidgetSettings(): Promise<CDNWidgetSettings> {\n const { widget_settings } = await cacheRequest('widgetSettings', () =>\n cdnRequest<CDNWidgetSettingsResource>('get', `/${BASE_CDN_VERSION}/widget_settings.json`)\n );\n\n const widgetSettings = widgetSettingsMapper(widget_settings);\n\n return widgetSettings;\n}\n\nexport async function getCDNProductsAndSettings(): Promise<CDNProductsAndSettings> {\n const { products, widget_settings, store_settings, meta } = await cacheRequest('productsAndSettings', () =>\n cdnRequest<CDNProductsAndSettingsResource>('get', `/product/${BASE_CDN_VERSION}/products.json`)\n );\n\n if (meta?.status === 'error') {\n return Promise.reject(meta.message);\n }\n\n return {\n products: productArrayMapper(products),\n widget_settings: widgetSettingsMapper(widget_settings),\n store_settings: store_settings ?? {},\n };\n}\n\nexport async function getCDNProducts(): Promise<CDNProductKeyObject[]> {\n const { products } = await getCDNProductsAndSettings();\n return products;\n}\n\nexport async function getCDNProductAndSettings(externalProductId: string | number): Promise<CDNProductAndSettings> {\n const [product, store_settings, widget_settings] = await Promise.all([\n getCDNProduct(externalProductId),\n getCDNStoreSettings(),\n getCDNWidgetSettings(),\n ]);\n\n return {\n product,\n store_settings,\n widget_settings,\n storeSettings: store_settings,\n widgetSettings: widget_settings,\n };\n}\n\nexport async function getCDNBundleSettings(\n externalProductId: string | number\n): Promise<CDNBundleSettings | null | undefined> {\n const { bundle_product } = await getCDNProduct(externalProductId);\n\n return bundle_product;\n}\n\nexport async function resetCDNCache() {\n return Array.from(promiseCache.keys()).forEach(key => promiseCache.delete(key));\n}\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ async function getCharge(session, id, options) {
4
4
  const { charge } = await rechargeApiRequest(
5
5
  "get",
6
6
  `/charges`,
7
- { id, query: { include: options == null ? void 0 : options.include } },
7
+ { id, query: { include: options?.include } },
8
8
  session
9
9
  );
10
10
  return charge;
@@ -1 +1 @@
1
- {"version":3,"file":"charge.js","sources":["../../../src/api/charge.ts"],"sourcesContent":["import { RequestOptions } from '../types';\nimport { ChargeListParams, ChargeListResponse, ChargeResponse, GetChargeOptions } 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(session: Session, id: number | string, purchaseItemIds: (string | number)[]) {\n const { charge } = await rechargeApiRequest<ChargeResponse>(\n 'post',\n `/charges/${id}/skip`,\n {\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(session: Session, id: number | string, purchaseItemIds: (string | number)[]) {\n const { charge } = await rechargeApiRequest<ChargeResponse>(\n 'post',\n `/charges/${id}/unskip`,\n {\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":[],"mappings":";;AACO,eAAe,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;AACtD,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB;AAC7C,IAAI,KAAK;AACT,IAAI,CAAC,QAAQ,CAAC;AACd,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE;AAC1E,IAAI,OAAO;AACX,GAAG,CAAC;AACJ,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACM,SAAS,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE;AAC5C,EAAE,OAAO,kBAAkB,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AACM,eAAe,qBAAqB,CAAC,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE;AACvE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB;AAC7C,IAAI,MAAM;AACV,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC;AACnC,IAAI;AACJ,MAAM,IAAI,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE;AAC3C,KAAK;AACL,IAAI,OAAO;AACX,GAAG,CAAC;AACJ,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACM,eAAe,yBAAyB,CAAC,OAAO,EAAE,EAAE,EAAE;AAC7D,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AACrG,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACM,eAAe,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE;AAC/D,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB;AAC7C,IAAI,MAAM;AACV,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC;AACzB,IAAI;AACJ,MAAM,IAAI,EAAE;AACZ,QAAQ,iBAAiB,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC;AACpE,OAAO;AACP,KAAK;AACL,IAAI,OAAO;AACX,GAAG,CAAC;AACJ,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACM,eAAe,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE;AACjE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB;AAC7C,IAAI,MAAM;AACV,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC;AAC3B,IAAI;AACJ,MAAM,IAAI,EAAE;AACZ,QAAQ,iBAAiB,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC;AACpE,OAAO;AACP,KAAK;AACL,IAAI,OAAO;AACX,GAAG,CAAC;AACJ,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACM,eAAe,aAAa,CAAC,OAAO,EAAE,EAAE,EAAE;AACjD,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AAC7F,EAAE,OAAO,MAAM,CAAC;AAChB;;;;"}
1
+ {"version":3,"file":"charge.js","sources":["../../../src/api/charge.ts"],"sourcesContent":["import { RequestOptions } from '../types';\nimport { ChargeListParams, ChargeListResponse, ChargeResponse, GetChargeOptions } 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(session: Session, id: number | string, purchaseItemIds: (string | number)[]) {\n const { charge } = await rechargeApiRequest<ChargeResponse>(\n 'post',\n `/charges/${id}/skip`,\n {\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(session: Session, id: number | string, purchaseItemIds: (string | number)[]) {\n const { charge } = await rechargeApiRequest<ChargeResponse>(\n 'post',\n `/charges/${id}/unskip`,\n {\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":["id"],"mappings":";;AAMsB,eAAA,SAAA,CAAU,OAAkB,EAAA,EAAA,EAAqB,OAA4B,EAAA;AACjG,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,MAAM,kBAAA;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,OAAO,mBAAuC,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,MAAM,kBAAA;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,MAAM,kBAAA,CAAmC,MAAQ,EAAA,CAAA,SAAA,EAAY,EAAE,CAAA,gBAAA,CAAA,EAAoB,EAAC,EAAG,OAAO,CAAA,CAAA;AACjH,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAGsB,eAAA,UAAA,CAAW,OAAkB,EAAA,EAAA,EAAqB,eAAsC,EAAA;AAC5G,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,MAAM,kBAAA;AAAA,IACvB,MAAA;AAAA,IACA,YAAY,EAAE,CAAA,KAAA,CAAA;AAAA,IACd;AAAA,MACE,IAAM,EAAA;AAAA,QACJ,mBAAmB,eAAgB,CAAA,GAAA,CAAI,CAAAA,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,YAAA,CAAa,OAAkB,EAAA,EAAA,EAAqB,eAAsC,EAAA;AAC9G,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,MAAM,kBAAA;AAAA,IACvB,MAAA;AAAA,IACA,YAAY,EAAE,CAAA,OAAA,CAAA;AAAA,IACd;AAAA,MACE,IAAM,EAAA;AAAA,QACJ,mBAAmB,eAAgB,CAAA,GAAA,CAAI,CAAAA,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,MAAM,kBAAA,CAAmC,MAAQ,EAAA,CAAA,SAAA,EAAY,EAAE,CAAA,QAAA,CAAA,EAAY,EAAC,EAAG,OAAO,CAAA,CAAA;AACzG,EAAO,OAAA,MAAA,CAAA;AACT;;;;"}
@@ -1,24 +1,5 @@
1
1
  import { rechargeApiRequest } from '../utils/request.js';
2
2
 
3
- var __defProp = Object.defineProperty;
4
- var __defProps = Object.defineProperties;
5
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
- var __spreadValues = (a, b) => {
11
- for (var prop in b || (b = {}))
12
- if (__hasOwnProp.call(b, prop))
13
- __defNormalProp(a, prop, b[prop]);
14
- if (__getOwnPropSymbols)
15
- for (var prop of __getOwnPropSymbols(b)) {
16
- if (__propIsEnum.call(b, prop))
17
- __defNormalProp(a, prop, b[prop]);
18
- }
19
- return a;
20
- };
21
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
22
3
  async function getCustomer(session, options) {
23
4
  const id = session.customerId;
24
5
  if (!id) {
@@ -29,7 +10,7 @@ async function getCustomer(session, options) {
29
10
  `/customers`,
30
11
  {
31
12
  id,
32
- query: { include: options == null ? void 0 : options.include }
13
+ query: { include: options?.include }
33
14
  },
34
15
  session
35
16
  );
@@ -90,9 +71,10 @@ async function sendCustomerNotification(session, notification, options) {
90
71
  "post",
91
72
  `/customers/${customerId}/notifications`,
92
73
  {
93
- data: __spreadProps(__spreadValues({}, data), {
74
+ data: {
75
+ ...data,
94
76
  template_vars: options
95
- })
77
+ }
96
78
  },
97
79
  session
98
80
  );
@@ -106,7 +88,7 @@ async function getCreditSummary(session, options) {
106
88
  "get",
107
89
  `/customers/${id}/credit_summary`,
108
90
  {
109
- query: { include: options == null ? void 0 : options.include }
91
+ query: { include: options?.include }
110
92
  },
111
93
  session
112
94
  );
@@ -1 +1 @@
1
- {"version":3,"file":"customer.js","sources":["../../../src/api/customer.ts"],"sourcesContent":["import { Session } from '../types/session';\nimport {\n Customer,\n CustomerCreditSummary,\n CustomerDeliveryScheduleParams,\n CustomerDeliveryScheduleResponse,\n CustomerNotification,\n CustomerNotificationOptions,\n CustomerNotificationTemplate,\n CustomerNotificationType,\n CustomerPortalAccessResponse,\n Delivery,\n GetCreditSummaryOptions,\n GetCustomerOptions,\n UpdateCustomerRequest,\n} from '../types/customer';\nimport { rechargeApiRequest } from '../utils/request';\n\nexport async function getCustomer(session: Session, options?: GetCustomerOptions): Promise<Customer> {\n const id = session.customerId;\n if (!id) {\n throw new Error('Not logged in.');\n }\n const { customer } = await rechargeApiRequest<{ customer: Customer }>(\n 'get',\n `/customers`,\n {\n id,\n query: { include: options?.include },\n },\n session\n );\n return customer;\n}\n\nexport async function updateCustomer(session: Session, updateRequest: UpdateCustomerRequest): Promise<Customer> {\n const id = session.customerId;\n if (!id) {\n throw new Error('Not logged in.');\n }\n const { customer } = await rechargeApiRequest<{ customer: Customer }>(\n 'put',\n `/customers`,\n { id, data: updateRequest },\n session\n );\n return customer;\n}\n\nexport async function getDeliverySchedule(\n session: Session,\n query?: CustomerDeliveryScheduleParams\n): Promise<Delivery[]> {\n const id = session.customerId;\n if (!id) {\n throw new Error('Not logged in.');\n }\n const { deliveries } = await rechargeApiRequest<CustomerDeliveryScheduleResponse>(\n 'get',\n `/customers/${id}/delivery_schedule`,\n { query },\n session\n );\n return deliveries;\n}\n\nexport async function getCustomerPortalAccess(session: Session): Promise<CustomerPortalAccessResponse> {\n return rechargeApiRequest<CustomerPortalAccessResponse>('get', '/portal_access', {}, session);\n}\n\nexport async function getActiveChurnLandingPageURL(\n session: Session,\n subscriptionId: string | number,\n redirectURL: string\n): Promise<string> {\n const { base_url, customer_hash, temp_token } = await getCustomerPortalAccess(session);\n return `${base_url.replace(\n 'portal',\n 'pages'\n )}${customer_hash}/subscriptions/${subscriptionId}/cancel?token=${temp_token}&subscription=${subscriptionId}&redirect_to=${redirectURL}`;\n}\n\nconst customerNotificationMap: Record<\n CustomerNotification,\n { type: CustomerNotificationType; template_type: CustomerNotificationTemplate }\n> = {\n SHOPIFY_UPDATE_PAYMENT_INFO: {\n type: 'email',\n template_type: 'shopify_update_payment_information',\n },\n};\n\nexport async function sendCustomerNotification<T extends CustomerNotification>(\n session: Session,\n notification: CustomerNotification,\n options?: CustomerNotificationOptions<T>\n): Promise<void> {\n const customerId = session.customerId;\n if (!customerId) {\n throw new Error('Not logged in.');\n }\n const data = customerNotificationMap[notification];\n if (!data) {\n throw new Error('Notification not supported.');\n }\n return rechargeApiRequest<void>(\n 'post',\n `/customers/${customerId}/notifications`,\n {\n data: {\n ...data,\n template_vars: options,\n },\n },\n session\n );\n}\n\nexport async function getCreditSummary(\n session: Session,\n options?: GetCreditSummaryOptions\n): Promise<CustomerCreditSummary> {\n const id = session.customerId;\n if (!id) {\n throw new Error('Not logged in.');\n }\n const { credit_summary } = await rechargeApiRequest<{ credit_summary: CustomerCreditSummary }>(\n 'get',\n `/customers/${id}/credit_summary`,\n {\n query: { include: options?.include },\n },\n session\n );\n return credit_summary;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"customer.js","sources":["../../../src/api/customer.ts"],"sourcesContent":["import { Session } from '../types/session';\nimport {\n Customer,\n CustomerCreditSummary,\n CustomerDeliveryScheduleParams,\n CustomerDeliveryScheduleResponse,\n CustomerNotification,\n CustomerNotificationOptions,\n CustomerNotificationTemplate,\n CustomerNotificationType,\n CustomerPortalAccessResponse,\n Delivery,\n GetCreditSummaryOptions,\n GetCustomerOptions,\n UpdateCustomerRequest,\n} from '../types/customer';\nimport { rechargeApiRequest } from '../utils/request';\n\nexport async function getCustomer(session: Session, options?: GetCustomerOptions): Promise<Customer> {\n const id = session.customerId;\n if (!id) {\n throw new Error('Not logged in.');\n }\n const { customer } = await rechargeApiRequest<{ customer: Customer }>(\n 'get',\n `/customers`,\n {\n id,\n query: { include: options?.include },\n },\n session\n );\n return customer;\n}\n\nexport async function updateCustomer(session: Session, updateRequest: UpdateCustomerRequest): Promise<Customer> {\n const id = session.customerId;\n if (!id) {\n throw new Error('Not logged in.');\n }\n const { customer } = await rechargeApiRequest<{ customer: Customer }>(\n 'put',\n `/customers`,\n { id, data: updateRequest },\n session\n );\n return customer;\n}\n\nexport async function getDeliverySchedule(\n session: Session,\n query?: CustomerDeliveryScheduleParams\n): Promise<Delivery[]> {\n const id = session.customerId;\n if (!id) {\n throw new Error('Not logged in.');\n }\n const { deliveries } = await rechargeApiRequest<CustomerDeliveryScheduleResponse>(\n 'get',\n `/customers/${id}/delivery_schedule`,\n { query },\n session\n );\n return deliveries;\n}\n\nexport async function getCustomerPortalAccess(session: Session): Promise<CustomerPortalAccessResponse> {\n return rechargeApiRequest<CustomerPortalAccessResponse>('get', '/portal_access', {}, session);\n}\n\nexport async function getActiveChurnLandingPageURL(\n session: Session,\n subscriptionId: string | number,\n redirectURL: string\n): Promise<string> {\n const { base_url, customer_hash, temp_token } = await getCustomerPortalAccess(session);\n return `${base_url.replace(\n 'portal',\n 'pages'\n )}${customer_hash}/subscriptions/${subscriptionId}/cancel?token=${temp_token}&subscription=${subscriptionId}&redirect_to=${redirectURL}`;\n}\n\nconst customerNotificationMap: Record<\n CustomerNotification,\n { type: CustomerNotificationType; template_type: CustomerNotificationTemplate }\n> = {\n SHOPIFY_UPDATE_PAYMENT_INFO: {\n type: 'email',\n template_type: 'shopify_update_payment_information',\n },\n};\n\nexport async function sendCustomerNotification<T extends CustomerNotification>(\n session: Session,\n notification: CustomerNotification,\n options?: CustomerNotificationOptions<T>\n): Promise<void> {\n const customerId = session.customerId;\n if (!customerId) {\n throw new Error('Not logged in.');\n }\n const data = customerNotificationMap[notification];\n if (!data) {\n throw new Error('Notification not supported.');\n }\n return rechargeApiRequest<void>(\n 'post',\n `/customers/${customerId}/notifications`,\n {\n data: {\n ...data,\n template_vars: options,\n },\n },\n session\n );\n}\n\nexport async function getCreditSummary(\n session: Session,\n options?: GetCreditSummaryOptions\n): Promise<CustomerCreditSummary> {\n const id = session.customerId;\n if (!id) {\n throw new Error('Not logged in.');\n }\n const { credit_summary } = await rechargeApiRequest<{ credit_summary: CustomerCreditSummary }>(\n 'get',\n `/customers/${id}/credit_summary`,\n {\n query: { include: options?.include },\n },\n session\n );\n return credit_summary;\n}\n"],"names":[],"mappings":";;AAkBsB,eAAA,WAAA,CAAY,SAAkB,OAAiD,EAAA;AACnG,EAAA,MAAM,KAAK,OAAQ,CAAA,UAAA,CAAA;AACnB,EAAA,IAAI,CAAC,EAAI,EAAA;AACP,IAAM,MAAA,IAAI,MAAM,gBAAgB,CAAA,CAAA;AAAA,GAClC;AACA,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,MAAM,kBAAA;AAAA,IACzB,KAAA;AAAA,IACA,CAAA,UAAA,CAAA;AAAA,IACA;AAAA,MACE,EAAA;AAAA,MACA,KAAO,EAAA,EAAE,OAAS,EAAA,OAAA,EAAS,OAAQ,EAAA;AAAA,KACrC;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,QAAA,CAAA;AACT,CAAA;AAEsB,eAAA,cAAA,CAAe,SAAkB,aAAyD,EAAA;AAC9G,EAAA,MAAM,KAAK,OAAQ,CAAA,UAAA,CAAA;AACnB,EAAA,IAAI,CAAC,EAAI,EAAA;AACP,IAAM,MAAA,IAAI,MAAM,gBAAgB,CAAA,CAAA;AAAA,GAClC;AACA,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,MAAM,kBAAA;AAAA,IACzB,KAAA;AAAA,IACA,CAAA,UAAA,CAAA;AAAA,IACA,EAAE,EAAI,EAAA,IAAA,EAAM,aAAc,EAAA;AAAA,IAC1B,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,QAAA,CAAA;AACT,CAAA;AAEsB,eAAA,mBAAA,CACpB,SACA,KACqB,EAAA;AACrB,EAAA,MAAM,KAAK,OAAQ,CAAA,UAAA,CAAA;AACnB,EAAA,IAAI,CAAC,EAAI,EAAA;AACP,IAAM,MAAA,IAAI,MAAM,gBAAgB,CAAA,CAAA;AAAA,GAClC;AACA,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI,MAAM,kBAAA;AAAA,IAC3B,KAAA;AAAA,IACA,cAAc,EAAE,CAAA,kBAAA,CAAA;AAAA,IAChB,EAAE,KAAM,EAAA;AAAA,IACR,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,UAAA,CAAA;AACT,CAAA;AAEA,eAAsB,wBAAwB,OAAyD,EAAA;AACrG,EAAA,OAAO,kBAAiD,CAAA,KAAA,EAAO,gBAAkB,EAAA,IAAI,OAAO,CAAA,CAAA;AAC9F,CAAA;AAEsB,eAAA,4BAAA,CACpB,OACA,EAAA,cAAA,EACA,WACiB,EAAA;AACjB,EAAA,MAAM,EAAE,QAAU,EAAA,aAAA,EAAe,YAAe,GAAA,MAAM,wBAAwB,OAAO,CAAA,CAAA;AACrF,EAAA,OAAO,GAAG,QAAS,CAAA,OAAA;AAAA,IACjB,QAAA;AAAA,IACA,OAAA;AAAA,GACD,CAAG,EAAA,aAAa,CAAkB,eAAA,EAAA,cAAc,iBAAiB,UAAU,CAAA,cAAA,EAAiB,cAAc,CAAA,aAAA,EAAgB,WAAW,CAAA,CAAA,CAAA;AACxI,CAAA;AAEA,MAAM,uBAGF,GAAA;AAAA,EACF,2BAA6B,EAAA;AAAA,IAC3B,IAAM,EAAA,OAAA;AAAA,IACN,aAAe,EAAA,oCAAA;AAAA,GACjB;AACF,CAAA,CAAA;AAEsB,eAAA,wBAAA,CACpB,OACA,EAAA,YAAA,EACA,OACe,EAAA;AACf,EAAA,MAAM,aAAa,OAAQ,CAAA,UAAA,CAAA;AAC3B,EAAA,IAAI,CAAC,UAAY,EAAA;AACf,IAAM,MAAA,IAAI,MAAM,gBAAgB,CAAA,CAAA;AAAA,GAClC;AACA,EAAM,MAAA,IAAA,GAAO,wBAAwB,YAAY,CAAA,CAAA;AACjD,EAAA,IAAI,CAAC,IAAM,EAAA;AACT,IAAM,MAAA,IAAI,MAAM,6BAA6B,CAAA,CAAA;AAAA,GAC/C;AACA,EAAO,OAAA,kBAAA;AAAA,IACL,MAAA;AAAA,IACA,cAAc,UAAU,CAAA,cAAA,CAAA;AAAA,IACxB;AAAA,MACE,IAAM,EAAA;AAAA,QACJ,GAAG,IAAA;AAAA,QACH,aAAe,EAAA,OAAA;AAAA,OACjB;AAAA,KACF;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF,CAAA;AAEsB,eAAA,gBAAA,CACpB,SACA,OACgC,EAAA;AAChC,EAAA,MAAM,KAAK,OAAQ,CAAA,UAAA,CAAA;AACnB,EAAA,IAAI,CAAC,EAAI,EAAA;AACP,IAAM,MAAA,IAAI,MAAM,gBAAgB,CAAA,CAAA;AAAA,GAClC;AACA,EAAM,MAAA,EAAE,cAAe,EAAA,GAAI,MAAM,kBAAA;AAAA,IAC/B,KAAA;AAAA,IACA,cAAc,EAAE,CAAA,eAAA,CAAA;AAAA,IAChB;AAAA,MACE,KAAO,EAAA,EAAE,OAAS,EAAA,OAAA,EAAS,OAAQ,EAAA;AAAA,KACrC;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,cAAA,CAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"gift.js","sources":["../../../src/api/gift.ts"],"sourcesContent":["import { GiftPurchase, GiftPurchasesParams, GiftPurchasesResponse } from '../types/gift';\nimport { Session } from '../types/session';\nimport { rechargeApiRequest } from '../utils/request';\n\nexport function listGiftPurchases(session: Session, options?: GiftPurchasesParams): Promise<GiftPurchasesResponse> {\n if (!session.customerId) {\n throw new Error('Not logged in.');\n }\n return rechargeApiRequest<GiftPurchasesResponse>(\n 'get',\n `/gift_purchases`,\n {\n query: options,\n },\n session\n );\n}\n\nexport async function getGiftPurchase(session: Session, id: number): Promise<GiftPurchase> {\n if (!session.customerId) {\n throw new Error('Not logged in.');\n }\n const { gift_purchase } = await rechargeApiRequest<{ gift_purchase: GiftPurchase }>(\n 'get',\n `/gift_purchases`,\n {\n id,\n },\n session\n );\n return gift_purchase;\n}\n"],"names":[],"mappings":";;AACO,SAAS,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE;AACpD,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC3B,IAAI,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACtC,GAAG;AACH,EAAE,OAAO,kBAAkB;AAC3B,IAAI,KAAK;AACT,IAAI,CAAC,eAAe,CAAC;AACrB,IAAI;AACJ,MAAM,KAAK,EAAE,OAAO;AACpB,KAAK;AACL,IAAI,OAAO;AACX,GAAG,CAAC;AACJ,CAAC;AACM,eAAe,eAAe,CAAC,OAAO,EAAE,EAAE,EAAE;AACnD,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC3B,IAAI,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACtC,GAAG;AACH,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,kBAAkB;AACpD,IAAI,KAAK;AACT,IAAI,CAAC,eAAe,CAAC;AACrB,IAAI;AACJ,MAAM,EAAE;AACR,KAAK;AACL,IAAI,OAAO;AACX,GAAG,CAAC;AACJ,EAAE,OAAO,aAAa,CAAC;AACvB;;;;"}
1
+ {"version":3,"file":"gift.js","sources":["../../../src/api/gift.ts"],"sourcesContent":["import { GiftPurchase, GiftPurchasesParams, GiftPurchasesResponse } from '../types/gift';\nimport { Session } from '../types/session';\nimport { rechargeApiRequest } from '../utils/request';\n\nexport function listGiftPurchases(session: Session, options?: GiftPurchasesParams): Promise<GiftPurchasesResponse> {\n if (!session.customerId) {\n throw new Error('Not logged in.');\n }\n return rechargeApiRequest<GiftPurchasesResponse>(\n 'get',\n `/gift_purchases`,\n {\n query: options,\n },\n session\n );\n}\n\nexport async function getGiftPurchase(session: Session, id: number): Promise<GiftPurchase> {\n if (!session.customerId) {\n throw new Error('Not logged in.');\n }\n const { gift_purchase } = await rechargeApiRequest<{ gift_purchase: GiftPurchase }>(\n 'get',\n `/gift_purchases`,\n {\n id,\n },\n session\n );\n return gift_purchase;\n}\n"],"names":[],"mappings":";;AAIgB,SAAA,iBAAA,CAAkB,SAAkB,OAA+D,EAAA;AACjH,EAAI,IAAA,CAAC,QAAQ,UAAY,EAAA;AACvB,IAAM,MAAA,IAAI,MAAM,gBAAgB,CAAA,CAAA;AAAA,GAClC;AACA,EAAO,OAAA,kBAAA;AAAA,IACL,KAAA;AAAA,IACA,CAAA,eAAA,CAAA;AAAA,IACA;AAAA,MACE,KAAO,EAAA,OAAA;AAAA,KACT;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF,CAAA;AAEsB,eAAA,eAAA,CAAgB,SAAkB,EAAmC,EAAA;AACzF,EAAI,IAAA,CAAC,QAAQ,UAAY,EAAA;AACvB,IAAM,MAAA,IAAI,MAAM,gBAAgB,CAAA,CAAA;AAAA,GAClC;AACA,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,MAAM,kBAAA;AAAA,IAC9B,KAAA;AAAA,IACA,CAAA,eAAA,CAAA;AAAA,IACA;AAAA,MACE,EAAA;AAAA,KACF;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,aAAA,CAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"membership.js","sources":["../../../src/api/membership.ts"],"sourcesContent":["import {\n ActivateMembershipRequest,\n CancelMembershipRequest,\n ChangeMembershipRequest,\n MembershipListParams,\n MembershipListResponse,\n MembershipResponse,\n} from '../types/membership';\nimport { Session } from '../types/session';\nimport { rechargeApiRequest } from '../utils/request';\n\n/** @internal Retrieves membership information for passed in id */\nexport async function getMembership(session: Session, id: string | number) {\n const { membership } = await rechargeApiRequest<MembershipResponse>('get', `/memberships`, { id }, session);\n return membership;\n}\n\n/** @internal Retrieves a list of memberships */\nexport function listMemberships(session: Session, query?: MembershipListParams) {\n return rechargeApiRequest<MembershipListResponse>('get', `/memberships`, { query }, session);\n}\n\n/** @internal Cancels a membership */\nexport async function cancelMembership(session: Session, id: string | number, cancelRequest: CancelMembershipRequest) {\n const { membership } = await rechargeApiRequest<MembershipResponse>(\n 'post',\n `/memberships/${id}/cancel`,\n {\n data: cancelRequest,\n },\n session\n );\n return membership;\n}\n\n/** @internal Activates a membership */\nexport async function activateMembership(\n session: Session,\n id: string | number,\n activateRequest: ActivateMembershipRequest\n) {\n const { membership } = await rechargeApiRequest<MembershipResponse>(\n 'post',\n `/memberships/${id}/activate`,\n {\n data: activateRequest,\n },\n session\n );\n return membership;\n}\n\n/** @internal changes a membership program/product*/\nexport async function changeMembership(session: Session, id: string | number, changeRequest: ChangeMembershipRequest) {\n const { membership } = await rechargeApiRequest<MembershipResponse>(\n 'post',\n `/memberships/${id}/change`,\n {\n data: changeRequest,\n },\n session\n );\n return membership;\n}\n"],"names":[],"mappings":";;AACO,eAAe,aAAa,CAAC,OAAO,EAAE,EAAE,EAAE;AACjD,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AAC1F,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC;AACM,SAAS,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE;AAChD,EAAE,OAAO,kBAAkB,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AACM,eAAe,gBAAgB,CAAC,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE;AACnE,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,kBAAkB;AACjD,IAAI,MAAM;AACV,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,OAAO,CAAC;AAC/B,IAAI;AACJ,MAAM,IAAI,EAAE,aAAa;AACzB,KAAK;AACL,IAAI,OAAO;AACX,GAAG,CAAC;AACJ,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC;AACM,eAAe,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE;AACvE,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,kBAAkB;AACjD,IAAI,MAAM;AACV,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,SAAS,CAAC;AACjC,IAAI;AACJ,MAAM,IAAI,EAAE,eAAe;AAC3B,KAAK;AACL,IAAI,OAAO;AACX,GAAG,CAAC;AACJ,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC;AACM,eAAe,gBAAgB,CAAC,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE;AACnE,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,kBAAkB;AACjD,IAAI,MAAM;AACV,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,OAAO,CAAC;AAC/B,IAAI;AACJ,MAAM,IAAI,EAAE,aAAa;AACzB,KAAK;AACL,IAAI,OAAO;AACX,GAAG,CAAC;AACJ,EAAE,OAAO,UAAU,CAAC;AACpB;;;;"}
1
+ {"version":3,"file":"membership.js","sources":["../../../src/api/membership.ts"],"sourcesContent":["import {\n ActivateMembershipRequest,\n CancelMembershipRequest,\n ChangeMembershipRequest,\n MembershipListParams,\n MembershipListResponse,\n MembershipResponse,\n} from '../types/membership';\nimport { Session } from '../types/session';\nimport { rechargeApiRequest } from '../utils/request';\n\n/** @internal Retrieves membership information for passed in id */\nexport async function getMembership(session: Session, id: string | number) {\n const { membership } = await rechargeApiRequest<MembershipResponse>('get', `/memberships`, { id }, session);\n return membership;\n}\n\n/** @internal Retrieves a list of memberships */\nexport function listMemberships(session: Session, query?: MembershipListParams) {\n return rechargeApiRequest<MembershipListResponse>('get', `/memberships`, { query }, session);\n}\n\n/** @internal Cancels a membership */\nexport async function cancelMembership(session: Session, id: string | number, cancelRequest: CancelMembershipRequest) {\n const { membership } = await rechargeApiRequest<MembershipResponse>(\n 'post',\n `/memberships/${id}/cancel`,\n {\n data: cancelRequest,\n },\n session\n );\n return membership;\n}\n\n/** @internal Activates a membership */\nexport async function activateMembership(\n session: Session,\n id: string | number,\n activateRequest: ActivateMembershipRequest\n) {\n const { membership } = await rechargeApiRequest<MembershipResponse>(\n 'post',\n `/memberships/${id}/activate`,\n {\n data: activateRequest,\n },\n session\n );\n return membership;\n}\n\n/** @internal changes a membership program/product*/\nexport async function changeMembership(session: Session, id: string | number, changeRequest: ChangeMembershipRequest) {\n const { membership } = await rechargeApiRequest<MembershipResponse>(\n 'post',\n `/memberships/${id}/change`,\n {\n data: changeRequest,\n },\n session\n );\n return membership;\n}\n"],"names":[],"mappings":";;AAYsB,eAAA,aAAA,CAAc,SAAkB,EAAqB,EAAA;AACzE,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI,MAAM,kBAAA,CAAuC,OAAO,CAAgB,YAAA,CAAA,EAAA,EAAE,EAAG,EAAA,EAAG,OAAO,CAAA,CAAA;AAC1G,EAAO,OAAA,UAAA,CAAA;AACT,CAAA;AAGgB,SAAA,eAAA,CAAgB,SAAkB,KAA8B,EAAA;AAC9E,EAAA,OAAO,mBAA2C,KAAO,EAAA,CAAA,YAAA,CAAA,EAAgB,EAAE,KAAA,IAAS,OAAO,CAAA,CAAA;AAC7F,CAAA;AAGsB,eAAA,gBAAA,CAAiB,OAAkB,EAAA,EAAA,EAAqB,aAAwC,EAAA;AACpH,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI,MAAM,kBAAA;AAAA,IAC3B,MAAA;AAAA,IACA,gBAAgB,EAAE,CAAA,OAAA,CAAA;AAAA,IAClB;AAAA,MACE,IAAM,EAAA,aAAA;AAAA,KACR;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,UAAA,CAAA;AACT,CAAA;AAGsB,eAAA,kBAAA,CACpB,OACA,EAAA,EAAA,EACA,eACA,EAAA;AACA,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI,MAAM,kBAAA;AAAA,IAC3B,MAAA;AAAA,IACA,gBAAgB,EAAE,CAAA,SAAA,CAAA;AAAA,IAClB;AAAA,MACE,IAAM,EAAA,eAAA;AAAA,KACR;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,UAAA,CAAA;AACT,CAAA;AAGsB,eAAA,gBAAA,CAAiB,OAAkB,EAAA,EAAA,EAAqB,aAAwC,EAAA;AACpH,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI,MAAM,kBAAA;AAAA,IAC3B,MAAA;AAAA,IACA,gBAAgB,EAAE,CAAA,OAAA,CAAA;AAAA,IAClB;AAAA,MACE,IAAM,EAAA,aAAA;AAAA,KACR;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,UAAA,CAAA;AACT;;;;"}
@@ -4,7 +4,7 @@ async function getMembershipProgram(session, id, options) {
4
4
  const { membership_program } = await rechargeApiRequest(
5
5
  "get",
6
6
  `/membership_programs`,
7
- { id, query: { include: options == null ? void 0 : options.include } },
7
+ { id, query: { include: options?.include } },
8
8
  session
9
9
  );
10
10
  return membership_program;
@@ -1 +1 @@
1
- {"version":3,"file":"membershipProgram.js","sources":["../../../src/api/membershipProgram.ts"],"sourcesContent":["import {\n MembershipProgramListParams,\n MembershipProgramListResponse,\n MembershipProgramResponse,\n GetMembershipProgramOptions,\n} from '../types/membershipProgram';\nimport { Session } from '../types/session';\nimport { rechargeApiRequest } from '../utils/request';\n\n/** @internal Retrieves membership program information for passed in id */\nexport async function getMembershipProgram(\n session: Session,\n id: string | number,\n options?: GetMembershipProgramOptions\n) {\n const { membership_program } = await rechargeApiRequest<MembershipProgramResponse>(\n 'get',\n `/membership_programs`,\n { id, query: { include: options?.include } },\n session\n );\n return membership_program;\n}\n\n/** @internal Retrieves a list of memberships */\nexport function listMembershipPrograms(session: Session, query?: MembershipProgramListParams) {\n return rechargeApiRequest<MembershipProgramListResponse>('get', `/membership_programs`, { query }, session);\n}\n"],"names":[],"mappings":";;AACO,eAAe,oBAAoB,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;AACjE,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,kBAAkB;AACzD,IAAI,KAAK;AACT,IAAI,CAAC,oBAAoB,CAAC;AAC1B,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE;AAC1E,IAAI,OAAO;AACX,GAAG,CAAC;AACJ,EAAE,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AACM,SAAS,sBAAsB,CAAC,OAAO,EAAE,KAAK,EAAE;AACvD,EAAE,OAAO,kBAAkB,CAAC,KAAK,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;AAC/E;;;;"}
1
+ {"version":3,"file":"membershipProgram.js","sources":["../../../src/api/membershipProgram.ts"],"sourcesContent":["import {\n MembershipProgramListParams,\n MembershipProgramListResponse,\n MembershipProgramResponse,\n GetMembershipProgramOptions,\n} from '../types/membershipProgram';\nimport { Session } from '../types/session';\nimport { rechargeApiRequest } from '../utils/request';\n\n/** @internal Retrieves membership program information for passed in id */\nexport async function getMembershipProgram(\n session: Session,\n id: string | number,\n options?: GetMembershipProgramOptions\n) {\n const { membership_program } = await rechargeApiRequest<MembershipProgramResponse>(\n 'get',\n `/membership_programs`,\n { id, query: { include: options?.include } },\n session\n );\n return membership_program;\n}\n\n/** @internal Retrieves a list of memberships */\nexport function listMembershipPrograms(session: Session, query?: MembershipProgramListParams) {\n return rechargeApiRequest<MembershipProgramListResponse>('get', `/membership_programs`, { query }, session);\n}\n"],"names":[],"mappings":";;AAUsB,eAAA,oBAAA,CACpB,OACA,EAAA,EAAA,EACA,OACA,EAAA;AACA,EAAM,MAAA,EAAE,kBAAmB,EAAA,GAAI,MAAM,kBAAA;AAAA,IACnC,KAAA;AAAA,IACA,CAAA,oBAAA,CAAA;AAAA,IACA,EAAE,EAAI,EAAA,KAAA,EAAO,EAAE,OAAS,EAAA,OAAA,EAAS,SAAU,EAAA;AAAA,IAC3C,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,kBAAA,CAAA;AACT,CAAA;AAGgB,SAAA,sBAAA,CAAuB,SAAkB,KAAqC,EAAA;AAC5F,EAAA,OAAO,mBAAkD,KAAO,EAAA,CAAA,oBAAA,CAAA,EAAwB,EAAE,KAAA,IAAS,OAAO,CAAA,CAAA;AAC5G;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"metafield.js","sources":["../../../src/api/metafield.ts"],"sourcesContent":["import { CreateMetafieldRequest, Metafield, UpdateMetafieldRequest } from '../types/metafield';\nimport { Session } from '../types/session';\nimport { rechargeApiRequest } from '../utils/request';\n\nexport async function createMetafield(session: Session, createRequest: CreateMetafieldRequest): Promise<Metafield> {\n const { metafield } = await rechargeApiRequest<{ metafield: Metafield }>(\n 'post',\n `/metafields`,\n {\n data: { metafield: createRequest },\n },\n session\n );\n return metafield;\n}\n\nexport async function updateMetafield(\n session: Session,\n id: string | number,\n updateRequest: UpdateMetafieldRequest\n): Promise<Metafield> {\n const { metafield } = await rechargeApiRequest<{ metafield: Metafield }>(\n 'put',\n `/metafields`,\n {\n id,\n data: { metafield: updateRequest },\n },\n session\n );\n return metafield;\n}\n\nexport function deleteMetafield(session: Session, id: string | number): Promise<void> {\n return rechargeApiRequest<void>(\n 'delete',\n `/metafields`,\n {\n id,\n },\n session\n );\n}\n"],"names":[],"mappings":";;AACO,eAAe,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE;AAC9D,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,kBAAkB;AAChD,IAAI,MAAM;AACV,IAAI,CAAC,WAAW,CAAC;AACjB,IAAI;AACJ,MAAM,IAAI,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE;AACxC,KAAK;AACL,IAAI,OAAO;AACX,GAAG,CAAC;AACJ,EAAE,OAAO,SAAS,CAAC;AACnB,CAAC;AACM,eAAe,eAAe,CAAC,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE;AAClE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,kBAAkB;AAChD,IAAI,KAAK;AACT,IAAI,CAAC,WAAW,CAAC;AACjB,IAAI;AACJ,MAAM,EAAE;AACR,MAAM,IAAI,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE;AACxC,KAAK;AACL,IAAI,OAAO;AACX,GAAG,CAAC;AACJ,EAAE,OAAO,SAAS,CAAC;AACnB,CAAC;AACM,SAAS,eAAe,CAAC,OAAO,EAAE,EAAE,EAAE;AAC7C,EAAE,OAAO,kBAAkB;AAC3B,IAAI,QAAQ;AACZ,IAAI,CAAC,WAAW,CAAC;AACjB,IAAI;AACJ,MAAM,EAAE;AACR,KAAK;AACL,IAAI,OAAO;AACX,GAAG,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"metafield.js","sources":["../../../src/api/metafield.ts"],"sourcesContent":["import { CreateMetafieldRequest, Metafield, UpdateMetafieldRequest } from '../types/metafield';\nimport { Session } from '../types/session';\nimport { rechargeApiRequest } from '../utils/request';\n\nexport async function createMetafield(session: Session, createRequest: CreateMetafieldRequest): Promise<Metafield> {\n const { metafield } = await rechargeApiRequest<{ metafield: Metafield }>(\n 'post',\n `/metafields`,\n {\n data: { metafield: createRequest },\n },\n session\n );\n return metafield;\n}\n\nexport async function updateMetafield(\n session: Session,\n id: string | number,\n updateRequest: UpdateMetafieldRequest\n): Promise<Metafield> {\n const { metafield } = await rechargeApiRequest<{ metafield: Metafield }>(\n 'put',\n `/metafields`,\n {\n id,\n data: { metafield: updateRequest },\n },\n session\n );\n return metafield;\n}\n\nexport function deleteMetafield(session: Session, id: string | number): Promise<void> {\n return rechargeApiRequest<void>(\n 'delete',\n `/metafields`,\n {\n id,\n },\n session\n );\n}\n"],"names":[],"mappings":";;AAIsB,eAAA,eAAA,CAAgB,SAAkB,aAA2D,EAAA;AACjH,EAAM,MAAA,EAAE,SAAU,EAAA,GAAI,MAAM,kBAAA;AAAA,IAC1B,MAAA;AAAA,IACA,CAAA,WAAA,CAAA;AAAA,IACA;AAAA,MACE,IAAA,EAAM,EAAE,SAAA,EAAW,aAAc,EAAA;AAAA,KACnC;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,SAAA,CAAA;AACT,CAAA;AAEsB,eAAA,eAAA,CACpB,OACA,EAAA,EAAA,EACA,aACoB,EAAA;AACpB,EAAM,MAAA,EAAE,SAAU,EAAA,GAAI,MAAM,kBAAA;AAAA,IAC1B,KAAA;AAAA,IACA,CAAA,WAAA,CAAA;AAAA,IACA;AAAA,MACE,EAAA;AAAA,MACA,IAAA,EAAM,EAAE,SAAA,EAAW,aAAc,EAAA;AAAA,KACnC;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,SAAA,CAAA;AACT,CAAA;AAEgB,SAAA,eAAA,CAAgB,SAAkB,EAAoC,EAAA;AACpF,EAAO,OAAA,kBAAA;AAAA,IACL,QAAA;AAAA,IACA,CAAA,WAAA,CAAA;AAAA,IACA;AAAA,MACE,EAAA;AAAA,KACF;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF;;;;"}