@liquidcommercedev/rmn-sdk 1.5.0-beta.1 → 1.5.0-beta.10
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.cjs +1192 -407
- package/dist/index.esm.js +1193 -408
- package/dist/types/common/helpers/utils.helper.d.ts +50 -0
- package/dist/types/enums.d.ts +6 -1
- package/dist/types/modules/element/element.interface.d.ts +5 -2
- package/dist/types/modules/event/event.interface.d.ts +6 -32
- package/dist/types/modules/event/event.service.d.ts +7 -22
- package/dist/types/modules/event/index.d.ts +0 -1
- package/dist/types/modules/{event/helpers → helper-service}/index.d.ts +1 -0
- package/dist/types/modules/{event/helpers → helper-service}/intersection.service.d.ts +1 -1
- package/dist/types/modules/helper-service/localstorage.service.d.ts +56 -0
- package/dist/types/modules/{event/pubsub.d.ts → helper-service/pubsub.service.d.ts} +8 -8
- package/dist/types/modules/{event/helpers → helper-service}/resize.service.d.ts +1 -1
- package/dist/types/modules/monitor/index.d.ts +2 -0
- package/dist/types/modules/monitor/monitor.enums.d.ts +4 -0
- package/dist/types/modules/monitor/monitor.interface.d.ts +11 -0
- package/dist/types/modules/monitor/monitor.service.d.ts +12 -0
- package/dist/types/modules/monitor/monitors/datalayer.monitor.d.ts +12 -0
- package/dist/types/modules/selection/selection.interface.d.ts +3 -1
- package/dist/types/rmn-client.d.ts +1 -1
- package/dist/types/types.d.ts +5 -4
- package/package.json +1 -1
- package/umd/liquidcommerce-rmn-sdk.min.js +1 -1
- package/dist/types/modules/element/component/utils.d.ts +0 -1
- package/dist/types/modules/event/helpers/localstorage.service.d.ts +0 -26
- /package/dist/types/{static.constant.d.ts → example.constant.d.ts} +0 -0
@@ -0,0 +1,50 @@
|
|
1
|
+
import { RMN_SPOT_EVENT } from 'enums';
|
2
|
+
import type { IFireEventParams } from 'modules/event';
|
3
|
+
export interface IExtractIdsProps {
|
4
|
+
id?: string | number;
|
5
|
+
upc?: string | number;
|
6
|
+
[key: string]: string | number | undefined;
|
7
|
+
}
|
8
|
+
/**
|
9
|
+
* Determines the event type from a raw event string.
|
10
|
+
*
|
11
|
+
* @param {string} [event] - The raw event string to evaluate.
|
12
|
+
* @returns {RMN_SPOT_EVENT | null} - The corresponding RMN_SPOT_EVENT or null if no match is found.
|
13
|
+
*/
|
14
|
+
export declare function getEventTypeFromRawEvent(event?: string): RMN_SPOT_EVENT | null;
|
15
|
+
/**
|
16
|
+
* Recursively extracts ID values from a nested data structure.
|
17
|
+
* Searches for specified property names and collects their primitive values (strings/numbers).
|
18
|
+
*
|
19
|
+
* @param data - The data structure to search through (can be nested objects/arrays)
|
20
|
+
* @param propertyNames - Array of property names to look for
|
21
|
+
* @returns Array of extracted ID values (strings/numbers only)
|
22
|
+
*
|
23
|
+
* @example
|
24
|
+
* const data = {
|
25
|
+
* id: [1, 2, 3],
|
26
|
+
* nested: { id: 'abc' },
|
27
|
+
* items: [{ id: 456 }]
|
28
|
+
* };
|
29
|
+
* extractDeepIds(data); // Returns [1, 2, 3, 'abc', 456]
|
30
|
+
*/
|
31
|
+
export declare function extractDeepIds(data: any, propertyNames?: string[]): Array<string | number>;
|
32
|
+
export declare function fallbackEventFire(url: string): Promise<boolean>;
|
33
|
+
/**
|
34
|
+
* Extracts and decodes a URL from a base64-encoded query parameter.
|
35
|
+
*
|
36
|
+
* @param {string} url - The URL containing the base64-encoded query parameter.
|
37
|
+
* @returns {string | null} - The decoded URL or null if not found or invalid.
|
38
|
+
*/
|
39
|
+
export declare function getRedirectUrlFromPayload(url: string): string | null;
|
40
|
+
/**
|
41
|
+
* Fires an event using the navigator.sendBeacon method or a fallback method if sendBeacon is not available.
|
42
|
+
* If the event is a click event and a redirect URL is found, it redirects the user to that URL.
|
43
|
+
*
|
44
|
+
* @param {IFireEventParams} params - The parameters for firing the event.
|
45
|
+
* @param {RMN_SPOT_EVENT} params.event - The event type.
|
46
|
+
* @param {string} params.eventUrl - The URL to which the event is sent.
|
47
|
+
* @returns {Promise<void>} - A promise that resolves when the event is fired.
|
48
|
+
*/
|
49
|
+
export declare function fireEvent({ event, eventUrl }: IFireEventParams): Promise<void>;
|
50
|
+
export declare function calculateScaleFactor(elementScale: number): number;
|
package/dist/types/enums.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
export declare enum RMN_SPOT_TYPE {
|
2
|
+
RB_HOMEPAGE_HERO = "rbHomepageHero",
|
2
3
|
RB_HOMEPAGE_HERO_THREE_TILE = "rbHomepageHeroThreeTile",
|
3
4
|
RB_HOMEPAGE_HERO_TWO_TILE = "rbHomepageHeroTwoTile",
|
4
5
|
RB_HOMEPAGE_HERO_FULL_IMAGE = "rbHomepageHeroFullImage",
|
@@ -48,12 +49,16 @@ export declare enum RMN_FILTER_PROPERTIES {
|
|
48
49
|
PUBLISHERS = "publishers",
|
49
50
|
SECTION = "section"
|
50
51
|
}
|
51
|
-
export declare enum
|
52
|
+
export declare enum RMN_EVENT {
|
52
53
|
LIFECYCLE_STATE = "LIFECYCLE_STATE",
|
54
|
+
SPOT_EVENT = "SPOT_EVENT"
|
55
|
+
}
|
56
|
+
export declare enum RMN_SPOT_EVENT {
|
53
57
|
IMPRESSION = "IMPRESSION",
|
54
58
|
CLICK = "CLICK",
|
55
59
|
PURCHASE = "PURCHASE",
|
56
60
|
ADD_TO_CART = "ADD_TO_CART",
|
61
|
+
REMOVE_FROM_CART = "REMOVE_FROM_CART",
|
57
62
|
ADD_TO_WISHLIST = "ADD_TO_WISHLIST",
|
58
63
|
BUY_NOW = "BUY_NOW"
|
59
64
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { RMN_SPOT_TYPE } from 'enums';
|
1
|
+
import type { RMN_FILTER_PROPERTIES, RMN_SPOT_TYPE } from 'enums';
|
2
2
|
import type { ICarouselOptions, ICreateCarouselElementParams } from 'modules/element/component/carousel';
|
3
3
|
import type { ICreateSpotElementParams } from 'modules/element/component/spot';
|
4
4
|
import type { RmnFilterType } from 'modules/selection';
|
@@ -21,12 +21,15 @@ export interface IInjectSpotElementConfig {
|
|
21
21
|
overlay?: ISpotOverlay;
|
22
22
|
carousel?: ICarouselOptions;
|
23
23
|
}
|
24
|
+
export type IInjectSpotElementFilterType = Partial<Omit<RmnFilterType, RMN_FILTER_PROPERTIES.KEYWORDS> & {
|
25
|
+
exactMatch?: string;
|
26
|
+
}>;
|
24
27
|
export interface IInjectSpotElement {
|
25
28
|
placementId: string;
|
26
29
|
spotType: RMN_SPOT_TYPE | string;
|
27
30
|
count?: number;
|
28
31
|
config?: Omit<IInjectSpotElementConfig, 'url'>;
|
29
|
-
filter?:
|
32
|
+
filter?: IInjectSpotElementFilterType;
|
30
33
|
}
|
31
34
|
export interface ICreateElementConfig {
|
32
35
|
spot?: RMN_SPOT_TYPE;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { RMN_SPOT_EVENT } from 'enums';
|
1
|
+
import type { RMN_EVENT, RMN_SPOT_EVENT } from 'enums';
|
2
2
|
import type { ISpot } from '../selection';
|
3
3
|
export interface IFireEventParams {
|
4
4
|
event: RMN_SPOT_EVENT;
|
@@ -30,40 +30,14 @@ export interface ILifecycleState {
|
|
30
30
|
state?: Partial<ILSState>;
|
31
31
|
displayConfig?: Partial<ILSDisplayConfig>;
|
32
32
|
}
|
33
|
-
export interface
|
34
|
-
|
35
|
-
spotId: string;
|
36
|
-
spotElement: HTMLElement;
|
37
|
-
}
|
38
|
-
export interface IImpressionEvent {
|
39
|
-
placementId: string;
|
40
|
-
spotId: string;
|
41
|
-
spotElement: HTMLElement;
|
42
|
-
}
|
43
|
-
export interface IAddToCartEvent {
|
44
|
-
placementId: string;
|
45
|
-
spotId: string;
|
46
|
-
}
|
47
|
-
export interface IAddToWishlistEvent {
|
48
|
-
placementId: string;
|
49
|
-
spotId: string;
|
50
|
-
}
|
51
|
-
export interface IPurchaseEvent {
|
52
|
-
placementId: string;
|
53
|
-
spotId: string;
|
54
|
-
}
|
55
|
-
export interface IBuyNowEvent {
|
33
|
+
export interface IRmnSpotEvent {
|
34
|
+
eventType: RMN_SPOT_EVENT;
|
56
35
|
placementId: string;
|
57
36
|
spotId: string;
|
58
37
|
}
|
59
|
-
export interface
|
60
|
-
[
|
61
|
-
[
|
62
|
-
[RMN_SPOT_EVENT.IMPRESSION]: IImpressionEvent;
|
63
|
-
[RMN_SPOT_EVENT.ADD_TO_CART]: IAddToCartEvent;
|
64
|
-
[RMN_SPOT_EVENT.ADD_TO_WISHLIST]: IAddToWishlistEvent;
|
65
|
-
[RMN_SPOT_EVENT.PURCHASE]: IPurchaseEvent;
|
66
|
-
[RMN_SPOT_EVENT.BUY_NOW]: IBuyNowEvent;
|
38
|
+
export interface IRmnEventMap {
|
39
|
+
[RMN_EVENT.LIFECYCLE_STATE]: ILifecycleState;
|
40
|
+
[RMN_EVENT.SPOT_EVENT]: IRmnSpotEvent;
|
67
41
|
}
|
68
42
|
export interface IRegisterSpotParams {
|
69
43
|
placementId: string;
|
@@ -1,16 +1,16 @@
|
|
1
|
-
import {
|
2
|
-
import type {
|
1
|
+
import { RMN_EVENT } from 'enums';
|
2
|
+
import type { ILifecycleState, IRegisterSpotParams, IRmnEventMap } from './event.interface';
|
3
3
|
export declare class EventService {
|
4
4
|
private static instance;
|
5
|
-
private
|
6
|
-
private
|
5
|
+
private pubSubService;
|
6
|
+
private localStorageService;
|
7
7
|
private intersectionObserver;
|
8
8
|
private spotStates;
|
9
9
|
private activeSpots;
|
10
10
|
private constructor();
|
11
11
|
static getInstance(): EventService;
|
12
|
-
subscribe(eventType:
|
13
|
-
publish(eventType:
|
12
|
+
subscribe(eventType: RMN_EVENT, callback: (data: IRmnEventMap[RMN_EVENT]) => void): () => void;
|
13
|
+
publish(eventType: RMN_EVENT, data: IRmnEventMap[RMN_EVENT]): void;
|
14
14
|
registerSpot(params: IRegisterSpotParams): void;
|
15
15
|
unregisterSpot(placementId: string): void;
|
16
16
|
/**
|
@@ -23,23 +23,8 @@ export declare class EventService {
|
|
23
23
|
* @returns {void}
|
24
24
|
*/
|
25
25
|
handleSpotState(placementId: string, updates: Partial<ILifecycleState>, publish?: boolean): void;
|
26
|
+
private deepMerge;
|
26
27
|
private handleClick;
|
27
28
|
private handleIntersectionObserver;
|
28
29
|
private fireImpressionEvent;
|
29
|
-
/**
|
30
|
-
* Fires an event using the navigator.sendBeacon method and redirects the user if the event is a click event.
|
31
|
-
*
|
32
|
-
* @param {IFireEventParams} params - The parameters for firing the event.
|
33
|
-
* @param {RMN_SPOT_EVENT} params.event - The event type.
|
34
|
-
* @param {string} params.eventUrl - The URL to which the event is sent.
|
35
|
-
* @returns {Promise<void>} - A promise that resolves when the event is fired.
|
36
|
-
*/
|
37
|
-
private fireEvent;
|
38
|
-
/**
|
39
|
-
* Extracts and decodes a URL from a base64-encoded query parameter.
|
40
|
-
*
|
41
|
-
* @param {string} url - The URL containing the base64-encoded query parameter.
|
42
|
-
* @returns {string} - The decoded URL or an empty string if decoding fails.
|
43
|
-
*/
|
44
|
-
private getRedirectUrlFromPayload;
|
45
30
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
export declare class IntersectionObserverService {
|
2
2
|
private observers;
|
3
|
-
private defaultOptions;
|
3
|
+
private readonly defaultOptions;
|
4
4
|
constructor(defaultOptions?: IntersectionObserverInit);
|
5
5
|
observe(element: HTMLElement, callback: (entry: IntersectionObserverEntry) => void, options?: IntersectionObserverInit): void;
|
6
6
|
unobserve(element: HTMLElement): void;
|
@@ -0,0 +1,56 @@
|
|
1
|
+
import type { RMN_SPOT_TYPE } from 'enums';
|
2
|
+
import type { ISpotEvent } from 'modules/selection';
|
3
|
+
export interface ILocalStorageSpot {
|
4
|
+
placementId: string;
|
5
|
+
spotId: string;
|
6
|
+
spotType: RMN_SPOT_TYPE;
|
7
|
+
events: ISpotEvent[];
|
8
|
+
productIds: Array<string | number>;
|
9
|
+
createdAt?: number;
|
10
|
+
}
|
11
|
+
export type LocalStorageSpotsMapType = Map<string, // spotId
|
12
|
+
ILocalStorageSpot>;
|
13
|
+
export type LocalStorageSpotsObjectType = Record<string, // spotId
|
14
|
+
ILocalStorageSpot>;
|
15
|
+
export type LocalStorageSpotArray = [
|
16
|
+
string,
|
17
|
+
string,
|
18
|
+
RMN_SPOT_TYPE,
|
19
|
+
ISpotEvent[],
|
20
|
+
Array<string | number>,
|
21
|
+
// PRODUCT_IDS = 4
|
22
|
+
number | undefined
|
23
|
+
];
|
24
|
+
export declare enum ENUM_LOCAL_STORAGE_SPOT_ARRAY_INDEX {
|
25
|
+
PLACEMENT_ID = 0,
|
26
|
+
SPOT_ID = 1,
|
27
|
+
SPOT_TYPE = 2,
|
28
|
+
EVENTS = 3,
|
29
|
+
PRODUCT_IDS = 4,
|
30
|
+
CREATED_AT = 5
|
31
|
+
}
|
32
|
+
export type LocalStorageSpotsArrayType = Record<string, // spotId
|
33
|
+
LocalStorageSpotArray>;
|
34
|
+
export declare class LocalStorageService {
|
35
|
+
private spots?;
|
36
|
+
private static instance;
|
37
|
+
private static readonly localStorageKey;
|
38
|
+
private static readonly spotExpirationTime;
|
39
|
+
private static readonly encryptData;
|
40
|
+
private constructor();
|
41
|
+
static getInstance(): LocalStorageService;
|
42
|
+
private syncLocalStorage;
|
43
|
+
setSpot(spotId: string, data: ILocalStorageSpot): void;
|
44
|
+
removeSpot(spotId: string): void;
|
45
|
+
getSpot(spotId: string): ILocalStorageSpot | undefined;
|
46
|
+
getSpots(): LocalStorageSpotsObjectType | undefined;
|
47
|
+
private updateLocalStorage;
|
48
|
+
private clearLocalStorage;
|
49
|
+
private removeExpiredSpots;
|
50
|
+
private mapToObject;
|
51
|
+
private objectToMap;
|
52
|
+
private objectToArray;
|
53
|
+
private arrayToObject;
|
54
|
+
private encryptData;
|
55
|
+
private decryptData;
|
56
|
+
}
|
@@ -8,13 +8,13 @@ export type PubSubCallback<T> = (data: T) => void;
|
|
8
8
|
*/
|
9
9
|
export type PubSubUnsubscribe = () => void;
|
10
10
|
/**
|
11
|
-
*
|
11
|
+
* PubsubService class
|
12
12
|
* Manages event subscriptions and publications
|
13
|
-
* @template
|
13
|
+
* @template IRmnEventMap A record type defining the structure of events and their data
|
14
14
|
*/
|
15
|
-
export declare class
|
15
|
+
export declare class PubsubService<IRmnEventMap> {
|
16
16
|
private static instance;
|
17
|
-
static getInstance<
|
17
|
+
static getInstance<IRmnEventMap>(): PubsubService<IRmnEventMap>;
|
18
18
|
/**
|
19
19
|
* Object to store subscribers for each event type
|
20
20
|
*/
|
@@ -30,7 +30,7 @@ export declare class PubSub<IEventMap> {
|
|
30
30
|
* console.log(`User ${data.username} logged in`);
|
31
31
|
* });
|
32
32
|
*/
|
33
|
-
subscribe<K extends keyof
|
33
|
+
subscribe<K extends keyof IRmnEventMap>(eventType: K, callback: PubSubCallback<IRmnEventMap[K]>): PubSubUnsubscribe;
|
34
34
|
/**
|
35
35
|
* Publish an event
|
36
36
|
* @param eventType - The type of event to publish
|
@@ -39,17 +39,17 @@ export declare class PubSub<IEventMap> {
|
|
39
39
|
* @Example:
|
40
40
|
* pubSub.publish('userLogin', { username: 'john_doe', timestamp: Date.now() });
|
41
41
|
*/
|
42
|
-
publish<K extends keyof
|
42
|
+
publish<K extends keyof IRmnEventMap>(eventType: K, data: IRmnEventMap[K]): void;
|
43
43
|
}
|
44
44
|
/**
|
45
45
|
* Usage Example:
|
46
46
|
*
|
47
|
-
* interface
|
47
|
+
* interface IRmnEventMap {
|
48
48
|
* userLogin: { username: string; timestamp: number };
|
49
49
|
* pageView: { url: string; timestamp: number };
|
50
50
|
* }
|
51
51
|
*
|
52
|
-
* const pubSub = new
|
52
|
+
* const pubSub = new PubsubService<IRmnEventMap>();
|
53
53
|
*
|
54
54
|
* // Subscribe to events
|
55
55
|
* const unsubscribeLogin = pubSub.subscribe('userLogin', (data) => {
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import type { RMN_SPOT_EVENT } from 'enums';
|
2
|
+
export interface INormalizedEventData {
|
3
|
+
event: RMN_SPOT_EVENT;
|
4
|
+
productIds: Array<string | number>;
|
5
|
+
}
|
6
|
+
export interface IFireAndPublishSpotEventParams {
|
7
|
+
spotEvent: RMN_SPOT_EVENT;
|
8
|
+
eventUrl: string;
|
9
|
+
placementId: string;
|
10
|
+
spotId: string;
|
11
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
export declare class MonitorService {
|
2
|
+
private static instance;
|
3
|
+
private readonly implementedMonitor?;
|
4
|
+
private readonly pubSubService?;
|
5
|
+
private readonly localStorageService?;
|
6
|
+
private constructor();
|
7
|
+
static getInstance(): MonitorService;
|
8
|
+
start(): void;
|
9
|
+
private matchAndFireEvent;
|
10
|
+
private fireAndPublishSpotEvent;
|
11
|
+
private detectAnalyticsTool;
|
12
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import type { INormalizedEventData } from '../monitor.interface';
|
2
|
+
export declare class DataLayerMonitor {
|
3
|
+
private static instance;
|
4
|
+
private readonly originalPush;
|
5
|
+
private listener?;
|
6
|
+
private constructor();
|
7
|
+
static getInstance(): DataLayerMonitor;
|
8
|
+
setListener(listener: (data: INormalizedEventData) => void): void;
|
9
|
+
start(): void;
|
10
|
+
private cleanEventData;
|
11
|
+
stop(): void;
|
12
|
+
}
|
@@ -30,7 +30,9 @@ export interface ISpot {
|
|
30
30
|
mobilePrimaryImage?: string;
|
31
31
|
mobileSecondaryImage?: string;
|
32
32
|
productIds?: Array<string | number>;
|
33
|
-
|
33
|
+
rbProductUpcs?: Array<string | number>;
|
34
|
+
rbProductSalsifyGroupings?: Array<string | number>;
|
35
|
+
rbProductSalsifyPids?: Array<string | number>;
|
34
36
|
}
|
35
37
|
export type ISpots = Record<PlacementIdType, ISpot[]>;
|
36
38
|
export interface ISelectionService {
|
@@ -14,7 +14,7 @@ export declare class LiquidCommerceRmnClient implements IRmnClient {
|
|
14
14
|
*
|
15
15
|
* @param {ISpotSelectionParams} params - Spots selection parameters.
|
16
16
|
*
|
17
|
-
* @return {Promise<ISpots | {error : string}>} - The spots response object.
|
17
|
+
* @return {Promise<ISpots | { error : string }>} - The spots response object.
|
18
18
|
*/
|
19
19
|
spotSelection(params: ISpotSelectionParams): Promise<ISpots | {
|
20
20
|
error: string;
|
package/dist/types/types.d.ts
CHANGED
@@ -1,10 +1,11 @@
|
|
1
|
-
import type { IEventMap } from './modules/event';
|
2
1
|
export type { IInjectSpotElement, IInjectSpotElementConfig, IInjectSpotElementParams, IRmnCreateSpotElementConfig, ISpotColors, ISpotOverlay, } from 'modules/element';
|
3
2
|
export type { CarouselNavPositionType, ICarouselButtonOptions, ICarouselDotOptions, ICarouselOptions, } from 'modules/element/component/carousel';
|
3
|
+
export type { ILifecycleState, ILSDisplayConfig, ILSDom, ILSIdentifier, ILSState, IRmnEventMap, IRmnSpotEvent, } from 'modules/event';
|
4
4
|
export type { ISpots, RmnFilterType, RmnSpotType } from 'modules/selection';
|
5
5
|
export { ISpot, ISpotEvent, ISpotSelectionParams } from 'modules/selection';
|
6
|
-
import type { RMN_ENV,
|
6
|
+
import type { RMN_ENV, RMN_EVENT } from 'enums';
|
7
7
|
import type { IInjectSpotElementParams } from 'modules/element';
|
8
|
+
import type { IRmnEventMap } from 'modules/event';
|
8
9
|
import type { ISpots, ISpotSelectionParams } from 'modules/selection';
|
9
10
|
export interface IRmnClient {
|
10
11
|
spotSelection(params: ISpotSelectionParams): Promise<ISpots | {
|
@@ -13,8 +14,8 @@ export interface IRmnClient {
|
|
13
14
|
injectSpotElement(params: IInjectSpotElementParams): Promise<void>;
|
14
15
|
}
|
15
16
|
export interface IRmnEventManager {
|
16
|
-
subscribe: (eventType:
|
17
|
-
publish: (eventType:
|
17
|
+
subscribe: (eventType: RMN_EVENT, callback: (data: IRmnEventMap[RMN_EVENT]) => void) => () => void;
|
18
|
+
publish: (eventType: RMN_EVENT, data: IRmnEventMap[RMN_EVENT]) => void;
|
18
19
|
destroySpot: (placementId: string) => void;
|
19
20
|
}
|
20
21
|
export interface IRmnConfig {
|
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.5.0-beta.
|
5
|
+
"version": "1.5.0-beta.10",
|
6
6
|
"homepage": "https://docs.liquidcommerce.co/rmn-sdk",
|
7
7
|
"main": "./dist/index.cjs",
|
8
8
|
"module": "./dist/index.esm.js",
|