@rechargeapps/storefront-client 0.0.14 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -17,11 +17,11 @@ Script:
17
17
  NPM/Yarn
18
18
 
19
19
  ```bash
20
- npm install @recharge-packages/storefront-client
20
+ npm install @rechargeapps/storefront-client
21
21
  ```
22
22
 
23
23
  ```bash
24
- yarn add @recharge-packages/storefront-client
24
+ yarn add @rechargeapps/storefront-client
25
25
  ```
26
26
 
27
27
  ## Init
@@ -7,51 +7,30 @@ var request = require('../utils/request.js');
7
7
  var options = require('../utils/options.js');
8
8
  var cdn = require('./cdn.js');
9
9
 
10
- var __async = (__this, __arguments, generator) => {
11
- return new Promise((resolve, reject) => {
12
- var fulfilled = (value) => {
13
- try {
14
- step(generator.next(value));
15
- } catch (e) {
16
- reject(e);
17
- }
18
- };
19
- var rejected = (value) => {
20
- try {
21
- step(generator.throw(value));
22
- } catch (e) {
23
- reject(e);
24
- }
25
- };
26
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
27
- step((generator = generator.apply(__this, __arguments)).next());
28
- });
29
- };
30
- const STORE_FRONT_MANAGER_URL = "https://us-east4-recharge-prod-services-f818.cloudfunctions.net/bundling-storefront-manager";
10
+ const STORE_FRONT_MANAGER_URL = "/tools/recurring/bundling-storefront-manager";
31
11
  function getTimestampSecondsFromClient() {
32
12
  return Math.ceil(Date.now() / 1e3);
33
13
  }
34
- function getTimestampSecondsFromServer(request2) {
35
- return __async(this, null, function* () {
36
- const url = `${STORE_FRONT_MANAGER_URL}/t`;
37
- try {
38
- const { timestamp } = yield request2("get", url, {
39
- headers: { "X-Recharge-App": "storefront-client" }
40
- });
41
- return timestamp;
42
- } catch (ex) {
43
- console.error(`Fetch failed: ${ex}. Using client-side date.`);
44
- return getTimestampSecondsFromClient();
45
- }
46
- });
14
+ async function getTimestampSecondsFromServer(request2) {
15
+ const opts = options.getOptions();
16
+ const url = `https://${opts.storeIdentifier}${STORE_FRONT_MANAGER_URL}/t`;
17
+ try {
18
+ const { timestamp } = await request2("get", url, {
19
+ headers: { "X-Recharge-App": "storefront-client" }
20
+ });
21
+ return timestamp;
22
+ } catch (ex) {
23
+ console.error(`Fetch failed: ${ex}. Using client-side date.`);
24
+ return getTimestampSecondsFromClient();
25
+ }
47
26
  }
48
- const getBundleId = (bundle) => __async(void 0, null, function* () {
27
+ const getBundleId = async (bundle) => {
49
28
  const opts = options.getOptions();
50
- const isValid = yield validateBundle(bundle);
29
+ const isValid = await validateBundle(bundle);
51
30
  if (!isValid) {
52
31
  throw new Error("Bundle selection is invalid.");
53
32
  }
54
- const timestampSeconds = yield getTimestampSecondsFromServer(request.request);
33
+ const timestampSeconds = await getTimestampSecondsFromServer(request.request);
55
34
  const bundleData = bundlingData.toLineItemProperty({
56
35
  variantId: bundle.externalVariantId,
57
36
  version: timestampSeconds,
@@ -66,8 +45,8 @@ const getBundleId = (bundle) => __async(void 0, null, function* () {
66
45
  })
67
46
  });
68
47
  try {
69
- const STORE_FRONT_BUNDLE_URL = `${STORE_FRONT_MANAGER_URL}/api/v1/bundles`;
70
- const payload = yield request.request("post", STORE_FRONT_BUNDLE_URL, {
48
+ const STORE_FRONT_BUNDLE_URL = `https://${opts.storeIdentifier}${STORE_FRONT_MANAGER_URL}/api/v1/bundles`;
49
+ const payload = await request.request("post", STORE_FRONT_BUNDLE_URL, {
71
50
  data: {
72
51
  bundle: bundleData
73
52
  },
@@ -84,16 +63,16 @@ const getBundleId = (bundle) => __async(void 0, null, function* () {
84
63
  } catch (e) {
85
64
  throw new Error(`2: failed generating rb_id ${e}`);
86
65
  }
87
- });
88
- const validateBundle = (bundle) => __async(void 0, null, function* () {
66
+ };
67
+ const validateBundle = async (bundle) => {
89
68
  try {
90
- const bundleSettings = yield cdn.getBundleSettings(bundle.externalProductId);
69
+ const bundleSettings = await cdn.getBundleSettings(bundle.externalProductId);
91
70
  return !!bundle && !!bundleSettings;
92
71
  } catch (e) {
93
72
  console.error("Error fetching bundle settings");
94
73
  return false;
95
74
  }
96
- });
75
+ };
97
76
 
98
77
  exports.getBundleId = getBundleId;
99
78
  exports.validateBundle = validateBundle;
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.js","sources":["../../../src/api/bundle.ts"],"sourcesContent":["import { toLineItemProperty } from '@recharge-packages/bundling-data';\nimport { Request, Bundle } from '../types';\nimport { request } from '../utils/request';\nimport { getOptions } from '../utils/options';\nimport { getBundleSettings } from './cdn';\n\nconst STORE_FRONT_MANAGER_URL = process.env.BUNDLING_STOREFRONT_URL;\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(request: Request): 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 const url = `${STORE_FRONT_MANAGER_URL}/t`;\n\n try {\n const { timestamp } = await request<{ timestamp: number }>('get', url, {\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 const getBundleId = async (bundle: Bundle): Promise<string> => {\n const opts = getOptions();\n const isValid = await validateBundle(bundle);\n if (!isValid) {\n throw new Error('Bundle selection is invalid.');\n }\n const timestampSeconds = await getTimestampSecondsFromServer(request);\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 STORE_FRONT_BUNDLE_URL = `${STORE_FRONT_MANAGER_URL}/api/v1/bundles`;\n const payload = await request<{ id: string; code: number; message: string }>('post', STORE_FRONT_BUNDLE_URL, {\n data: {\n bundle: bundleData,\n },\n headers: {\n 'Content-Type': 'application/json',\n Origin: `https://${opts.storeIdentifier}`,\n 'X-Recharge-App': 'storefront-client',\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 const validateBundle = async (bundle: Bundle): Promise<boolean> => {\n try {\n const bundleSettings = await getBundleSettings(bundle.externalProductId);\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 return !!bundle && !!bundleSettings;\n } catch (e) {\n console.error('Error fetching bundle settings');\n return false;\n }\n};\n"],"names":["getOptions","request","toLineItemProperty","getBundleSettings"],"mappings":"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"}
1
+ {"version":3,"file":"bundle.js","sources":["../../../src/api/bundle.ts"],"sourcesContent":["import { toLineItemProperty } from '@recharge-packages/bundling-data';\nimport { Request, Bundle } from '../types';\nimport { request } from '../utils/request';\nimport { getOptions } from '../utils/options';\nimport { getBundleSettings } from './cdn';\n\nconst STORE_FRONT_MANAGER_URL = '/tools/recurring/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(request: Request): Promise<number> {\n const opts = getOptions();\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 const url = `https://${opts.storeIdentifier}${STORE_FRONT_MANAGER_URL}/t`;\n\n try {\n const { timestamp } = await request<{ timestamp: number }>('get', url, {\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 const getBundleId = async (bundle: Bundle): Promise<string> => {\n const opts = getOptions();\n const isValid = await validateBundle(bundle);\n if (!isValid) {\n throw new Error('Bundle selection is invalid.');\n }\n const timestampSeconds = await getTimestampSecondsFromServer(request);\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 STORE_FRONT_BUNDLE_URL = `https://${opts.storeIdentifier}${STORE_FRONT_MANAGER_URL}/api/v1/bundles`;\n const payload = await request<{ id: string; code: number; message: string }>('post', STORE_FRONT_BUNDLE_URL, {\n data: {\n bundle: bundleData,\n },\n headers: {\n 'Content-Type': 'application/json',\n Origin: `https://${opts.storeIdentifier}`,\n 'X-Recharge-App': 'storefront-client',\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 const validateBundle = async (bundle: Bundle): Promise<boolean> => {\n try {\n const bundleSettings = await getBundleSettings(bundle.externalProductId);\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 return !!bundle && !!bundleSettings;\n } catch (e) {\n console.error('Error fetching bundle settings');\n return false;\n }\n};\n"],"names":["getOptions","request","toLineItemProperty","getBundleSettings"],"mappings":"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"}
@@ -7,26 +7,6 @@ var cdn = require('../mappers/cdn.js');
7
7
  var request = require('../utils/request.js');
8
8
  var options = require('../utils/options.js');
9
9
 
10
- var __async = (__this, __arguments, generator) => {
11
- return new Promise((resolve, reject) => {
12
- var fulfilled = (value) => {
13
- try {
14
- step(generator.next(value));
15
- } catch (e) {
16
- reject(e);
17
- }
18
- };
19
- var rejected = (value) => {
20
- try {
21
- step(generator.throw(value));
22
- } catch (e) {
23
- reject(e);
24
- }
25
- };
26
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
27
- step((generator = generator.apply(__this, __arguments)).next());
28
- });
29
- };
30
10
  const CDN_VERSION = "2020-12";
31
11
  const DEFAULT_STORE_SETTINGS = {
32
12
  store_currency: {
@@ -44,27 +24,27 @@ function cacheRequest(cacheKey, request2) {
44
24
  }
45
25
  return promiseCache.get(cacheKey);
46
26
  }
47
- const getProduct = (externalProductId) => __async(void 0, null, function* () {
27
+ const getProduct = async (externalProductId) => {
48
28
  const opts = options.getOptions();
49
- const { product } = yield cacheRequest(`product.${externalProductId}`, () => request.request("get", `${api.RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}/product/${CDN_VERSION}/${externalProductId}.json`));
29
+ const { product } = await cacheRequest(`product.${externalProductId}`, () => request.request("get", `${api.RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}/product/${CDN_VERSION}/${externalProductId}.json`));
50
30
  return cdn.productMapper(product);
51
- });
52
- const getStoreSettings = () => __async(void 0, null, function* () {
31
+ };
32
+ const getStoreSettings = async () => {
53
33
  const opts = options.getOptions();
54
- const storeSettings = yield cacheRequest("storeSettings", () => request.request("get", `${api.RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}/${CDN_VERSION}/store_settings.json`).catch(() => {
34
+ const storeSettings = await cacheRequest("storeSettings", () => request.request("get", `${api.RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}/${CDN_VERSION}/store_settings.json`).catch(() => {
55
35
  return DEFAULT_STORE_SETTINGS;
56
36
  }));
57
37
  return storeSettings;
58
- });
59
- const getWidgetSettings = () => __async(void 0, null, function* () {
38
+ };
39
+ const getWidgetSettings = async () => {
60
40
  const opts = options.getOptions();
61
- const { widget_settings } = yield cacheRequest("widgetSettings", () => request.request("get", `${api.RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}/${CDN_VERSION}/widget_settings.json`));
41
+ const { widget_settings } = await cacheRequest("widgetSettings", () => request.request("get", `${api.RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}/${CDN_VERSION}/widget_settings.json`));
62
42
  const widgetSettings = cdn.widgetSettingsMapper(widget_settings);
63
43
  return widgetSettings;
64
- });
65
- const getProductsAndSettings = () => __async(void 0, null, function* () {
44
+ };
45
+ const getProductsAndSettings = async () => {
66
46
  const opts = options.getOptions();
67
- const { products, widget_settings, store_settings, meta } = yield cacheRequest("productsAndSettings", () => request.request("get", `${api.RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}/product/${CDN_VERSION}/products.json`));
47
+ const { products, widget_settings, store_settings, meta } = await cacheRequest("productsAndSettings", () => request.request("get", `${api.RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}/product/${CDN_VERSION}/products.json`));
68
48
  if ((meta == null ? void 0 : meta.status) === "error") {
69
49
  return Promise.reject(meta.message);
70
50
  }
@@ -73,13 +53,13 @@ const getProductsAndSettings = () => __async(void 0, null, function* () {
73
53
  widget_settings: cdn.widgetSettingsMapper(widget_settings),
74
54
  store_settings
75
55
  };
76
- });
77
- const getProducts = () => __async(void 0, null, function* () {
78
- const { products } = yield getProductsAndSettings();
56
+ };
57
+ const getProducts = async () => {
58
+ const { products } = await getProductsAndSettings();
79
59
  return products;
80
- });
81
- const getProductAndSettings = (externalProductId) => __async(void 0, null, function* () {
82
- const [product, store_settings, widget_settings] = yield Promise.all([
60
+ };
61
+ const getProductAndSettings = async (externalProductId) => {
62
+ const [product, store_settings, widget_settings] = await Promise.all([
83
63
  getProduct(externalProductId),
84
64
  getStoreSettings(),
85
65
  getWidgetSettings()
@@ -91,11 +71,11 @@ const getProductAndSettings = (externalProductId) => __async(void 0, null, funct
91
71
  storeSettings: store_settings,
92
72
  widgetSettings: widget_settings
93
73
  };
94
- });
95
- const getBundleSettings = (externalProductId) => __async(void 0, null, function* () {
96
- const { bundle_product } = yield getProduct(externalProductId);
74
+ };
75
+ const getBundleSettings = async (externalProductId) => {
76
+ const { bundle_product } = await getProduct(externalProductId);
97
77
  return bundle_product;
98
- });
78
+ };
99
79
  const resetCache = () => Array.from(promiseCache.keys()).forEach((key) => promiseCache.delete(key));
100
80
 
101
81
  exports.getBundleSettings = getBundleSettings;
@@ -1 +1 @@
1
- {"version":3,"file":"cdn.js","sources":["../../../src/api/cdn.ts"],"sourcesContent":["import { RECHARGE_CDN_URL } from '../constants/api';\nimport {\n CDNWidgetSettings,\n CDNStoreSettings,\n CDNWidgetSettingsResource,\n CDNProductsAndSettings,\n CDNProductResource,\n CDNProduct,\n CDNProductAndSettings,\n CDNProductsAndSettingsResource,\n CDNBundleSettings,\n CDNProductKeyObject,\n} from '../types';\nimport { productArrayMapper, productMapper, widgetSettingsMapper } from '../mappers/cdn';\nimport { request } from '../utils/request';\nimport { getOptions } from '../utils/options';\n\nconst 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 const getProduct = async (externalProductId: string | number): Promise<CDNProduct> => {\n const opts = getOptions();\n const { product } = await cacheRequest(`product.${externalProductId}`, () =>\n request<CDNProductResource>(\n 'get',\n `${RECHARGE_CDN_URL(opts.environment)}/store/${\n opts.storeIdentifier\n }/product/${CDN_VERSION}/${externalProductId}.json`\n )\n );\n\n return productMapper(product);\n};\n\nexport const getStoreSettings = async (): Promise<CDNStoreSettings> => {\n const opts = getOptions();\n const storeSettings = await cacheRequest('storeSettings', () =>\n request<CDNStoreSettings>(\n 'get',\n `${RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}/${CDN_VERSION}/store_settings.json`\n ).catch(() => {\n return DEFAULT_STORE_SETTINGS;\n })\n );\n return storeSettings;\n};\n\nexport const getWidgetSettings = async (): Promise<CDNWidgetSettings> => {\n const opts = getOptions();\n const { widget_settings } = await cacheRequest('widgetSettings', () =>\n request<CDNWidgetSettingsResource>(\n 'get',\n `${RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}/${CDN_VERSION}/widget_settings.json`\n )\n );\n\n const widgetSettings = widgetSettingsMapper(widget_settings);\n\n return widgetSettings;\n};\n\nexport const getProductsAndSettings = async (): Promise<CDNProductsAndSettings> => {\n const opts = getOptions();\n const { products, widget_settings, store_settings, meta } = await cacheRequest('productsAndSettings', () =>\n request<CDNProductsAndSettingsResource>(\n 'get',\n `${RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}/product/${CDN_VERSION}/products.json`\n )\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,\n };\n};\n\nexport const getProducts = async (): Promise<CDNProductKeyObject[]> => {\n const { products } = await getProductsAndSettings();\n return products;\n};\n\nexport const getProductAndSettings = async (externalProductId: string | number): Promise<CDNProductAndSettings> => {\n const [product, store_settings, widget_settings] = await Promise.all([\n getProduct(externalProductId),\n getStoreSettings(),\n getWidgetSettings(),\n ]);\n\n return {\n product,\n store_settings,\n widget_settings,\n storeSettings: store_settings,\n widgetSettings: widget_settings,\n };\n};\n\nexport const getBundleSettings = async (\n externalProductId: string | number\n): Promise<CDNBundleSettings | null | undefined> => {\n const { bundle_product } = await getProduct(externalProductId);\n\n return bundle_product;\n};\n\nexport const resetCache = () => Array.from(promiseCache.keys()).forEach(key => promiseCache.delete(key));\n"],"names":["getOptions","request","RECHARGE_CDN_URL","productMapper","widgetSettingsMapper","productArrayMapper"],"mappings":"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"}
1
+ {"version":3,"file":"cdn.js","sources":["../../../src/api/cdn.ts"],"sourcesContent":["import { RECHARGE_CDN_URL } from '../constants/api';\nimport {\n CDNWidgetSettings,\n CDNStoreSettings,\n CDNWidgetSettingsResource,\n CDNProductsAndSettings,\n CDNProductResource,\n CDNProduct,\n CDNProductAndSettings,\n CDNProductsAndSettingsResource,\n CDNBundleSettings,\n CDNProductKeyObject,\n} from '../types';\nimport { productArrayMapper, productMapper, widgetSettingsMapper } from '../mappers/cdn';\nimport { request } from '../utils/request';\nimport { getOptions } from '../utils/options';\n\nconst 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 const getProduct = async (externalProductId: string | number): Promise<CDNProduct> => {\n const opts = getOptions();\n const { product } = await cacheRequest(`product.${externalProductId}`, () =>\n request<CDNProductResource>(\n 'get',\n `${RECHARGE_CDN_URL(opts.environment)}/store/${\n opts.storeIdentifier\n }/product/${CDN_VERSION}/${externalProductId}.json`\n )\n );\n\n return productMapper(product);\n};\n\nexport const getStoreSettings = async (): Promise<CDNStoreSettings> => {\n const opts = getOptions();\n const storeSettings = await cacheRequest('storeSettings', () =>\n request<CDNStoreSettings>(\n 'get',\n `${RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}/${CDN_VERSION}/store_settings.json`\n ).catch(() => {\n return DEFAULT_STORE_SETTINGS;\n })\n );\n return storeSettings;\n};\n\nexport const getWidgetSettings = async (): Promise<CDNWidgetSettings> => {\n const opts = getOptions();\n const { widget_settings } = await cacheRequest('widgetSettings', () =>\n request<CDNWidgetSettingsResource>(\n 'get',\n `${RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}/${CDN_VERSION}/widget_settings.json`\n )\n );\n\n const widgetSettings = widgetSettingsMapper(widget_settings);\n\n return widgetSettings;\n};\n\nexport const getProductsAndSettings = async (): Promise<CDNProductsAndSettings> => {\n const opts = getOptions();\n const { products, widget_settings, store_settings, meta } = await cacheRequest('productsAndSettings', () =>\n request<CDNProductsAndSettingsResource>(\n 'get',\n `${RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}/product/${CDN_VERSION}/products.json`\n )\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,\n };\n};\n\nexport const getProducts = async (): Promise<CDNProductKeyObject[]> => {\n const { products } = await getProductsAndSettings();\n return products;\n};\n\nexport const getProductAndSettings = async (externalProductId: string | number): Promise<CDNProductAndSettings> => {\n const [product, store_settings, widget_settings] = await Promise.all([\n getProduct(externalProductId),\n getStoreSettings(),\n getWidgetSettings(),\n ]);\n\n return {\n product,\n store_settings,\n widget_settings,\n storeSettings: store_settings,\n widgetSettings: widget_settings,\n };\n};\n\nexport const getBundleSettings = async (\n externalProductId: string | number\n): Promise<CDNBundleSettings | null | undefined> => {\n const { bundle_product } = await getProduct(externalProductId);\n\n return bundle_product;\n};\n\nexport const resetCache = () => Array.from(promiseCache.keys()).forEach(key => promiseCache.delete(key));\n"],"names":["getOptions","request","RECHARGE_CDN_URL","productMapper","widgetSettingsMapper","productArrayMapper"],"mappings":"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"}
@@ -28,26 +28,6 @@ var __spreadValues = (a, b) => {
28
28
  }
29
29
  return a;
30
30
  };
31
- var __async = (__this, __arguments, generator) => {
32
- return new Promise((resolve, reject) => {
33
- var fulfilled = (value) => {
34
- try {
35
- step(generator.next(value));
36
- } catch (e) {
37
- reject(e);
38
- }
39
- };
40
- var rejected = (value) => {
41
- try {
42
- step(generator.throw(value));
43
- } catch (e) {
44
- reject(e);
45
- }
46
- };
47
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
48
- step((generator = generator.apply(__this, __arguments)).next());
49
- });
50
- };
51
31
  function stringifyQuery(str) {
52
32
  return qs.stringify(str, {
53
33
  encode: false,
@@ -55,40 +35,38 @@ function stringifyQuery(str) {
55
35
  arrayFormat: "comma"
56
36
  });
57
37
  }
58
- function request(_0, _1) {
59
- return __async(this, arguments, function* (method, url, { id, query, data, headers } = {}) {
60
- let reqUrl = url;
61
- if (id) {
62
- reqUrl = [trimEnd__default["default"](url), trimStart__default["default"](id)].join("/");
63
- }
64
- let reqBody;
65
- if (method === "get") {
66
- let exQuery;
67
- [reqUrl, exQuery] = reqUrl.split("?");
68
- const fullQuery = [exQuery, stringifyQuery(query)].join("&").replace(/^&/, "");
69
- reqUrl = `${reqUrl}${fullQuery ? `?${fullQuery}` : ""}`;
38
+ async function request(method, url, { id, query, data, headers } = {}) {
39
+ let reqUrl = url;
40
+ if (id) {
41
+ reqUrl = [trimEnd__default["default"](url), trimStart__default["default"](id)].join("/");
42
+ }
43
+ let reqBody;
44
+ if (method === "get") {
45
+ let exQuery;
46
+ [reqUrl, exQuery] = reqUrl.split("?");
47
+ const fullQuery = [exQuery, stringifyQuery(query)].join("&").replace(/^&/, "");
48
+ reqUrl = `${reqUrl}${fullQuery ? `?${fullQuery}` : ""}`;
49
+ } else {
50
+ reqBody = JSON.stringify(data);
51
+ }
52
+ const reqHeaders = __spreadValues({
53
+ Accept: "application/json"
54
+ }, headers ? headers : {});
55
+ const response = await fetch(reqUrl, {
56
+ method,
57
+ headers: reqHeaders,
58
+ body: reqBody,
59
+ mode: "cors"
60
+ });
61
+ const result = await response.json();
62
+ if (!response.ok) {
63
+ if (result && result.error) {
64
+ throw new Error(`${response.status}: ${result.error}`);
70
65
  } else {
71
- reqBody = JSON.stringify(data);
72
- }
73
- const reqHeaders = __spreadValues({
74
- Accept: "application/json"
75
- }, headers ? headers : {});
76
- const response = yield fetch(reqUrl, {
77
- method,
78
- headers: reqHeaders,
79
- body: reqBody,
80
- mode: "cors"
81
- });
82
- const result = yield response.json();
83
- if (!response.ok) {
84
- if (result && result.error) {
85
- throw new Error(`${response.status}: ${result.error}`);
86
- } else {
87
- throw new Error("A connection error occurred while making the request");
88
- }
66
+ throw new Error("A connection error occurred while making the request");
89
67
  }
90
- return result;
91
- });
68
+ }
69
+ return result;
92
70
  }
93
71
 
94
72
  exports.request = request;
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sources":["../../../src/utils/request.ts"],"sourcesContent":["import 'isomorphic-fetch';\n\nimport { stringify } from 'qs';\nimport trimStart from 'lodash/trimStart';\nimport trimEnd from 'lodash/trimEnd';\n\nimport { Method, RequestHeaders, RequestOptions } from '../types';\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 request<T>(\n method: Method,\n url: string,\n { id, query, data, headers }: RequestOptions = {}\n): Promise<T> {\n let reqUrl = url;\n\n if (id) {\n reqUrl = [trimEnd(url), trimStart(id as string)].join('/');\n }\n\n let reqBody;\n if (method === 'get') {\n let exQuery;\n [reqUrl, exQuery] = reqUrl.split('?');\n const fullQuery = [exQuery, stringifyQuery(query)].join('&').replace(/^&/, '');\n reqUrl = `${reqUrl}${fullQuery ? `?${fullQuery}` : ''}`;\n } else {\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 const result = await response.json();\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":["stringify","trimEnd","trimStart"],"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';\nimport trimStart from 'lodash/trimStart';\nimport trimEnd from 'lodash/trimEnd';\n\nimport { Method, RequestHeaders, RequestOptions } from '../types';\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 request<T>(\n method: Method,\n url: string,\n { id, query, data, headers }: RequestOptions = {}\n): Promise<T> {\n let reqUrl = url;\n\n if (id) {\n reqUrl = [trimEnd(url), trimStart(id as string)].join('/');\n }\n\n let reqBody;\n if (method === 'get') {\n let exQuery;\n [reqUrl, exQuery] = reqUrl.split('?');\n const fullQuery = [exQuery, stringifyQuery(query)].join('&').replace(/^&/, '');\n reqUrl = `${reqUrl}${fullQuery ? `?${fullQuery}` : ''}`;\n } else {\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 const result = await response.json();\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":["stringify","trimEnd","trimStart"],"mappings":"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"}
@@ -3,51 +3,30 @@ import { request } from '../utils/request.js';
3
3
  import { getOptions } from '../utils/options.js';
4
4
  import { getBundleSettings } from './cdn.js';
5
5
 
6
- var __async = (__this, __arguments, generator) => {
7
- return new Promise((resolve, reject) => {
8
- var fulfilled = (value) => {
9
- try {
10
- step(generator.next(value));
11
- } catch (e) {
12
- reject(e);
13
- }
14
- };
15
- var rejected = (value) => {
16
- try {
17
- step(generator.throw(value));
18
- } catch (e) {
19
- reject(e);
20
- }
21
- };
22
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
23
- step((generator = generator.apply(__this, __arguments)).next());
24
- });
25
- };
26
- const STORE_FRONT_MANAGER_URL = "https://us-east4-recharge-prod-services-f818.cloudfunctions.net/bundling-storefront-manager";
6
+ const STORE_FRONT_MANAGER_URL = "/tools/recurring/bundling-storefront-manager";
27
7
  function getTimestampSecondsFromClient() {
28
8
  return Math.ceil(Date.now() / 1e3);
29
9
  }
30
- function getTimestampSecondsFromServer(request2) {
31
- return __async(this, null, function* () {
32
- const url = `${STORE_FRONT_MANAGER_URL}/t`;
33
- try {
34
- const { timestamp } = yield request2("get", url, {
35
- headers: { "X-Recharge-App": "storefront-client" }
36
- });
37
- return timestamp;
38
- } catch (ex) {
39
- console.error(`Fetch failed: ${ex}. Using client-side date.`);
40
- return getTimestampSecondsFromClient();
41
- }
42
- });
10
+ async function getTimestampSecondsFromServer(request2) {
11
+ const opts = getOptions();
12
+ const url = `https://${opts.storeIdentifier}${STORE_FRONT_MANAGER_URL}/t`;
13
+ try {
14
+ const { timestamp } = await request2("get", url, {
15
+ headers: { "X-Recharge-App": "storefront-client" }
16
+ });
17
+ return timestamp;
18
+ } catch (ex) {
19
+ console.error(`Fetch failed: ${ex}. Using client-side date.`);
20
+ return getTimestampSecondsFromClient();
21
+ }
43
22
  }
44
- const getBundleId = (bundle) => __async(void 0, null, function* () {
23
+ const getBundleId = async (bundle) => {
45
24
  const opts = getOptions();
46
- const isValid = yield validateBundle(bundle);
25
+ const isValid = await validateBundle(bundle);
47
26
  if (!isValid) {
48
27
  throw new Error("Bundle selection is invalid.");
49
28
  }
50
- const timestampSeconds = yield getTimestampSecondsFromServer(request);
29
+ const timestampSeconds = await getTimestampSecondsFromServer(request);
51
30
  const bundleData = toLineItemProperty({
52
31
  variantId: bundle.externalVariantId,
53
32
  version: timestampSeconds,
@@ -62,8 +41,8 @@ const getBundleId = (bundle) => __async(void 0, null, function* () {
62
41
  })
63
42
  });
64
43
  try {
65
- const STORE_FRONT_BUNDLE_URL = `${STORE_FRONT_MANAGER_URL}/api/v1/bundles`;
66
- const payload = yield request("post", STORE_FRONT_BUNDLE_URL, {
44
+ const STORE_FRONT_BUNDLE_URL = `https://${opts.storeIdentifier}${STORE_FRONT_MANAGER_URL}/api/v1/bundles`;
45
+ const payload = await request("post", STORE_FRONT_BUNDLE_URL, {
67
46
  data: {
68
47
  bundle: bundleData
69
48
  },
@@ -80,16 +59,16 @@ const getBundleId = (bundle) => __async(void 0, null, function* () {
80
59
  } catch (e) {
81
60
  throw new Error(`2: failed generating rb_id ${e}`);
82
61
  }
83
- });
84
- const validateBundle = (bundle) => __async(void 0, null, function* () {
62
+ };
63
+ const validateBundle = async (bundle) => {
85
64
  try {
86
- const bundleSettings = yield getBundleSettings(bundle.externalProductId);
65
+ const bundleSettings = await getBundleSettings(bundle.externalProductId);
87
66
  return !!bundle && !!bundleSettings;
88
67
  } catch (e) {
89
68
  console.error("Error fetching bundle settings");
90
69
  return false;
91
70
  }
92
- });
71
+ };
93
72
 
94
73
  export { getBundleId, validateBundle };
95
74
  //# sourceMappingURL=bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.js","sources":["../../../src/api/bundle.ts"],"sourcesContent":["import { toLineItemProperty } from '@recharge-packages/bundling-data';\nimport { Request, Bundle } from '../types';\nimport { request } from '../utils/request';\nimport { getOptions } from '../utils/options';\nimport { getBundleSettings } from './cdn';\n\nconst STORE_FRONT_MANAGER_URL = process.env.BUNDLING_STOREFRONT_URL;\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(request: Request): 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 const url = `${STORE_FRONT_MANAGER_URL}/t`;\n\n try {\n const { timestamp } = await request<{ timestamp: number }>('get', url, {\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 const getBundleId = async (bundle: Bundle): Promise<string> => {\n const opts = getOptions();\n const isValid = await validateBundle(bundle);\n if (!isValid) {\n throw new Error('Bundle selection is invalid.');\n }\n const timestampSeconds = await getTimestampSecondsFromServer(request);\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 STORE_FRONT_BUNDLE_URL = `${STORE_FRONT_MANAGER_URL}/api/v1/bundles`;\n const payload = await request<{ id: string; code: number; message: string }>('post', STORE_FRONT_BUNDLE_URL, {\n data: {\n bundle: bundleData,\n },\n headers: {\n 'Content-Type': 'application/json',\n Origin: `https://${opts.storeIdentifier}`,\n 'X-Recharge-App': 'storefront-client',\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 const validateBundle = async (bundle: Bundle): Promise<boolean> => {\n try {\n const bundleSettings = await getBundleSettings(bundle.externalProductId);\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 return !!bundle && !!bundleSettings;\n } catch (e) {\n console.error('Error fetching bundle settings');\n return false;\n }\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bundle.js","sources":["../../../src/api/bundle.ts"],"sourcesContent":["import { toLineItemProperty } from '@recharge-packages/bundling-data';\nimport { Request, Bundle } from '../types';\nimport { request } from '../utils/request';\nimport { getOptions } from '../utils/options';\nimport { getBundleSettings } from './cdn';\n\nconst STORE_FRONT_MANAGER_URL = '/tools/recurring/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(request: Request): Promise<number> {\n const opts = getOptions();\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 const url = `https://${opts.storeIdentifier}${STORE_FRONT_MANAGER_URL}/t`;\n\n try {\n const { timestamp } = await request<{ timestamp: number }>('get', url, {\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 const getBundleId = async (bundle: Bundle): Promise<string> => {\n const opts = getOptions();\n const isValid = await validateBundle(bundle);\n if (!isValid) {\n throw new Error('Bundle selection is invalid.');\n }\n const timestampSeconds = await getTimestampSecondsFromServer(request);\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 STORE_FRONT_BUNDLE_URL = `https://${opts.storeIdentifier}${STORE_FRONT_MANAGER_URL}/api/v1/bundles`;\n const payload = await request<{ id: string; code: number; message: string }>('post', STORE_FRONT_BUNDLE_URL, {\n data: {\n bundle: bundleData,\n },\n headers: {\n 'Content-Type': 'application/json',\n Origin: `https://${opts.storeIdentifier}`,\n 'X-Recharge-App': 'storefront-client',\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 const validateBundle = async (bundle: Bundle): Promise<boolean> => {\n try {\n const bundleSettings = await getBundleSettings(bundle.externalProductId);\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 return !!bundle && !!bundleSettings;\n } catch (e) {\n console.error('Error fetching bundle settings');\n return false;\n }\n};\n"],"names":[],"mappings":"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"}