@rechargeapps/storefront-client 0.6.2 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/cjs/api/address.js +16 -16
  2. package/dist/cjs/api/address.js.map +1 -1
  3. package/dist/cjs/api/auth.js +22 -14
  4. package/dist/cjs/api/auth.js.map +1 -1
  5. package/dist/cjs/api/bundle.js +4 -4
  6. package/dist/cjs/api/bundle.js.map +1 -1
  7. package/dist/cjs/api/cdn.js +17 -15
  8. package/dist/cjs/api/cdn.js.map +1 -1
  9. package/dist/cjs/api/charge.js +15 -25
  10. package/dist/cjs/api/charge.js.map +1 -1
  11. package/dist/cjs/api/{user.js → customer.js} +15 -19
  12. package/dist/cjs/api/customer.js.map +1 -0
  13. package/dist/cjs/api/memberships.js +31 -0
  14. package/dist/cjs/api/memberships.js.map +1 -0
  15. package/dist/cjs/api/onetime.js +17 -17
  16. package/dist/cjs/api/onetime.js.map +1 -1
  17. package/dist/cjs/api/order.js +6 -6
  18. package/dist/cjs/api/order.js.map +1 -1
  19. package/dist/cjs/api/subscription.js +27 -27
  20. package/dist/cjs/api/subscription.js.map +1 -1
  21. package/dist/cjs/constants/api.js +2 -0
  22. package/dist/cjs/constants/api.js.map +1 -1
  23. package/dist/cjs/index.js +11 -8
  24. package/dist/cjs/index.js.map +1 -1
  25. package/dist/cjs/utils/init.js +1 -2
  26. package/dist/cjs/utils/init.js.map +1 -1
  27. package/dist/cjs/utils/options.js +1 -2
  28. package/dist/cjs/utils/options.js.map +1 -1
  29. package/dist/cjs/utils/request.js +2 -7
  30. package/dist/cjs/utils/request.js.map +1 -1
  31. package/dist/esm/api/address.js +16 -16
  32. package/dist/esm/api/address.js.map +1 -1
  33. package/dist/esm/api/auth.js +22 -14
  34. package/dist/esm/api/auth.js.map +1 -1
  35. package/dist/esm/api/bundle.js +4 -4
  36. package/dist/esm/api/bundle.js.map +1 -1
  37. package/dist/esm/api/cdn.js +17 -15
  38. package/dist/esm/api/cdn.js.map +1 -1
  39. package/dist/esm/api/charge.js +16 -24
  40. package/dist/esm/api/charge.js.map +1 -1
  41. package/dist/esm/api/customer.js +31 -0
  42. package/dist/esm/api/customer.js.map +1 -0
  43. package/dist/esm/api/memberships.js +24 -0
  44. package/dist/esm/api/memberships.js.map +1 -0
  45. package/dist/esm/api/onetime.js +17 -17
  46. package/dist/esm/api/onetime.js.map +1 -1
  47. package/dist/esm/api/order.js +6 -6
  48. package/dist/esm/api/order.js.map +1 -1
  49. package/dist/esm/api/subscription.js +27 -27
  50. package/dist/esm/api/subscription.js.map +1 -1
  51. package/dist/esm/constants/api.js +2 -1
  52. package/dist/esm/constants/api.js.map +1 -1
  53. package/dist/esm/index.js +4 -3
  54. package/dist/esm/index.js.map +1 -1
  55. package/dist/esm/utils/init.js +1 -2
  56. package/dist/esm/utils/init.js.map +1 -1
  57. package/dist/esm/utils/options.js +1 -2
  58. package/dist/esm/utils/options.js.map +1 -1
  59. package/dist/esm/utils/request.js +2 -7
  60. package/dist/esm/utils/request.js.map +1 -1
  61. package/dist/index.d.ts +110 -63
  62. package/dist/umd/recharge-storefront-client.min.js +11 -11
  63. package/dist/umd/recharge-storefront-client.min.js.map +1 -1
  64. package/package.json +2 -6
  65. package/dist/cjs/api/user.js.map +0 -1
  66. package/dist/cjs/utils/session.js +0 -34
  67. package/dist/cjs/utils/session.js.map +0 -1
  68. package/dist/esm/api/user.js +0 -35
  69. package/dist/esm/api/user.js.map +0 -1
  70. package/dist/esm/utils/session.js +0 -24
  71. package/dist/esm/utils/session.js.map +0 -1
@@ -1,42 +1,34 @@
1
1
  import { rechargeApiRequest } from '../utils/request.js';
2
2
 
3
- async function getCharge(id) {
4
- const { charge } = await rechargeApiRequest("get", `/charges`, { id });
3
+ async function getCharge(session, id) {
4
+ const { charge } = await rechargeApiRequest("get", `/charges`, { id }, session);
5
5
  return charge;
6
6
  }
7
- function listCharges(query) {
8
- return rechargeApiRequest("get", `/charges`, { query });
7
+ function listCharges(session, query) {
8
+ return rechargeApiRequest("get", `/charges`, { query }, session);
9
9
  }
10
- async function applyDiscount(id, request) {
10
+ async function applyDiscount(session, id, applyRequest) {
11
11
  const { charge } = await rechargeApiRequest("post", `/charges/${id}/apply_discount`, {
12
- data: request
13
- });
12
+ data: applyRequest
13
+ }, session);
14
14
  return charge;
15
15
  }
16
- async function removeDiscount(id) {
17
- const { charge } = await rechargeApiRequest("post", `/charges/${id}/remove_discount`);
16
+ async function removeDiscount(session, id) {
17
+ const { charge } = await rechargeApiRequest("post", `/charges/${id}/remove_discount`, {}, session);
18
18
  return charge;
19
19
  }
20
- async function skipCharge(id) {
21
- const { charge } = await rechargeApiRequest("post", `/charges/${id}/skip`);
20
+ async function skipCharge(session, id) {
21
+ const { charge } = await rechargeApiRequest("post", `/charges/${id}/skip`, {}, session);
22
22
  return charge;
23
23
  }
24
- async function unskipCharge(id) {
25
- const { charge } = await rechargeApiRequest("post", `/charges/${id}/unskip`);
24
+ async function unskipCharge(session, id) {
25
+ const { charge } = await rechargeApiRequest("post", `/charges/${id}/unskip`, {}, session);
26
26
  return charge;
27
27
  }
28
- async function refundCharge(id, request) {
29
- const { charge } = await rechargeApiRequest("post", `/charges/${id}/refund`, { data: request });
30
- return charge;
31
- }
32
- async function processCharge(id) {
33
- const { charge } = await rechargeApiRequest("post", `/charges/${id}/process`);
34
- return charge;
35
- }
36
- async function captureCharge(id) {
37
- const { charge } = await rechargeApiRequest("post", `/charges/${id}/capture_payment`);
28
+ async function processCharge(session, id) {
29
+ const { charge } = await rechargeApiRequest("post", `/charges/${id}/process`, {}, session);
38
30
  return charge;
39
31
  }
40
32
 
41
- export { applyDiscount, captureCharge, getCharge, listCharges, processCharge, refundCharge, removeDiscount, skipCharge, unskipCharge };
33
+ export { applyDiscount, getCharge, listCharges, processCharge, removeDiscount, skipCharge, unskipCharge };
42
34
  //# sourceMappingURL=charge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"charge.js","sources":["../../../src/api/charge.ts"],"sourcesContent":["import {\n ApplyDiscountRequest,\n ChargeListParams,\n ChargeListResponse,\n ChargeResponse,\n RefundChargeRequest,\n} from '../types/charge';\nimport { rechargeApiRequest } from '../utils/request';\n\n/* Retrieve a Charge using the charge_id. */\nexport async function getCharge(id: number | string) {\n const { charge } = await rechargeApiRequest<ChargeResponse>('get', `/charges`, { id });\n return charge;\n}\n\n/** Lists charges */\nexport function listCharges(query?: ChargeListParams) {\n return rechargeApiRequest<ChargeListResponse>('get', `/charges`, { query });\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 * You can provide either discount_id or discount_code. If both parameters are passed, the value for discount_id will take precedence.\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 applyDiscount(id: number | string, request: ApplyDiscountRequest) {\n const { charge } = await rechargeApiRequest<ChargeResponse>('post', `/charges/${id}/apply_discount`, {\n data: request,\n });\n return charge;\n}\n\n/**\n * Remove a Discount 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 removeDiscount(id: number | string) {\n const { charge } = await rechargeApiRequest<ChargeResponse>('post', `/charges/${id}/remove_discount`);\n return charge;\n}\n\n/* Skip a Charge. */\nexport async function skipCharge(id: number | string) {\n const { charge } = await rechargeApiRequest<ChargeResponse>('post', `/charges/${id}/skip`);\n return charge;\n}\n\n/* Unskip a Charge. */\nexport async function unskipCharge(id: number | string) {\n const { charge } = await rechargeApiRequest<ChargeResponse>('post', `/charges/${id}/unskip`);\n return charge;\n}\n\n/*\n * Refund a Charge.\n * After the POST request, that particular Charge will have status parameter updated to refunded or partially_refunded depending on the value of the amount parameter.\n */\nexport async function refundCharge(id: number | string, request: RefundChargeRequest) {\n const { charge } = await rechargeApiRequest<ChargeResponse>('post', `/charges/${id}/refund`, { data: request });\n return charge;\n}\n\n/** The charge processing route can be used to process Charges that are in a queued or error status. */\nexport async function processCharge(id: number | string) {\n const { charge } = await rechargeApiRequest<ChargeResponse>('post', `/charges/${id}/process`);\n return charge;\n}\n\n/**\n * If you are leveraging the authorize/capture workflow with Recharge, the charge/{id}/capture_payment endpoint is how to capture the funds of a previously authorized Charge.\n */\nexport async function captureCharge(id: number | string) {\n const { charge } = await rechargeApiRequest<ChargeResponse>('post', `/charges/${id}/capture_payment`);\n return charge;\n}\n"],"names":[],"mappings":";;AACO,eAAe,SAAS,CAAC,EAAE,EAAE;AACpC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACzE,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACM,SAAS,WAAW,CAAC,KAAK,EAAE;AACnC,EAAE,OAAO,kBAAkB,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1D,CAAC;AACM,eAAe,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE;AACjD,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE;AACvF,IAAI,IAAI,EAAE,OAAO;AACjB,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACM,eAAe,cAAc,CAAC,EAAE,EAAE;AACzC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACxF,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACM,eAAe,UAAU,CAAC,EAAE,EAAE;AACrC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7E,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACM,eAAe,YAAY,CAAC,EAAE,EAAE;AACvC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/E,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACM,eAAe,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE;AAChD,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAClG,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACM,eAAe,aAAa,CAAC,EAAE,EAAE;AACxC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChF,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACM,eAAe,aAAa,CAAC,EAAE,EAAE;AACxC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACxF,EAAE,OAAO,MAAM,CAAC;AAChB;;;;"}
1
+ {"version":3,"file":"charge.js","sources":["../../../src/api/charge.ts"],"sourcesContent":["import { ApplyDiscountRequest, ChargeListParams, ChargeListResponse, ChargeResponse } 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) {\n const { charge } = await rechargeApiRequest<ChargeResponse>('get', `/charges`, { id }, session);\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 * You can provide either discount_id or discount_code. If both parameters are passed, the value for discount_id will take precedence.\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 applyDiscount(session: Session, id: number | string, applyRequest: ApplyDiscountRequest) {\n const { charge } = await rechargeApiRequest<ChargeResponse>(\n 'post',\n `/charges/${id}/apply_discount`,\n {\n data: applyRequest,\n },\n session\n );\n return charge;\n}\n\n/**\n * Remove a Discount 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 removeDiscount(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) {\n const { charge } = await rechargeApiRequest<ChargeResponse>('post', `/charges/${id}/skip`, {}, session);\n return charge;\n}\n\n/* Unskip a Charge. */\nexport async function unskipCharge(session: Session, id: number | string) {\n const { charge } = await rechargeApiRequest<ChargeResponse>('post', `/charges/${id}/unskip`, {}, session);\n return charge;\n}\n\n/** The charge processing route can be used to process Charges that are in a queued or error status. */\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;AAC7C,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AAClF,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,aAAa,CAAC,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE;AAC/D,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE;AACvF,IAAI,IAAI,EAAE,YAAY;AACtB,GAAG,EAAE,OAAO,CAAC,CAAC;AACd,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACM,eAAe,cAAc,CAAC,OAAO,EAAE,EAAE,EAAE;AAClD,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;AAC9C,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AAC1F,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACM,eAAe,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE;AAChD,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5F,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;;;;"}
@@ -0,0 +1,31 @@
1
+ import { rechargeApiRequest } from '../utils/request.js';
2
+
3
+ async function getCustomer(session) {
4
+ const id = session.customerId;
5
+ if (!id) {
6
+ throw new Error("Not logged in.");
7
+ }
8
+ const { customer } = await rechargeApiRequest("get", `/customers`, {
9
+ id
10
+ }, session);
11
+ return customer;
12
+ }
13
+ async function updateCustomer(session, updateRequest) {
14
+ const id = session.customerId;
15
+ if (!id) {
16
+ throw new Error("Not logged in.");
17
+ }
18
+ const { customer } = await rechargeApiRequest("put", `/customers`, { id, data: updateRequest }, session);
19
+ return customer;
20
+ }
21
+ async function getDeliverySchedule(session, query) {
22
+ const id = session.customerId;
23
+ if (!id) {
24
+ throw new Error("Not logged in.");
25
+ }
26
+ const { deliveries } = await rechargeApiRequest("get", `/customers/${id}/delivery_schedule`, { query }, session);
27
+ return deliveries;
28
+ }
29
+
30
+ export { getCustomer, getDeliverySchedule, updateCustomer };
31
+ //# sourceMappingURL=customer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customer.js","sources":["../../../src/api/customer.ts"],"sourcesContent":["import { Session } from '../types/session';\nimport {\n Customer,\n CustomerDeliveryScheduleParams,\n CustomerDeliveryScheduleResponse,\n Delivery,\n UpdateCustomerRequest,\n} from '../types/customer';\nimport { rechargeApiRequest } from '../utils/request';\n\nexport async function getCustomer(session: Session): 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 },\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"],"names":[],"mappings":";;AACO,eAAe,WAAW,CAAC,OAAO,EAAE;AAC3C,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;AAChC,EAAE,IAAI,CAAC,EAAE,EAAE;AACX,IAAI,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACtC,GAAG;AACH,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE;AACrE,IAAI,EAAE;AACN,GAAG,EAAE,OAAO,CAAC,CAAC;AACd,EAAE,OAAO,QAAQ,CAAC;AAClB,CAAC;AACM,eAAe,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE;AAC7D,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;AAChC,EAAE,IAAI,CAAC,EAAE,EAAE;AACX,IAAI,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACtC,GAAG;AACH,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC;AAC3G,EAAE,OAAO,QAAQ,CAAC;AAClB,CAAC;AACM,eAAe,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE;AAC1D,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;AAChC,EAAE,IAAI,CAAC,EAAE,EAAE;AACX,IAAI,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACtC,GAAG;AACH,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;AACnH,EAAE,OAAO,UAAU,CAAC;AACpB;;;;"}
@@ -0,0 +1,24 @@
1
+ import { rechargeApiRequest } from '../utils/request.js';
2
+
3
+ async function getMembership(session, id) {
4
+ const { membership } = await rechargeApiRequest("get", `/memberships`, { id }, session);
5
+ return membership;
6
+ }
7
+ function listMemberships(session, query) {
8
+ return rechargeApiRequest("get", `/memberships`, { query }, session);
9
+ }
10
+ async function cancelMembership(session, id, cancelRequest) {
11
+ const { membership } = await rechargeApiRequest("post", `/memberships/${id}/cancel`, {
12
+ data: cancelRequest
13
+ }, session);
14
+ return membership;
15
+ }
16
+ async function activateMembership(session, id, activateRequest) {
17
+ const { membership } = await rechargeApiRequest("post", `/memberships/${id}/activate`, {
18
+ data: activateRequest
19
+ }, session);
20
+ return membership;
21
+ }
22
+
23
+ export { activateMembership, cancelMembership, getMembership, listMemberships };
24
+ //# sourceMappingURL=memberships.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memberships.js","sources":["../../../src/api/memberships.ts"],"sourcesContent":["import {\n ActivateMembershipRequest,\n CancelMembershipRequest,\n MembershipListParams,\n MembershipListResponse,\n MembershipResponse,\n} from '../types/memberships';\nimport { Session } from '../types/session';\nimport { rechargeApiRequest } from '../utils/request';\n\n/** 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/** Retrieves a list of memberships */\nexport function listMemberships(session: Session, query?: MembershipListParams) {\n return rechargeApiRequest<MembershipListResponse>('get', `/memberships`, { query }, session);\n}\n\n/** 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/** 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"],"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,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE;AACvF,IAAI,IAAI,EAAE,aAAa;AACvB,GAAG,EAAE,OAAO,CAAC,CAAC;AACd,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,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE;AACzF,IAAI,IAAI,EAAE,eAAe;AACzB,GAAG,EAAE,OAAO,CAAC,CAAC;AACd,EAAE,OAAO,UAAU,CAAC;AACpB;;;;"}
@@ -1,32 +1,32 @@
1
1
  import { rechargeApiRequest } from '../utils/request.js';
2
2
 
3
- const getOnetime = async (id) => {
3
+ async function getOnetime(session, id) {
4
4
  const { onetime } = await rechargeApiRequest("get", `/onetimes`, {
5
5
  id
6
- });
6
+ }, session);
7
7
  return onetime;
8
- };
9
- const listOnetimes = (query) => {
10
- return rechargeApiRequest("get", `/onetimes`, { query });
11
- };
12
- const createOnetime = async (data) => {
8
+ }
9
+ function listOnetimes(session, query) {
10
+ return rechargeApiRequest("get", `/onetimes`, { query }, session);
11
+ }
12
+ async function createOnetime(session, createRequest) {
13
13
  const { onetime } = await rechargeApiRequest("post", `/onetimes`, {
14
- data
15
- });
14
+ data: createRequest
15
+ }, session);
16
16
  return onetime;
17
- };
18
- const updateOnetime = async (id, data) => {
17
+ }
18
+ async function updateOnetime(session, id, updateRequest) {
19
19
  const { onetime } = await rechargeApiRequest("put", `/onetimes`, {
20
20
  id,
21
- data
22
- });
21
+ data: updateRequest
22
+ }, session);
23
23
  return onetime;
24
- };
25
- const deleteOnetime = (id) => {
24
+ }
25
+ function deleteOnetime(session, id) {
26
26
  return rechargeApiRequest("delete", `/onetime`, {
27
27
  id
28
- });
29
- };
28
+ }, session);
29
+ }
30
30
 
31
31
  export { createOnetime, deleteOnetime, getOnetime, listOnetimes, updateOnetime };
32
32
  //# sourceMappingURL=onetime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"onetime.js","sources":["../../../src/api/onetime.ts"],"sourcesContent":["import {\n CreateOnetimeRequest,\n Onetime,\n OnetimeListParams,\n OnetimesResponse,\n UpdateOnetimeRequest,\n} from '../types/onetime';\nimport { rechargeApiRequest } from '../utils/request';\n\nexport const getOnetime = async (id: string | number): Promise<Onetime> => {\n const { onetime } = await rechargeApiRequest<{ onetime: Onetime }>('get', `/onetimes`, {\n id,\n });\n return onetime;\n};\n\nexport const listOnetimes = (query?: OnetimeListParams): Promise<OnetimesResponse> => {\n return rechargeApiRequest<OnetimesResponse>('get', `/onetimes`, { query });\n};\n\nexport const createOnetime = async (data: CreateOnetimeRequest): Promise<Onetime> => {\n const { onetime } = await rechargeApiRequest<{ onetime: Onetime }>('post', `/onetimes`, {\n data,\n });\n return onetime;\n};\n\nexport const updateOnetime = async (id: string | number, data: UpdateOnetimeRequest): Promise<Onetime> => {\n const { onetime } = await rechargeApiRequest<{ onetime: Onetime }>('put', `/onetimes`, {\n id,\n data,\n });\n return onetime;\n};\n\nexport const deleteOnetime = (id: string | number): Promise<void> => {\n return rechargeApiRequest<void>('delete', `/onetime`, {\n id,\n });\n};\n"],"names":[],"mappings":";;AACY,MAAC,UAAU,GAAG,OAAO,EAAE,KAAK;AACxC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE;AACnE,IAAI,EAAE;AACN,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,OAAO,CAAC;AACjB,EAAE;AACU,MAAC,YAAY,GAAG,CAAC,KAAK,KAAK;AACvC,EAAE,OAAO,kBAAkB,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3D,EAAE;AACU,MAAC,aAAa,GAAG,OAAO,IAAI,KAAK;AAC7C,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE;AACpE,IAAI,IAAI;AACR,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,OAAO,CAAC;AACjB,EAAE;AACU,MAAC,aAAa,GAAG,OAAO,EAAE,EAAE,IAAI,KAAK;AACjD,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE;AACnE,IAAI,EAAE;AACN,IAAI,IAAI;AACR,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,OAAO,CAAC;AACjB,EAAE;AACU,MAAC,aAAa,GAAG,CAAC,EAAE,KAAK;AACrC,EAAE,OAAO,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE;AAClD,IAAI,EAAE;AACN,GAAG,CAAC,CAAC;AACL;;;;"}
1
+ {"version":3,"file":"onetime.js","sources":["../../../src/api/onetime.ts"],"sourcesContent":["import {\n CreateOnetimeRequest,\n Onetime,\n OnetimeListParams,\n OnetimesResponse,\n UpdateOnetimeRequest,\n} from '../types/onetime';\nimport { Session } from '../types/session';\nimport { rechargeApiRequest } from '../utils/request';\n\nexport async function getOnetime(session: Session, id: string | number): Promise<Onetime> {\n const { onetime } = await rechargeApiRequest<{ onetime: Onetime }>(\n 'get',\n `/onetimes`,\n {\n id,\n },\n session\n );\n return onetime;\n}\n\nexport function listOnetimes(session: Session, query?: OnetimeListParams): Promise<OnetimesResponse> {\n return rechargeApiRequest<OnetimesResponse>('get', `/onetimes`, { query }, session);\n}\n\nexport async function createOnetime(session: Session, createRequest: CreateOnetimeRequest): Promise<Onetime> {\n const { onetime } = await rechargeApiRequest<{ onetime: Onetime }>(\n 'post',\n `/onetimes`,\n {\n data: createRequest,\n },\n session\n );\n return onetime;\n}\n\nexport async function updateOnetime(\n session: Session,\n id: string | number,\n updateRequest: UpdateOnetimeRequest\n): Promise<Onetime> {\n const { onetime } = await rechargeApiRequest<{ onetime: Onetime }>(\n 'put',\n `/onetimes`,\n {\n id,\n data: updateRequest,\n },\n session\n );\n return onetime;\n}\n\nexport function deleteOnetime(session: Session, id: string | number): Promise<void> {\n return rechargeApiRequest<void>(\n 'delete',\n `/onetime`,\n {\n id,\n },\n session\n );\n}\n"],"names":[],"mappings":";;AACO,eAAe,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE;AAC9C,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE;AACnE,IAAI,EAAE;AACN,GAAG,EAAE,OAAO,CAAC,CAAC;AACd,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC;AACM,SAAS,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE;AAC7C,EAAE,OAAO,kBAAkB,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC;AACM,eAAe,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE;AAC5D,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE;AACpE,IAAI,IAAI,EAAE,aAAa;AACvB,GAAG,EAAE,OAAO,CAAC,CAAC;AACd,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC;AACM,eAAe,aAAa,CAAC,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE;AAChE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE;AACnE,IAAI,EAAE;AACN,IAAI,IAAI,EAAE,aAAa;AACvB,GAAG,EAAE,OAAO,CAAC,CAAC;AACd,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC;AACM,SAAS,aAAa,CAAC,OAAO,EAAE,EAAE,EAAE;AAC3C,EAAE,OAAO,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE;AAClD,IAAI,EAAE;AACN,GAAG,EAAE,OAAO,CAAC,CAAC;AACd;;;;"}
@@ -1,14 +1,14 @@
1
1
  import { rechargeApiRequest } from '../utils/request.js';
2
2
 
3
- const getOrder = async (id) => {
3
+ async function getOrder(session, id) {
4
4
  const { order } = await rechargeApiRequest("get", `/orders`, {
5
5
  id
6
- });
6
+ }, session);
7
7
  return order;
8
- };
9
- const listOrders = (query) => {
10
- return rechargeApiRequest("get", `/orders`, { query });
11
- };
8
+ }
9
+ function listOrders(session, query) {
10
+ return rechargeApiRequest("get", `/orders`, { query }, session);
11
+ }
12
12
 
13
13
  export { getOrder, listOrders };
14
14
  //# sourceMappingURL=order.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"order.js","sources":["../../../src/api/order.ts"],"sourcesContent":["import { Order, OrderListParams, OrdersResponse } from '../types/order';\nimport { rechargeApiRequest } from '../utils/request';\n\nexport const getOrder = async (id: string | number): Promise<Order> => {\n const { order } = await rechargeApiRequest<{ order: Order }>('get', `/orders`, {\n id,\n });\n return order;\n};\n\nexport const listOrders = (query?: OrderListParams): Promise<OrdersResponse> => {\n return rechargeApiRequest<OrdersResponse>('get', `/orders`, { query });\n};\n"],"names":[],"mappings":";;AACY,MAAC,QAAQ,GAAG,OAAO,EAAE,KAAK;AACtC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE;AAC/D,IAAI,EAAE;AACN,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,KAAK,CAAC;AACf,EAAE;AACU,MAAC,UAAU,GAAG,CAAC,KAAK,KAAK;AACrC,EAAE,OAAO,kBAAkB,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AACzD;;;;"}
1
+ {"version":3,"file":"order.js","sources":["../../../src/api/order.ts"],"sourcesContent":["import { Order, OrderListParams, OrdersResponse } from '../types/order';\nimport { Session } from '../types/session';\nimport { rechargeApiRequest } from '../utils/request';\n\nexport async function getOrder(session: Session, id: string | number): Promise<Order> {\n const { order } = await rechargeApiRequest<{ order: Order }>(\n 'get',\n `/orders`,\n {\n id,\n },\n session\n );\n return order;\n}\n\nexport function listOrders(session: Session, query?: OrderListParams): Promise<OrdersResponse> {\n return rechargeApiRequest<OrdersResponse>('get', `/orders`, { query }, session);\n}\n"],"names":[],"mappings":";;AACO,eAAe,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE;AAC5C,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE;AAC/D,IAAI,EAAE;AACN,GAAG,EAAE,OAAO,CAAC,CAAC;AACd,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACM,SAAS,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE;AAC3C,EAAE,OAAO,kBAAkB,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;AAClE;;;;"}
@@ -1,50 +1,50 @@
1
1
  import { rechargeApiRequest } from '../utils/request.js';
2
2
 
3
- const getSubscription = async (id) => {
3
+ async function getSubscription(session, id) {
4
4
  const { subscription } = await rechargeApiRequest("get", `/subscriptions`, {
5
5
  id
6
- });
6
+ }, session);
7
7
  return subscription;
8
- };
9
- const listSubscriptions = (query) => {
10
- return rechargeApiRequest("get", `/subscriptions`, { query });
11
- };
12
- const createSubscription = async (data) => {
8
+ }
9
+ function listSubscriptions(session, query) {
10
+ return rechargeApiRequest("get", `/subscriptions`, { query }, session);
11
+ }
12
+ async function createSubscription(session, createRequest) {
13
13
  const { subscription } = await rechargeApiRequest("post", `/subscriptions`, {
14
- data
15
- });
14
+ data: createRequest
15
+ }, session);
16
16
  return subscription;
17
- };
18
- const updateSubscription = async (id, data, query) => {
17
+ }
18
+ async function updateSubscription(session, id, updateRequest, query) {
19
19
  const { subscription } = await rechargeApiRequest("put", `/subscriptions`, {
20
20
  id,
21
- data,
21
+ data: updateRequest,
22
22
  query
23
- });
23
+ }, session);
24
24
  return subscription;
25
- };
26
- const updateSubscriptionChargeDate = async (id, date) => {
25
+ }
26
+ async function updateSubscriptionChargeDate(session, id, date) {
27
27
  const { subscription } = await rechargeApiRequest("post", `/subscriptions/${id}/set_next_charge_date`, {
28
28
  data: { date }
29
- });
29
+ }, session);
30
30
  return subscription;
31
- };
32
- const updateSubscriptionAddress = async (id, address_id) => {
31
+ }
32
+ async function updateSubscriptionAddress(session, id, address_id) {
33
33
  const { subscription } = await rechargeApiRequest("post", `/subscriptions/${id}/change_address`, {
34
34
  data: { address_id }
35
- });
35
+ }, session);
36
36
  return subscription;
37
- };
38
- const cancelSubscription = async (id, data) => {
37
+ }
38
+ async function cancelSubscription(session, id, cancelRequest) {
39
39
  const { subscription } = await rechargeApiRequest("post", `/subscriptions/${id}/cancel`, {
40
- data
41
- });
40
+ data: cancelRequest
41
+ }, session);
42
42
  return subscription;
43
- };
44
- const activateSubscription = async (id) => {
45
- const { subscription } = await rechargeApiRequest("post", `/subscriptions/${id}/activate`);
43
+ }
44
+ async function activateSubscription(session, id) {
45
+ const { subscription } = await rechargeApiRequest("post", `/subscriptions/${id}/activate`, {}, session);
46
46
  return subscription;
47
- };
47
+ }
48
48
 
49
49
  export { activateSubscription, cancelSubscription, createSubscription, getSubscription, listSubscriptions, updateSubscription, updateSubscriptionAddress, updateSubscriptionChargeDate };
50
50
  //# sourceMappingURL=subscription.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.js","sources":["../../../src/api/subscription.ts"],"sourcesContent":["import { rechargeApiRequest } from '../utils/request';\nimport {\n CancelSubscriptionRequest,\n CreateSubscriptionRequest,\n Subscription,\n SubscriptionsResponse,\n SubscriptionListParams,\n UpdateSubscriptionRequest,\n UpdateSubscriptionParams,\n} from '../types/subscription';\nimport { IsoDateString } from '../types/common';\n\nexport const getSubscription = async (id: string | number): Promise<Subscription> => {\n const { subscription } = await rechargeApiRequest<{ subscription: Subscription }>('get', `/subscriptions`, {\n id,\n });\n return subscription;\n};\n\nexport const listSubscriptions = (query?: SubscriptionListParams): Promise<SubscriptionsResponse> => {\n return rechargeApiRequest<SubscriptionsResponse>('get', `/subscriptions`, { query });\n};\n\n/**\n * When creating a subscription via API, order_interval_frequency and charge_interval_frequency values do not necessarily\n * need to match the values set in the respective Plans. The product, however, does need to have at least one Plan in order\n * to be added to a subscription.\n */\nexport const createSubscription = async (data: CreateSubscriptionRequest): Promise<Subscription> => {\n const { subscription } = await rechargeApiRequest<{ subscription: Subscription }>('post', `/subscriptions`, {\n data,\n });\n return subscription;\n};\n\n/**\n * Updating parameters like frequency, charge_interval_frequency, order_interval_frequency, order_interval_unit will cause our algorithm to automatically recalculate the next charge date (next_charge_scheduled_at).\n * WARNING: This update will remove skipped and manually changed charges.\n * If you want to change the next charge date (next_charge_scheduled_at) we recommend you to update these parameters first.\n * When updating order_interval_unit OR order_interval_frequency OR charge_interval_frequency all three parameters are required.\n */\nexport const updateSubscription = async (\n id: string | number,\n data: UpdateSubscriptionRequest,\n query?: UpdateSubscriptionParams\n): Promise<Subscription> => {\n const { subscription } = await rechargeApiRequest<{ subscription: Subscription }>('put', `/subscriptions`, {\n id,\n data,\n query,\n });\n return subscription;\n};\n\n/**\n * If there are two active subscriptions with the same address_id, and you update their\n * next_charge_date parameters to match, their charges will get merged into a new charge\n * with a new id\n */\nexport const updateSubscriptionChargeDate = async (id: string | number, date: IsoDateString): Promise<Subscription> => {\n const { subscription } = await rechargeApiRequest<{ subscription: Subscription }>(\n 'post',\n `/subscriptions/${id}/set_next_charge_date`,\n {\n data: { date },\n }\n );\n return subscription;\n};\n\nexport const updateSubscriptionAddress = async (\n id: string | number,\n address_id: string | number\n): Promise<Subscription> => {\n const { subscription } = await rechargeApiRequest<{ subscription: Subscription }>(\n 'post',\n `/subscriptions/${id}/change_address`,\n {\n data: { address_id },\n }\n );\n return subscription;\n};\n\n/**\n * An involuntary subscription cancelled due to max retries reached will trigger the\n * charge/max_retries_reached webhook. If this leads to the subscription being cancelled,\n * the subscription/cancelled webhook will trigger.\n */\nexport const cancelSubscription = async (\n id: string | number,\n data: CancelSubscriptionRequest\n): Promise<Subscription> => {\n const { subscription } = await rechargeApiRequest<{ subscription: Subscription }>(\n 'post',\n `/subscriptions/${id}/cancel`,\n {\n data,\n }\n );\n return subscription;\n};\n\n/**\n * When activating subscription, following attributes will be set to null: cancelled_at, cancellation_reason\n * and cancellation_reason_comments.\n */\nexport const activateSubscription = async (id: string | number): Promise<Subscription> => {\n const { subscription } = await rechargeApiRequest<{ subscription: Subscription }>(\n 'post',\n `/subscriptions/${id}/activate`\n );\n return subscription;\n};\n"],"names":[],"mappings":";;AACY,MAAC,eAAe,GAAG,OAAO,EAAE,KAAK;AAC7C,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE;AAC7E,IAAI,EAAE;AACN,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,YAAY,CAAC;AACtB,EAAE;AACU,MAAC,iBAAiB,GAAG,CAAC,KAAK,KAAK;AAC5C,EAAE,OAAO,kBAAkB,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAChE,EAAE;AACU,MAAC,kBAAkB,GAAG,OAAO,IAAI,KAAK;AAClD,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE;AAC9E,IAAI,IAAI;AACR,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,YAAY,CAAC;AACtB,EAAE;AACU,MAAC,kBAAkB,GAAG,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,KAAK;AAC7D,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE;AAC7E,IAAI,EAAE;AACN,IAAI,IAAI;AACR,IAAI,KAAK;AACT,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,YAAY,CAAC;AACtB,EAAE;AACU,MAAC,4BAA4B,GAAG,OAAO,EAAE,EAAE,IAAI,KAAK;AAChE,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,qBAAqB,CAAC,EAAE;AACzG,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE;AAClB,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,YAAY,CAAC;AACtB,EAAE;AACU,MAAC,yBAAyB,GAAG,OAAO,EAAE,EAAE,UAAU,KAAK;AACnE,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE;AACnG,IAAI,IAAI,EAAE,EAAE,UAAU,EAAE;AACxB,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,YAAY,CAAC;AACtB,EAAE;AACU,MAAC,kBAAkB,GAAG,OAAO,EAAE,EAAE,IAAI,KAAK;AACtD,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE;AAC3F,IAAI,IAAI;AACR,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,YAAY,CAAC;AACtB,EAAE;AACU,MAAC,oBAAoB,GAAG,OAAO,EAAE,KAAK;AAClD,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7F,EAAE,OAAO,YAAY,CAAC;AACtB;;;;"}
1
+ {"version":3,"file":"subscription.js","sources":["../../../src/api/subscription.ts"],"sourcesContent":["import { rechargeApiRequest } from '../utils/request';\nimport {\n CancelSubscriptionRequest,\n CreateSubscriptionRequest,\n Subscription,\n SubscriptionsResponse,\n SubscriptionListParams,\n UpdateSubscriptionRequest,\n UpdateSubscriptionParams,\n} from '../types/subscription';\nimport { IsoDateString } from '../types/common';\nimport { Session } from '../types/session';\n\nexport async function getSubscription(session: Session, id: string | number): Promise<Subscription> {\n const { subscription } = await rechargeApiRequest<{ subscription: Subscription }>(\n 'get',\n `/subscriptions`,\n {\n id,\n },\n session\n );\n return subscription;\n}\n\nexport function listSubscriptions(session: Session, query?: SubscriptionListParams): Promise<SubscriptionsResponse> {\n return rechargeApiRequest<SubscriptionsResponse>('get', `/subscriptions`, { query }, session);\n}\n\n/**\n * When creating a subscription via API, order_interval_frequency and charge_interval_frequency values do not necessarily\n * need to match the values set in the respective Plans. The product, however, does need to have at least one Plan in order\n * to be added to a subscription.\n */\nexport async function createSubscription(\n session: Session,\n createRequest: CreateSubscriptionRequest\n): Promise<Subscription> {\n const { subscription } = await rechargeApiRequest<{ subscription: Subscription }>(\n 'post',\n `/subscriptions`,\n {\n data: createRequest,\n },\n session\n );\n return subscription;\n}\n\n/**\n * Updating parameters like frequency, charge_interval_frequency, order_interval_frequency, order_interval_unit will cause our algorithm to automatically recalculate the next charge date (next_charge_scheduled_at).\n * WARNING: This update will remove skipped and manually changed charges.\n * If you want to change the next charge date (next_charge_scheduled_at) we recommend you to update these parameters first.\n * When updating order_interval_unit OR order_interval_frequency OR charge_interval_frequency all three parameters are required.\n */\nexport async function updateSubscription(\n session: Session,\n id: string | number,\n updateRequest: UpdateSubscriptionRequest,\n query?: UpdateSubscriptionParams\n): Promise<Subscription> {\n const { subscription } = await rechargeApiRequest<{ subscription: Subscription }>(\n 'put',\n `/subscriptions`,\n {\n id,\n data: updateRequest,\n query,\n },\n session\n );\n return subscription;\n}\n\n/**\n * If there are two active subscriptions with the same address_id, and you update their\n * next_charge_date parameters to match, their charges will get merged into a new charge\n * with a new id\n */\nexport async function updateSubscriptionChargeDate(\n session: Session,\n id: string | number,\n date: IsoDateString\n): Promise<Subscription> {\n const { subscription } = await rechargeApiRequest<{ subscription: Subscription }>(\n 'post',\n `/subscriptions/${id}/set_next_charge_date`,\n {\n data: { date },\n },\n session\n );\n return subscription;\n}\n\nexport async function updateSubscriptionAddress(\n session: Session,\n id: string | number,\n address_id: string | number\n): Promise<Subscription> {\n const { subscription } = await rechargeApiRequest<{ subscription: Subscription }>(\n 'post',\n `/subscriptions/${id}/change_address`,\n {\n data: { address_id },\n },\n session\n );\n return subscription;\n}\n\n/**\n * An involuntary subscription cancelled due to max retries reached will trigger the\n * charge/max_retries_reached webhook. If this leads to the subscription being cancelled,\n * the subscription/cancelled webhook will trigger.\n */\nexport async function cancelSubscription(\n session: Session,\n id: string | number,\n cancelRequest: CancelSubscriptionRequest\n): Promise<Subscription> {\n const { subscription } = await rechargeApiRequest<{ subscription: Subscription }>(\n 'post',\n `/subscriptions/${id}/cancel`,\n {\n data: cancelRequest,\n },\n session\n );\n return subscription;\n}\n\n/**\n * When activating subscription, following attributes will be set to null: cancelled_at, cancellation_reason\n * and cancellation_reason_comments.\n */\nexport async function activateSubscription(session: Session, id: string | number): Promise<Subscription> {\n const { subscription } = await rechargeApiRequest<{ subscription: Subscription }>(\n 'post',\n `/subscriptions/${id}/activate`,\n {},\n session\n );\n return subscription;\n}\n"],"names":[],"mappings":";;AACO,eAAe,eAAe,CAAC,OAAO,EAAE,EAAE,EAAE;AACnD,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE;AAC7E,IAAI,EAAE;AACN,GAAG,EAAE,OAAO,CAAC,CAAC;AACd,EAAE,OAAO,YAAY,CAAC;AACtB,CAAC;AACM,SAAS,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE;AAClD,EAAE,OAAO,kBAAkB,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AACM,eAAe,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE;AACjE,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE;AAC9E,IAAI,IAAI,EAAE,aAAa;AACvB,GAAG,EAAE,OAAO,CAAC,CAAC;AACd,EAAE,OAAO,YAAY,CAAC;AACtB,CAAC;AACM,eAAe,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;AAC5E,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE;AAC7E,IAAI,EAAE;AACN,IAAI,IAAI,EAAE,aAAa;AACvB,IAAI,KAAK;AACT,GAAG,EAAE,OAAO,CAAC,CAAC;AACd,EAAE,OAAO,YAAY,CAAC;AACtB,CAAC;AACM,eAAe,4BAA4B,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE;AACtE,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,qBAAqB,CAAC,EAAE;AACzG,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE;AAClB,GAAG,EAAE,OAAO,CAAC,CAAC;AACd,EAAE,OAAO,YAAY,CAAC;AACtB,CAAC;AACM,eAAe,yBAAyB,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE;AACzE,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE;AACnG,IAAI,IAAI,EAAE,EAAE,UAAU,EAAE;AACxB,GAAG,EAAE,OAAO,CAAC,CAAC;AACd,EAAE,OAAO,YAAY,CAAC;AACtB,CAAC;AACM,eAAe,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE;AACrE,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE;AAC3F,IAAI,IAAI,EAAE,aAAa;AACvB,GAAG,EAAE,OAAO,CAAC,CAAC;AACd,EAAE,OAAO,YAAY,CAAC;AACtB,CAAC;AACM,eAAe,oBAAoB,CAAC,OAAO,EAAE,EAAE,EAAE;AACxD,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AAC1G,EAAE,OAAO,YAAY,CAAC;AACtB;;;;"}
@@ -1,6 +1,7 @@
1
1
  const RECHARGE_API_URL = (environment) => environment === "stage" ? "https://api.stage.rechargeapps.com" : "https://api.rechargeapps.com";
2
+ const RECHARGE_ADMIN_URL = (environment) => environment === "stage" ? "https://admin.stage.rechargeapps.com" : "https://admin.rechargeapps.com";
2
3
  const RECHARGE_CDN_URL = (environment) => environment === "stage" ? "https://static.stage.rechargecdn.com" : "https://static.rechargecdn.com";
3
4
  const SHOPIFY_APP_PROXY_URL = "/tools/recurring";
4
5
 
5
- export { RECHARGE_API_URL, RECHARGE_CDN_URL, SHOPIFY_APP_PROXY_URL };
6
+ export { RECHARGE_ADMIN_URL, RECHARGE_API_URL, RECHARGE_CDN_URL, SHOPIFY_APP_PROXY_URL };
6
7
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sources":["../../../src/constants/api.ts"],"sourcesContent":["export const RECHARGE_API_URL = (environment: 'stage' | 'prod'): string =>\n environment === 'stage' ? 'https://api.stage.rechargeapps.com' : 'https://api.rechargeapps.com';\nexport const RECHARGE_CDN_URL = (environment: 'stage' | 'prod'): string =>\n environment === 'stage' ? 'https://static.stage.rechargecdn.com' : 'https://static.rechargecdn.com';\nexport const RECHARGE_HOSTED_DOMAIN = '.admin.rechargeapps.com';\nexport const SHOPIFY_EMBEDDED_DOMAIN = '.myshopify.com';\nexport const SHOPIFY_APP_PROXY_URL = '/tools/recurring';\n"],"names":[],"mappings":"AAAY,MAAC,gBAAgB,GAAG,CAAC,WAAW,KAAK,WAAW,KAAK,OAAO,GAAG,oCAAoC,GAAG,+BAA+B;AACrI,MAAC,gBAAgB,GAAG,CAAC,WAAW,KAAK,WAAW,KAAK,OAAO,GAAG,sCAAsC,GAAG,iCAAiC;AAGzI,MAAC,qBAAqB,GAAG;;;;"}
1
+ {"version":3,"file":"api.js","sources":["../../../src/constants/api.ts"],"sourcesContent":["export const RECHARGE_API_URL = (environment: 'stage' | 'prod'): string =>\n environment === 'stage' ? 'https://api.stage.rechargeapps.com' : 'https://api.rechargeapps.com';\nexport const RECHARGE_ADMIN_URL = (environment: 'stage' | 'prod'): string =>\n environment === 'stage' ? 'https://admin.stage.rechargeapps.com' : 'https://admin.rechargeapps.com';\nexport const RECHARGE_CDN_URL = (environment: 'stage' | 'prod'): string =>\n environment === 'stage' ? 'https://static.stage.rechargecdn.com' : 'https://static.rechargecdn.com';\nexport const RECHARGE_HOSTED_DOMAIN = '.admin.rechargeapps.com';\nexport const SHOPIFY_EMBEDDED_DOMAIN = '.myshopify.com';\nexport const SHOPIFY_APP_PROXY_URL = '/tools/recurring';\n"],"names":[],"mappings":"AAAY,MAAC,gBAAgB,GAAG,CAAC,WAAW,KAAK,WAAW,KAAK,OAAO,GAAG,oCAAoC,GAAG,+BAA+B;AACrI,MAAC,kBAAkB,GAAG,CAAC,WAAW,KAAK,WAAW,KAAK,OAAO,GAAG,sCAAsC,GAAG,iCAAiC;AAC3I,MAAC,gBAAgB,GAAG,CAAC,WAAW,KAAK,WAAW,KAAK,OAAO,GAAG,sCAAsC,GAAG,iCAAiC;AAGzI,MAAC,qBAAqB,GAAG;;;;"}
package/dist/esm/index.js CHANGED
@@ -1,11 +1,12 @@
1
1
  export { createAddress, deleteAddress, getAddress, listAddresses, mergeAddresses, skipFutureCharge, updateAddress } from './api/address.js';
2
- export { login, logout } from './api/auth.js';
3
- export { applyDiscount, captureCharge, getCharge, listCharges, processCharge, refundCharge, removeDiscount, skipCharge, unskipCharge } from './api/charge.js';
2
+ export { loginShopifyApi, loginShopifyAppProxy } from './api/auth.js';
3
+ export { applyDiscount, getCharge, listCharges, processCharge, removeDiscount, skipCharge, unskipCharge } from './api/charge.js';
4
4
  export { getBundleSettings, getProduct, getProductAndSettings, getProducts, getProductsAndSettings, getStoreSettings, getWidgetSettings, resetCache } from './api/cdn.js';
5
5
  export { getBundleId, validateBundle } from './api/bundle.js';
6
+ export { activateMembership, cancelMembership, getMembership, listMemberships } from './api/memberships.js';
6
7
  export { createOnetime, deleteOnetime, getOnetime, listOnetimes, updateOnetime } from './api/onetime.js';
7
8
  export { getOrder, listOrders } from './api/order.js';
8
9
  export { activateSubscription, cancelSubscription, createSubscription, getSubscription, listSubscriptions, updateSubscription, updateSubscriptionAddress, updateSubscriptionChargeDate } from './api/subscription.js';
9
- export { getDeliverySchedule, getUser, updateUser } from './api/user.js';
10
+ export { getCustomer, getDeliverySchedule, updateCustomer } from './api/customer.js';
10
11
  export { api, initRecharge } from './utils/init.js';
11
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -40,8 +40,7 @@ function initRecharge(opt = {}) {
40
40
  const hiddenOpts = opt;
41
41
  setOptions({
42
42
  storeIdentifier: getStoreIdentifier(opt.storeIdentifier),
43
- environment: hiddenOpts.environment ? hiddenOpts.environment : "prod",
44
- apiKey: hiddenOpts.apiKey ? hiddenOpts.apiKey : ""
43
+ environment: hiddenOpts.environment ? hiddenOpts.environment : "prod"
45
44
  });
46
45
  resetCache();
47
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sources":["../../../src/utils/init.ts"],"sourcesContent":["import { resetCache } from '../api/cdn';\nimport { StorefrontOptions, CRUDRequestOptions, GetRequestOptions } from '../types';\nimport { setOptions } from './options';\nimport { request } from './request';\n\n// This omits all of our 'hidden' variables. These can still be passed in, but won't have types generated for them\nexport type InitOptions = Omit<Partial<StorefrontOptions>, 'environment' | 'apiKey'>;\n\nexport const api = {\n get<T>(url: string, requestOptions?: GetRequestOptions): Promise<T> {\n return request<T>('get', url, requestOptions);\n },\n post<T>(url: string, requestOptions?: CRUDRequestOptions): Promise<T> {\n return request<T>('post', url, requestOptions);\n },\n put<T>(url: string, requestOptions?: CRUDRequestOptions): Promise<T> {\n return request<T>('put', url, requestOptions);\n },\n delete<T>(url: string, requestOptions?: CRUDRequestOptions): Promise<T> {\n return request<T>('delete', url, requestOptions);\n },\n};\n\n/**\n * Uses passed in storeIdentifier, but if it's not passed in will try to infer it.\n * Currently it will only infer if we are in the context of a Shopify store. This will not infer headless or hosted yet.\n */\nfunction getStoreIdentifier(storeIdentifier?: string): string {\n if (storeIdentifier) {\n return storeIdentifier;\n }\n\n // Infer's when on Shopify store (non headless)\n if (window?.Shopify?.shop) {\n return window.Shopify.shop;\n }\n\n // Domain exists on hosted themes. If it doesn't for some reason, get the subdomain and create the identifier\n let domain = window?.domain;\n if (!domain) {\n const subdomain = location?.href\n .match(/(?:http[s]*:\\/\\/)*(.*?)\\.(?=admin\\.rechargeapps\\.com)/i)?.[1]\n .replace(/-sp$/, '');\n if (subdomain) {\n domain = `${subdomain}.myshopify.com`;\n }\n }\n\n // Infer's when on Recharge hosted\n if (domain) {\n return domain;\n }\n\n throw new Error(`No storeIdentifier was passed into init.`);\n}\n\nexport function initRecharge(opt: InitOptions = {}) {\n const hiddenOpts = opt as StorefrontOptions;\n setOptions({\n storeIdentifier: getStoreIdentifier(opt.storeIdentifier),\n environment: hiddenOpts.environment ? hiddenOpts.environment : 'prod',\n apiKey: hiddenOpts.apiKey ? hiddenOpts.apiKey : '',\n });\n\n // When init is called again, reset the cache to make sure we don't have the old cache around\n resetCache();\n}\n"],"names":[],"mappings":";;;;AAGY,MAAC,GAAG,GAAG;AACnB,EAAE,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE;AAC3B,IAAI,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;AAC/C,GAAG;AACH,EAAE,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE;AAC5B,IAAI,OAAO,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE;AAC3B,IAAI,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;AAC/C,GAAG;AACH,EAAE,MAAM,CAAC,GAAG,EAAE,cAAc,EAAE;AAC9B,IAAI,OAAO,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;AAClD,GAAG;AACH,EAAE;AACF,SAAS,kBAAkB,CAAC,eAAe,EAAE;AAC7C,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACb,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,OAAO,eAAe,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,CAAC,EAAE,GAAG,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE;AAClF,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;AACvD,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,IAAI,MAAM,SAAS,GAAG,CAAC,EAAE,GAAG,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,wDAAwD,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpL,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,MAAM,GAAG,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;AAC5C,KAAK;AACL,GAAG;AACH,EAAE,IAAI,MAAM,EAAE;AACd,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC;AAC9D,CAAC;AACM,SAAS,YAAY,CAAC,GAAG,GAAG,EAAE,EAAE;AACvC,EAAE,MAAM,UAAU,GAAG,GAAG,CAAC;AACzB,EAAE,UAAU,CAAC;AACb,IAAI,eAAe,EAAE,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAC;AAC5D,IAAI,WAAW,EAAE,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,GAAG,MAAM;AACzE,IAAI,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,EAAE;AACtD,GAAG,CAAC,CAAC;AACL,EAAE,UAAU,EAAE,CAAC;AACf;;;;"}
1
+ {"version":3,"file":"init.js","sources":["../../../src/utils/init.ts"],"sourcesContent":["import { resetCache } from '../api/cdn';\nimport { StorefrontOptions, CRUDRequestOptions, GetRequestOptions } from '../types';\nimport { setOptions } from './options';\nimport { request } from './request';\n\n// This omits all of our 'hidden' variables. These can still be passed in, but won't have types generated for them\nexport type InitOptions = Omit<Partial<StorefrontOptions>, 'environment'>;\n\nexport const api = {\n get<T>(url: string, requestOptions?: GetRequestOptions): Promise<T> {\n return request<T>('get', url, requestOptions);\n },\n post<T>(url: string, requestOptions?: CRUDRequestOptions): Promise<T> {\n return request<T>('post', url, requestOptions);\n },\n put<T>(url: string, requestOptions?: CRUDRequestOptions): Promise<T> {\n return request<T>('put', url, requestOptions);\n },\n delete<T>(url: string, requestOptions?: CRUDRequestOptions): Promise<T> {\n return request<T>('delete', url, requestOptions);\n },\n};\n\n/**\n * Uses passed in storeIdentifier, but if it's not passed in will try to infer it.\n * Currently it will only infer if we are in the context of a Shopify store. This will not infer headless or hosted yet.\n */\nfunction getStoreIdentifier(storeIdentifier?: string): string {\n if (storeIdentifier) {\n return storeIdentifier;\n }\n\n // Infer's when on Shopify store (non headless)\n if (window?.Shopify?.shop) {\n return window.Shopify.shop;\n }\n\n // Domain exists on hosted themes. If it doesn't for some reason, get the subdomain and create the identifier\n let domain = window?.domain;\n if (!domain) {\n const subdomain = location?.href\n .match(/(?:http[s]*:\\/\\/)*(.*?)\\.(?=admin\\.rechargeapps\\.com)/i)?.[1]\n .replace(/-sp$/, '');\n if (subdomain) {\n domain = `${subdomain}.myshopify.com`;\n }\n }\n\n // Infer's when on Recharge hosted\n if (domain) {\n return domain;\n }\n\n throw new Error(`No storeIdentifier was passed into init.`);\n}\n\nexport function initRecharge(opt: InitOptions = {}) {\n const hiddenOpts = opt as StorefrontOptions;\n setOptions({\n storeIdentifier: getStoreIdentifier(opt.storeIdentifier),\n environment: hiddenOpts.environment ? hiddenOpts.environment : 'prod',\n });\n\n // When init is called again, reset the cache to make sure we don't have the old cache around\n resetCache();\n}\n"],"names":[],"mappings":";;;;AAGY,MAAC,GAAG,GAAG;AACnB,EAAE,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE;AAC3B,IAAI,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;AAC/C,GAAG;AACH,EAAE,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE;AAC5B,IAAI,OAAO,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE;AAC3B,IAAI,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;AAC/C,GAAG;AACH,EAAE,MAAM,CAAC,GAAG,EAAE,cAAc,EAAE;AAC9B,IAAI,OAAO,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;AAClD,GAAG;AACH,EAAE;AACF,SAAS,kBAAkB,CAAC,eAAe,EAAE;AAC7C,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACb,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,OAAO,eAAe,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,CAAC,EAAE,GAAG,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE;AAClF,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;AACvD,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,IAAI,MAAM,SAAS,GAAG,CAAC,EAAE,GAAG,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,wDAAwD,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpL,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,MAAM,GAAG,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;AAC5C,KAAK;AACL,GAAG;AACH,EAAE,IAAI,MAAM,EAAE;AACd,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC;AAC9D,CAAC;AACM,SAAS,YAAY,CAAC,GAAG,GAAG,EAAE,EAAE;AACvC,EAAE,MAAM,UAAU,GAAG,GAAG,CAAC;AACzB,EAAE,UAAU,CAAC;AACb,IAAI,eAAe,EAAE,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAC;AAC5D,IAAI,WAAW,EAAE,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,GAAG,MAAM;AACzE,GAAG,CAAC,CAAC;AACL,EAAE,UAAU,EAAE,CAAC;AACf;;;;"}
@@ -1,7 +1,6 @@
1
1
  let options = {
2
2
  storeIdentifier: "",
3
- environment: "prod",
4
- apiKey: ""
3
+ environment: "prod"
5
4
  };
6
5
  function setOptions(opts) {
7
6
  options = opts;
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sources":["../../../src/utils/options.ts"],"sourcesContent":["import { StorefrontOptions } from '../types';\n\nlet options: StorefrontOptions = {\n storeIdentifier: '',\n environment: 'prod',\n apiKey: '',\n};\n\nexport function setOptions(opts: StorefrontOptions) {\n options = opts;\n}\n\nexport function getOptions() {\n return options;\n}\n"],"names":[],"mappings":"AAAA,IAAI,OAAO,GAAG;AACd,EAAE,eAAe,EAAE,EAAE;AACrB,EAAE,WAAW,EAAE,MAAM;AACrB,EAAE,MAAM,EAAE,EAAE;AACZ,CAAC,CAAC;AACK,SAAS,UAAU,CAAC,IAAI,EAAE;AACjC,EAAE,OAAO,GAAG,IAAI,CAAC;AACjB,CAAC;AACM,SAAS,UAAU,GAAG;AAC7B,EAAE,OAAO,OAAO,CAAC;AACjB;;;;"}
1
+ {"version":3,"file":"options.js","sources":["../../../src/utils/options.ts"],"sourcesContent":["import { StorefrontOptions } from '../types';\n\nlet options: StorefrontOptions = {\n storeIdentifier: '',\n environment: 'prod',\n};\n\nexport function setOptions(opts: StorefrontOptions) {\n options = opts;\n}\n\nexport function getOptions() {\n return options;\n}\n"],"names":[],"mappings":"AAAA,IAAI,OAAO,GAAG;AACd,EAAE,eAAe,EAAE,EAAE;AACrB,EAAE,WAAW,EAAE,MAAM;AACrB,CAAC,CAAC;AACK,SAAS,UAAU,CAAC,IAAI,EAAE;AACjC,EAAE,OAAO,GAAG,IAAI,CAAC;AACjB,CAAC;AACM,SAAS,UAAU,GAAG;AAC7B,EAAE,OAAO,OAAO,CAAC;AACjB;;;;"}
@@ -2,7 +2,6 @@ import 'isomorphic-fetch';
2
2
  import { stringify } from 'qs';
3
3
  import { getOptions } from './options.js';
4
4
  import { RECHARGE_API_URL, RECHARGE_CDN_URL, SHOPIFY_APP_PROXY_URL } from '../constants/api.js';
5
- import { getSession } from './session.js';
6
5
 
7
6
  var __defProp = Object.defineProperty;
8
7
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
@@ -31,13 +30,9 @@ async function cdnRequest(method, url, requestOptions = {}) {
31
30
  const opts = getOptions();
32
31
  return request(method, `${RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}${url}`, requestOptions);
33
32
  }
34
- async function rechargeApiRequest(method, url, { id, query, data, headers } = {}) {
35
- var _a, _b;
33
+ async function rechargeApiRequest(method, url, { id, query, data, headers } = {}, session) {
36
34
  const opts = getOptions();
37
- const token = (_b = (_a = getSession()) == null ? void 0 : _a.apiToken) != null ? _b : opts.apiKey;
38
- if (!token) {
39
- throw new Error("No API Key or token found.");
40
- }
35
+ const token = session.apiToken;
41
36
  const rechargeBaseUrl = RECHARGE_API_URL(opts.environment);
42
37
  const reqHeaders = __spreadValues({
43
38
  "Content-Type": "application/json",
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sources":["../../../src/utils/request.ts"],"sourcesContent":["import 'isomorphic-fetch';\n\nimport { stringify } from 'qs';\n\nimport { Method, RequestHeaders, RequestOptions } from '../types';\nimport { getOptions } from './options';\nimport { RECHARGE_API_URL, RECHARGE_CDN_URL, SHOPIFY_APP_PROXY_URL } from '../constants/api';\nimport { getSession } from './session';\n\nfunction stringifyQuery(str: unknown): string {\n return stringify(str, {\n encode: false,\n indices: false,\n arrayFormat: 'comma',\n });\n}\n\nexport async function cdnRequest<T>(method: Method, url: string, requestOptions: RequestOptions = {}): Promise<T> {\n const opts = getOptions();\n return request(method, `${RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}${url}`, requestOptions);\n}\n\nexport async function rechargeApiRequest<T>(\n method: Method,\n url: string,\n { id, query, data, headers }: RequestOptions = {}\n): Promise<T> {\n const opts = getOptions();\n const token = getSession()?.apiToken ?? opts.apiKey;\n if (!token) {\n throw new Error('No API Key or token found.');\n }\n const rechargeBaseUrl = RECHARGE_API_URL(opts.environment);\n const reqHeaders: RequestHeaders = {\n 'Content-Type': 'application/json',\n 'X-Recharge-Access-Token': token,\n 'X-Recharge-Version': '2021-11',\n 'X-Recharge-App': 'storefront-client',\n ...(headers ? headers : {}),\n };\n\n const localQuery = {\n shop_url: opts.storeIdentifier,\n ...(query as any),\n };\n\n return request(method, `${rechargeBaseUrl}${url}`, { id, query: localQuery, data, headers: reqHeaders });\n}\n\nexport async function shopifyAppProxyRequest<T>(\n method: Method,\n url: string,\n { id, query, data, headers }: RequestOptions = {}\n): Promise<T> {\n const reqHeaders: RequestHeaders = {\n 'Content-Type': 'application/json',\n 'X-Recharge-App': 'storefront-client',\n ...(headers ? headers : {}),\n };\n\n return request(method, `${SHOPIFY_APP_PROXY_URL}${url}`, { id, query, data, headers: reqHeaders });\n}\n\nexport async function request<T>(\n method: Method,\n url: string,\n { id, query, data, headers }: RequestOptions = {}\n): Promise<T> {\n let reqUrl = url.trim();\n\n if (id) {\n reqUrl = [reqUrl, `${id}`.trim()].join('/');\n }\n\n if (query) {\n let exQuery;\n [reqUrl, exQuery] = reqUrl.split('?');\n const fullQuery = [exQuery, stringifyQuery(query)].join('&').replace(/^&/, '');\n reqUrl = `${reqUrl}${fullQuery ? `?${fullQuery}` : ''}`;\n }\n\n let reqBody;\n if (data && method !== 'get') {\n reqBody = JSON.stringify(data);\n }\n\n const reqHeaders: RequestHeaders = {\n Accept: 'application/json',\n // 'Content-Type': 'application/json',\n // 'X-Recharge-App': 'storefront-client',\n ...(headers ? headers : {}),\n };\n\n const response = await fetch(reqUrl, {\n method,\n headers: reqHeaders,\n body: reqBody,\n mode: 'cors',\n });\n\n let result;\n try {\n result = await response.json();\n } catch (e) {\n // If we get here, it means we were a no content response.\n }\n\n if (!response.ok) {\n if (result && result.error) {\n throw new Error(`${response.status}: ${result.error}`);\n } else {\n throw new Error('A connection error occurred while making the request');\n }\n }\n\n return result as T;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.js","sources":["../../../src/utils/request.ts"],"sourcesContent":["import 'isomorphic-fetch';\n\nimport { stringify } from 'qs';\n\nimport { Method, RequestHeaders, RequestOptions } from '../types';\nimport { getOptions } from './options';\nimport { RECHARGE_API_URL, RECHARGE_CDN_URL, SHOPIFY_APP_PROXY_URL } from '../constants/api';\nimport { Session } from '../types/session';\n\nfunction stringifyQuery(str: unknown): string {\n return stringify(str, {\n encode: false,\n indices: false,\n arrayFormat: 'comma',\n });\n}\n\nexport async function cdnRequest<T>(method: Method, url: string, requestOptions: RequestOptions = {}): Promise<T> {\n const opts = getOptions();\n return request(method, `${RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}${url}`, requestOptions);\n}\n\nexport async function rechargeApiRequest<T>(\n method: Method,\n url: string,\n { id, query, data, headers }: RequestOptions = {},\n session: Session\n): Promise<T> {\n const opts = getOptions();\n const token = session.apiToken;\n const rechargeBaseUrl = RECHARGE_API_URL(opts.environment);\n const reqHeaders: RequestHeaders = {\n 'Content-Type': 'application/json',\n 'X-Recharge-Access-Token': token,\n 'X-Recharge-Version': '2021-11',\n 'X-Recharge-App': 'storefront-client',\n ...(headers ? headers : {}),\n };\n\n const localQuery = {\n shop_url: opts.storeIdentifier,\n ...(query as any),\n };\n\n return request(method, `${rechargeBaseUrl}${url}`, { id, query: localQuery, data, headers: reqHeaders });\n}\n\nexport async function shopifyAppProxyRequest<T>(\n method: Method,\n url: string,\n { id, query, data, headers }: RequestOptions = {}\n): Promise<T> {\n const reqHeaders: RequestHeaders = {\n 'Content-Type': 'application/json',\n 'X-Recharge-App': 'storefront-client',\n ...(headers ? headers : {}),\n };\n\n return request(method, `${SHOPIFY_APP_PROXY_URL}${url}`, { id, query, data, headers: reqHeaders });\n}\n\nexport async function request<T>(\n method: Method,\n url: string,\n { id, query, data, headers }: RequestOptions = {}\n): Promise<T> {\n let reqUrl = url.trim();\n\n if (id) {\n reqUrl = [reqUrl, `${id}`.trim()].join('/');\n }\n\n if (query) {\n let exQuery;\n [reqUrl, exQuery] = reqUrl.split('?');\n const fullQuery = [exQuery, stringifyQuery(query)].join('&').replace(/^&/, '');\n reqUrl = `${reqUrl}${fullQuery ? `?${fullQuery}` : ''}`;\n }\n\n let reqBody;\n if (data && method !== 'get') {\n reqBody = JSON.stringify(data);\n }\n\n const reqHeaders: RequestHeaders = {\n Accept: 'application/json',\n // 'Content-Type': 'application/json',\n // 'X-Recharge-App': 'storefront-client',\n ...(headers ? headers : {}),\n };\n\n const response = await fetch(reqUrl, {\n method,\n headers: reqHeaders,\n body: reqBody,\n mode: 'cors',\n });\n\n let result;\n try {\n result = await response.json();\n } catch (e) {\n // If we get here, it means we were a no content response.\n }\n\n if (!response.ok) {\n if (result && result.error) {\n throw new Error(`${response.status}: ${result.error}`);\n } else {\n throw new Error('A connection error occurred while making the request');\n }\n }\n\n return result as T;\n}\n"],"names":[],"mappings":"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"}