@liquidcommercedev/rmn-sdk 1.4.6-beta.3 → 1.4.6-beta.4
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.cjs +50 -39
- package/dist/index.esm.js +50 -39
- package/dist/types/enums.d.ts +1 -0
- package/dist/types/modules/element/element.interface.d.ts +17 -9
- package/dist/types/modules/selection/selection.interface.d.ts +2 -2
- package/dist/types/modules/selection/selection.type.d.ts +3 -2
- package/dist/types/rmn-client.d.ts +19 -10
- package/dist/types/types.d.ts +3 -3
- package/package.json +1 -1
- package/umd/liquidcommerce-rmn-sdk.min.js +1 -1
package/dist/index.cjs
CHANGED
@@ -44,6 +44,7 @@ exports.RMN_SPOT_TYPE = void 0;
|
|
44
44
|
exports.RMN_FILTER_PROPERTIES = void 0;
|
45
45
|
(function (RMN_FILTER_PROPERTIES) {
|
46
46
|
RMN_FILTER_PROPERTIES["KEYWORDS"] = "keywords";
|
47
|
+
RMN_FILTER_PROPERTIES["PAGE_LOCATION"] = "pageLocation";
|
47
48
|
RMN_FILTER_PROPERTIES["PARENTCO"] = "parentCo";
|
48
49
|
RMN_FILTER_PROPERTIES["BRAND"] = "brand";
|
49
50
|
RMN_FILTER_PROPERTIES["CATEGORY"] = "category";
|
@@ -17656,40 +17657,32 @@ class LiquidCommerceRmnClient {
|
|
17656
17657
|
*
|
17657
17658
|
* To create a spot html element, use the RmnCreateSpotElement function.
|
17658
17659
|
*
|
17659
|
-
* @param {ISpotSelectionParams}
|
17660
|
+
* @param {ISpotSelectionParams} params - Spots selection parameters.
|
17660
17661
|
*
|
17661
17662
|
* @return {Promise<ISpots>} - The spots response object.
|
17662
17663
|
*/
|
17663
|
-
async spotSelection(
|
17664
|
-
return this.selectionService.spotSelection(
|
17664
|
+
async spotSelection(params) {
|
17665
|
+
return this.selectionService.spotSelection(params);
|
17665
17666
|
}
|
17666
17667
|
/**
|
17667
17668
|
* Injects the spot elements into their provided placement.
|
17668
17669
|
*
|
17669
|
-
* @param {
|
17670
|
-
* @param {IInjectSpotElementConfig} config - The configuration object.
|
17670
|
+
* @param {IInjectSpotElementParams} params - Parameters for injecting spot elements.
|
17671
17671
|
*
|
17672
17672
|
* @return {Promise<void>} - A promise that resolves when the spot elements are injected.
|
17673
17673
|
*/
|
17674
|
-
async injectSpotElement(
|
17675
|
-
|
17676
|
-
|
17674
|
+
async injectSpotElement(params) {
|
17675
|
+
var _a;
|
17676
|
+
const { inject, config } = params;
|
17677
|
+
if (!inject.length) {
|
17678
|
+
console.warn('RmnSdk: Failed to inject spot element. Please provide at least one spot element to inject.');
|
17677
17679
|
return;
|
17678
17680
|
}
|
17679
|
-
|
17680
|
-
|
17681
|
-
|
17682
|
-
|
17683
|
-
|
17684
|
-
});
|
17685
|
-
});
|
17686
|
-
const response = await this.spotSelection({
|
17687
|
-
spots: spotSelectionRequest,
|
17688
|
-
url: config === null || config === void 0 ? void 0 : config.url,
|
17689
|
-
});
|
17690
|
-
const normalizedData = this.normalizeDataSpotType(data);
|
17691
|
-
for (const item of normalizedData) {
|
17692
|
-
const spots = response[item.spotType];
|
17681
|
+
this.preventDuplicateSpotPlacementIds(inject);
|
17682
|
+
const response = await this.spotSelectionRequest(params);
|
17683
|
+
for (const item of inject) {
|
17684
|
+
const itemConfig = (_a = item.config) !== null && _a !== void 0 ? _a : config;
|
17685
|
+
const spots = response[item.placementId];
|
17693
17686
|
if (!(spots === null || spots === void 0 ? void 0 : spots.length)) {
|
17694
17687
|
console.warn(`RmnSdk: Failed to inject spot element. No spots found for type "${item.spotType}".`);
|
17695
17688
|
continue;
|
@@ -17701,13 +17694,34 @@ class LiquidCommerceRmnClient {
|
|
17701
17694
|
continue;
|
17702
17695
|
}
|
17703
17696
|
if (spots.length === 1) {
|
17704
|
-
this.injectOneSpotElement(item, placement, spots[0],
|
17697
|
+
this.injectOneSpotElement(item, placement, spots[0], itemConfig);
|
17705
17698
|
}
|
17706
17699
|
if (spots.length > 1) {
|
17707
|
-
this.injectCarouselSpotElement(placement, spots,
|
17700
|
+
this.injectCarouselSpotElement(placement, spots, itemConfig);
|
17708
17701
|
}
|
17709
17702
|
}
|
17710
17703
|
}
|
17704
|
+
/**
|
17705
|
+
* Makes a selection request on our server based on the provided data.
|
17706
|
+
*
|
17707
|
+
* @param {IInjectSpotElementParams} params - Parameters for injecting spot elements.
|
17708
|
+
*
|
17709
|
+
* @return {Promise<ISpots>} - The spots response object.
|
17710
|
+
*/
|
17711
|
+
async spotSelectionRequest(params) {
|
17712
|
+
const { inject, filter, config } = params;
|
17713
|
+
const request = {
|
17714
|
+
url: config === null || config === void 0 ? void 0 : config.url,
|
17715
|
+
filter,
|
17716
|
+
spots: inject.map((item) => ({
|
17717
|
+
placementId: item.placementId,
|
17718
|
+
spot: item.spotType,
|
17719
|
+
count: item === null || item === void 0 ? void 0 : item.count,
|
17720
|
+
...item === null || item === void 0 ? void 0 : item.filter,
|
17721
|
+
})),
|
17722
|
+
};
|
17723
|
+
return this.spotSelection(request);
|
17724
|
+
}
|
17711
17725
|
/**
|
17712
17726
|
* Injects a carousel element with the provided spots into the placement.
|
17713
17727
|
*
|
@@ -17781,25 +17795,22 @@ class LiquidCommerceRmnClient {
|
|
17781
17795
|
placement.replaceChildren(spotElement);
|
17782
17796
|
}
|
17783
17797
|
/**
|
17784
|
-
*
|
17798
|
+
* Prevents duplicate placement ids in the inject data.
|
17799
|
+
*
|
17800
|
+
* @param {IInjectSpotElement[]} inject - The inject data.
|
17785
17801
|
*
|
17786
|
-
* @
|
17802
|
+
* @throws {Error} - If a duplicate placement id is found.
|
17787
17803
|
*
|
17788
|
-
* @return {
|
17804
|
+
* @return {void}
|
17789
17805
|
*/
|
17790
|
-
|
17791
|
-
const
|
17792
|
-
|
17793
|
-
|
17794
|
-
|
17795
|
-
if (spotTypeCounts[spotType] === 1) {
|
17796
|
-
return spot;
|
17806
|
+
preventDuplicateSpotPlacementIds(inject) {
|
17807
|
+
const placementIds = new Set();
|
17808
|
+
for (const item of inject) {
|
17809
|
+
if (placementIds.has(item.placementId)) {
|
17810
|
+
throw new Error(`RmnSdk: Duplicate placement id (${item.placementId}) found. Please provide a unique placement id for each spot element.`);
|
17797
17811
|
}
|
17798
|
-
|
17799
|
-
|
17800
|
-
spotType: `${spotType}${spotTypeCounts[spotType]}`,
|
17801
|
-
};
|
17802
|
-
});
|
17812
|
+
placementIds.add(item.placementId);
|
17813
|
+
}
|
17803
17814
|
}
|
17804
17815
|
}
|
17805
17816
|
/**
|
package/dist/index.esm.js
CHANGED
@@ -42,6 +42,7 @@ var RMN_SPOT_TYPE;
|
|
42
42
|
var RMN_FILTER_PROPERTIES;
|
43
43
|
(function (RMN_FILTER_PROPERTIES) {
|
44
44
|
RMN_FILTER_PROPERTIES["KEYWORDS"] = "keywords";
|
45
|
+
RMN_FILTER_PROPERTIES["PAGE_LOCATION"] = "pageLocation";
|
45
46
|
RMN_FILTER_PROPERTIES["PARENTCO"] = "parentCo";
|
46
47
|
RMN_FILTER_PROPERTIES["BRAND"] = "brand";
|
47
48
|
RMN_FILTER_PROPERTIES["CATEGORY"] = "category";
|
@@ -17654,40 +17655,32 @@ class LiquidCommerceRmnClient {
|
|
17654
17655
|
*
|
17655
17656
|
* To create a spot html element, use the RmnCreateSpotElement function.
|
17656
17657
|
*
|
17657
|
-
* @param {ISpotSelectionParams}
|
17658
|
+
* @param {ISpotSelectionParams} params - Spots selection parameters.
|
17658
17659
|
*
|
17659
17660
|
* @return {Promise<ISpots>} - The spots response object.
|
17660
17661
|
*/
|
17661
|
-
async spotSelection(
|
17662
|
-
return this.selectionService.spotSelection(
|
17662
|
+
async spotSelection(params) {
|
17663
|
+
return this.selectionService.spotSelection(params);
|
17663
17664
|
}
|
17664
17665
|
/**
|
17665
17666
|
* Injects the spot elements into their provided placement.
|
17666
17667
|
*
|
17667
|
-
* @param {
|
17668
|
-
* @param {IInjectSpotElementConfig} config - The configuration object.
|
17668
|
+
* @param {IInjectSpotElementParams} params - Parameters for injecting spot elements.
|
17669
17669
|
*
|
17670
17670
|
* @return {Promise<void>} - A promise that resolves when the spot elements are injected.
|
17671
17671
|
*/
|
17672
|
-
async injectSpotElement(
|
17673
|
-
|
17674
|
-
|
17672
|
+
async injectSpotElement(params) {
|
17673
|
+
var _a;
|
17674
|
+
const { inject, config } = params;
|
17675
|
+
if (!inject.length) {
|
17676
|
+
console.warn('RmnSdk: Failed to inject spot element. Please provide at least one spot element to inject.');
|
17675
17677
|
return;
|
17676
17678
|
}
|
17677
|
-
|
17678
|
-
|
17679
|
-
|
17680
|
-
|
17681
|
-
|
17682
|
-
});
|
17683
|
-
});
|
17684
|
-
const response = await this.spotSelection({
|
17685
|
-
spots: spotSelectionRequest,
|
17686
|
-
url: config === null || config === void 0 ? void 0 : config.url,
|
17687
|
-
});
|
17688
|
-
const normalizedData = this.normalizeDataSpotType(data);
|
17689
|
-
for (const item of normalizedData) {
|
17690
|
-
const spots = response[item.spotType];
|
17679
|
+
this.preventDuplicateSpotPlacementIds(inject);
|
17680
|
+
const response = await this.spotSelectionRequest(params);
|
17681
|
+
for (const item of inject) {
|
17682
|
+
const itemConfig = (_a = item.config) !== null && _a !== void 0 ? _a : config;
|
17683
|
+
const spots = response[item.placementId];
|
17691
17684
|
if (!(spots === null || spots === void 0 ? void 0 : spots.length)) {
|
17692
17685
|
console.warn(`RmnSdk: Failed to inject spot element. No spots found for type "${item.spotType}".`);
|
17693
17686
|
continue;
|
@@ -17699,13 +17692,34 @@ class LiquidCommerceRmnClient {
|
|
17699
17692
|
continue;
|
17700
17693
|
}
|
17701
17694
|
if (spots.length === 1) {
|
17702
|
-
this.injectOneSpotElement(item, placement, spots[0],
|
17695
|
+
this.injectOneSpotElement(item, placement, spots[0], itemConfig);
|
17703
17696
|
}
|
17704
17697
|
if (spots.length > 1) {
|
17705
|
-
this.injectCarouselSpotElement(placement, spots,
|
17698
|
+
this.injectCarouselSpotElement(placement, spots, itemConfig);
|
17706
17699
|
}
|
17707
17700
|
}
|
17708
17701
|
}
|
17702
|
+
/**
|
17703
|
+
* Makes a selection request on our server based on the provided data.
|
17704
|
+
*
|
17705
|
+
* @param {IInjectSpotElementParams} params - Parameters for injecting spot elements.
|
17706
|
+
*
|
17707
|
+
* @return {Promise<ISpots>} - The spots response object.
|
17708
|
+
*/
|
17709
|
+
async spotSelectionRequest(params) {
|
17710
|
+
const { inject, filter, config } = params;
|
17711
|
+
const request = {
|
17712
|
+
url: config === null || config === void 0 ? void 0 : config.url,
|
17713
|
+
filter,
|
17714
|
+
spots: inject.map((item) => ({
|
17715
|
+
placementId: item.placementId,
|
17716
|
+
spot: item.spotType,
|
17717
|
+
count: item === null || item === void 0 ? void 0 : item.count,
|
17718
|
+
...item === null || item === void 0 ? void 0 : item.filter,
|
17719
|
+
})),
|
17720
|
+
};
|
17721
|
+
return this.spotSelection(request);
|
17722
|
+
}
|
17709
17723
|
/**
|
17710
17724
|
* Injects a carousel element with the provided spots into the placement.
|
17711
17725
|
*
|
@@ -17779,25 +17793,22 @@ class LiquidCommerceRmnClient {
|
|
17779
17793
|
placement.replaceChildren(spotElement);
|
17780
17794
|
}
|
17781
17795
|
/**
|
17782
|
-
*
|
17796
|
+
* Prevents duplicate placement ids in the inject data.
|
17797
|
+
*
|
17798
|
+
* @param {IInjectSpotElement[]} inject - The inject data.
|
17783
17799
|
*
|
17784
|
-
* @
|
17800
|
+
* @throws {Error} - If a duplicate placement id is found.
|
17785
17801
|
*
|
17786
|
-
* @return {
|
17802
|
+
* @return {void}
|
17787
17803
|
*/
|
17788
|
-
|
17789
|
-
const
|
17790
|
-
|
17791
|
-
|
17792
|
-
|
17793
|
-
if (spotTypeCounts[spotType] === 1) {
|
17794
|
-
return spot;
|
17804
|
+
preventDuplicateSpotPlacementIds(inject) {
|
17805
|
+
const placementIds = new Set();
|
17806
|
+
for (const item of inject) {
|
17807
|
+
if (placementIds.has(item.placementId)) {
|
17808
|
+
throw new Error(`RmnSdk: Duplicate placement id (${item.placementId}) found. Please provide a unique placement id for each spot element.`);
|
17795
17809
|
}
|
17796
|
-
|
17797
|
-
|
17798
|
-
spotType: `${spotType}${spotTypeCounts[spotType]}`,
|
17799
|
-
};
|
17800
|
-
});
|
17810
|
+
placementIds.add(item.placementId);
|
17811
|
+
}
|
17801
17812
|
}
|
17802
17813
|
}
|
17803
17814
|
/**
|
package/dist/types/enums.d.ts
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import type { RMN_SPOT_TYPE } from 'enums';
|
2
|
-
import type { ICarouselOptions, ICreateCarouselElementParams } from '
|
3
|
-
import type { ICreateSpotElementParams } from '
|
2
|
+
import type { ICarouselOptions, ICreateCarouselElementParams } from 'modules/element/component/carousel';
|
3
|
+
import type { ICreateSpotElementParams } from 'modules/element/component/spot';
|
4
|
+
import type { RmnFilterType } from 'modules/selection';
|
4
5
|
export interface ISpotColors {
|
5
6
|
textColor?: string;
|
6
7
|
backgroundColor?: string;
|
@@ -11,11 +12,6 @@ export interface ISpotOverlay {
|
|
11
12
|
color: string;
|
12
13
|
colorStop: string;
|
13
14
|
}
|
14
|
-
export interface IInjectSpotElement {
|
15
|
-
placementId: string;
|
16
|
-
spotType: RMN_SPOT_TYPE | string;
|
17
|
-
count?: number;
|
18
|
-
}
|
19
15
|
export interface IInjectSpotElementConfig {
|
20
16
|
url?: string;
|
21
17
|
colors?: ISpotColors;
|
@@ -23,15 +19,27 @@ export interface IInjectSpotElementConfig {
|
|
23
19
|
overlay?: ISpotOverlay[];
|
24
20
|
carousel?: ICarouselOptions;
|
25
21
|
}
|
22
|
+
export interface IInjectSpotElement {
|
23
|
+
placementId: string;
|
24
|
+
spotType: RMN_SPOT_TYPE | string;
|
25
|
+
count?: number;
|
26
|
+
config?: Omit<IInjectSpotElementConfig, 'url'>;
|
27
|
+
filter?: Partial<RmnFilterType>;
|
28
|
+
}
|
26
29
|
export interface ICreateElementConfig {
|
27
30
|
width: number;
|
28
31
|
height: number;
|
29
32
|
fluid?: boolean;
|
30
33
|
minScale: number;
|
31
34
|
}
|
35
|
+
export interface IInjectSpotElementParams {
|
36
|
+
inject: IInjectSpotElement[];
|
37
|
+
config?: IInjectSpotElementConfig;
|
38
|
+
filter?: Partial<RmnFilterType>;
|
39
|
+
}
|
32
40
|
export interface IElementService {
|
33
|
-
createSpotElement(
|
34
|
-
createCarouselElement(
|
41
|
+
createSpotElement(params: ICreateSpotElementParams): HTMLElement | null;
|
42
|
+
createCarouselElement(params: ICreateCarouselElementParams): HTMLElement | null;
|
35
43
|
}
|
36
44
|
export interface IRmnCreateSpotElementConfig {
|
37
45
|
fluid?: boolean;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { RMN_SPOT_EVENT, RMN_SPOT_TYPE } from 'enums';
|
2
|
-
import type {
|
2
|
+
import type { PlacementIdType, SpotVariantType } from 'modules/selection';
|
3
3
|
import type { RmnFilterType, RmnSpotType } from 'types';
|
4
4
|
export interface ISpotSelectionParams {
|
5
5
|
url?: string;
|
@@ -30,7 +30,7 @@ export interface ISpot {
|
|
30
30
|
mobileSecondaryImage?: string;
|
31
31
|
productUpcs?: string[];
|
32
32
|
}
|
33
|
-
export type ISpots = Record<
|
33
|
+
export type ISpots = Record<PlacementIdType, ISpot[]>;
|
34
34
|
export interface ISelectionService {
|
35
35
|
spotSelection(data: ISpotSelectionParams): Promise<ISpots>;
|
36
36
|
}
|
@@ -2,12 +2,13 @@ import type { RMN_FILTER_PROPERTIES, RMN_SPOT_TYPE } from 'enums';
|
|
2
2
|
export type RmnFilterType = {
|
3
3
|
[key in RMN_FILTER_PROPERTIES]?: string[];
|
4
4
|
};
|
5
|
+
export type PlacementIdType = RMN_SPOT_TYPE | `${RMN_SPOT_TYPE}${number}` | string;
|
5
6
|
export type SpotFilterType = {
|
7
|
+
placementId?: PlacementIdType;
|
6
8
|
spot: RMN_SPOT_TYPE | string;
|
7
|
-
count
|
9
|
+
count?: number;
|
8
10
|
exactMatch?: string;
|
9
11
|
} & Omit<RmnFilterType, RMN_FILTER_PROPERTIES.KEYWORDS>;
|
10
|
-
export type SpotIdentifierType = RMN_SPOT_TYPE | `${RMN_SPOT_TYPE}${number}`;
|
11
12
|
export type RmnSpotType = RMN_SPOT_TYPE | string | SpotFilterType;
|
12
13
|
type RBSpotTypeKeys = keyof {
|
13
14
|
[K in keyof typeof RMN_SPOT_TYPE as K extends `RB_${string}` ? K : never]: (typeof RMN_SPOT_TYPE)[K];
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { IAuthCredentials } from 'modules/auth';
|
2
|
-
import type {
|
2
|
+
import type { IInjectSpotElementParams, IRmnCreateSpotElementConfig } from 'modules/element';
|
3
3
|
import type { ISpot, ISpots, ISpotSelectionParams } from 'modules/selection';
|
4
4
|
import type { IRmnClient, IRmnConfig } from 'types';
|
5
5
|
export declare class LiquidCommerceRmnClient implements IRmnClient {
|
@@ -11,20 +11,27 @@ export declare class LiquidCommerceRmnClient implements IRmnClient {
|
|
11
11
|
*
|
12
12
|
* To create a spot html element, use the RmnCreateSpotElement function.
|
13
13
|
*
|
14
|
-
* @param {ISpotSelectionParams}
|
14
|
+
* @param {ISpotSelectionParams} params - Spots selection parameters.
|
15
15
|
*
|
16
16
|
* @return {Promise<ISpots>} - The spots response object.
|
17
17
|
*/
|
18
|
-
spotSelection(
|
18
|
+
spotSelection(params: ISpotSelectionParams): Promise<ISpots>;
|
19
19
|
/**
|
20
20
|
* Injects the spot elements into their provided placement.
|
21
21
|
*
|
22
|
-
* @param {
|
23
|
-
* @param {IInjectSpotElementConfig} config - The configuration object.
|
22
|
+
* @param {IInjectSpotElementParams} params - Parameters for injecting spot elements.
|
24
23
|
*
|
25
24
|
* @return {Promise<void>} - A promise that resolves when the spot elements are injected.
|
26
25
|
*/
|
27
|
-
injectSpotElement(
|
26
|
+
injectSpotElement(params: IInjectSpotElementParams): Promise<void>;
|
27
|
+
/**
|
28
|
+
* Makes a selection request on our server based on the provided data.
|
29
|
+
*
|
30
|
+
* @param {IInjectSpotElementParams} params - Parameters for injecting spot elements.
|
31
|
+
*
|
32
|
+
* @return {Promise<ISpots>} - The spots response object.
|
33
|
+
*/
|
34
|
+
private spotSelectionRequest;
|
28
35
|
/**
|
29
36
|
* Injects a carousel element with the provided spots into the placement.
|
30
37
|
*
|
@@ -47,13 +54,15 @@ export declare class LiquidCommerceRmnClient implements IRmnClient {
|
|
47
54
|
*/
|
48
55
|
private injectOneSpotElement;
|
49
56
|
/**
|
50
|
-
*
|
57
|
+
* Prevents duplicate placement ids in the inject data.
|
51
58
|
*
|
52
|
-
* @param {IInjectSpotElement[]}
|
59
|
+
* @param {IInjectSpotElement[]} inject - The inject data.
|
53
60
|
*
|
54
|
-
* @
|
61
|
+
* @throws {Error} - If a duplicate placement id is found.
|
62
|
+
*
|
63
|
+
* @return {void}
|
55
64
|
*/
|
56
|
-
private
|
65
|
+
private preventDuplicateSpotPlacementIds;
|
57
66
|
}
|
58
67
|
/**
|
59
68
|
* Creates a new instance of the RmnClient.
|
package/dist/types/types.d.ts
CHANGED
@@ -2,11 +2,11 @@ export type { IInjectSpotElement, IInjectSpotElementConfig, IRmnCreateSpotElemen
|
|
2
2
|
export type { ISpots, RmnFilterType, RmnSpotType } from 'modules/selection';
|
3
3
|
export { ISpot, ISpotEvent, ISpotSelectionParams } from 'modules/selection';
|
4
4
|
import type { RMN_ENV } from 'enums';
|
5
|
-
import type {
|
5
|
+
import type { IInjectSpotElementParams } from 'modules/element';
|
6
6
|
import type { ISpots, ISpotSelectionParams } from 'modules/selection';
|
7
7
|
export interface IRmnClient {
|
8
|
-
spotSelection(
|
9
|
-
injectSpotElement(
|
8
|
+
spotSelection(params: ISpotSelectionParams): Promise<ISpots>;
|
9
|
+
injectSpotElement(params: IInjectSpotElementParams): Promise<void>;
|
10
10
|
}
|
11
11
|
export interface IRmnConfig {
|
12
12
|
env: RMN_ENV;
|
package/package.json
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
"name": "@liquidcommercedev/rmn-sdk",
|
3
3
|
"description": "LiquidCommerce RMN SDK",
|
4
4
|
"author": "LiquidCommerce Tech",
|
5
|
-
"version": "1.4.6-beta.
|
5
|
+
"version": "1.4.6-beta.4",
|
6
6
|
"homepage": "https://docs.liquidcommerce.co/rmn-sdk",
|
7
7
|
"main": "./dist/index.cjs",
|
8
8
|
"module": "./dist/index.esm.js",
|