@blux.ai/web-sdk 1.3.0 → 2.0.0
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 +46 -31
- package/dist/package.json +1 -1
- package/dist/src/BluxClient.d.ts +25 -15
- package/dist/src/BluxClient.js +150 -49
- package/dist/src/BluxClient.js.map +1 -1
- package/dist/src/apis/APIs.d.ts +385 -92
- package/dist/src/apis/APIs.js +51 -0
- package/dist/src/apis/APIs.js.map +1 -1
- package/dist/src/apis/createCrmEvent.d.ts +4 -0
- package/dist/src/apis/createCrmEvent.js +7 -0
- package/dist/src/apis/createCrmEvent.js.map +1 -0
- package/dist/src/apis/createEvent.d.ts +1 -1
- package/dist/src/apis/createEvent.js.map +1 -1
- package/dist/src/apis/getItemRecommendations.d.ts +1 -1
- package/dist/src/apis/getItemRecommendations.js.map +1 -1
- package/dist/src/apis/inappsDispatch.d.ts +5 -0
- package/dist/src/apis/inappsDispatch.js +7 -0
- package/dist/src/apis/inappsDispatch.js.map +1 -0
- package/dist/src/apis/initialize.d.ts +1 -1
- package/dist/src/apis/initialize.js.map +1 -1
- package/dist/src/apis/signIn.d.ts +1 -1
- package/dist/src/apis/signIn.js.map +1 -1
- package/dist/src/apis/signOut.d.ts +1 -1
- package/dist/src/apis/signOut.js.map +1 -1
- package/dist/src/apis/updateCustomUserProperties.d.ts +1 -1
- package/dist/src/apis/updateCustomUserProperties.js.map +1 -1
- package/dist/src/apis/updateUserProperties.d.ts +1 -1
- package/dist/src/apis/updateUserProperties.js.map +1 -1
- package/dist/src/events/AddCartaddEvent.d.ts +2 -2
- package/dist/src/events/AddCartaddEvent.js +3 -3
- package/dist/src/events/AddCartaddEvent.js.map +1 -1
- package/dist/src/events/AddClickEvent.d.ts +2 -2
- package/dist/src/events/AddClickEvent.js +3 -3
- package/dist/src/events/AddClickEvent.js.map +1 -1
- package/dist/src/events/AddCustomEvent.d.ts +2 -2
- package/dist/src/events/AddCustomEvent.js +4 -4
- package/dist/src/events/AddCustomEvent.js.map +1 -1
- package/dist/src/events/AddInstantImpressionEvent.d.ts +2 -2
- package/dist/src/events/AddInstantImpressionEvent.js +3 -3
- package/dist/src/events/AddInstantImpressionEvent.js.map +1 -1
- package/dist/src/events/AddLikeEvent.d.ts +2 -2
- package/dist/src/events/AddLikeEvent.js +3 -3
- package/dist/src/events/AddLikeEvent.js.map +1 -1
- package/dist/src/events/AddOrderEvent.d.ts +5 -0
- package/dist/src/events/AddOrderEvent.js +16 -0
- package/dist/src/events/AddOrderEvent.js.map +1 -0
- package/dist/src/events/AddPageViewEvent.d.ts +2 -2
- package/dist/src/events/AddPageViewEvent.js +2 -2
- package/dist/src/events/AddPageViewEvent.js.map +1 -1
- package/dist/src/events/AddPageVisitEvent.d.ts +2 -2
- package/dist/src/events/AddPageVisitEvent.js +2 -2
- package/dist/src/events/AddPageVisitEvent.js.map +1 -1
- package/dist/src/events/AddPersistentImpressionEvent.d.ts +2 -2
- package/dist/src/events/AddPersistentImpressionEvent.js +3 -3
- package/dist/src/events/AddPersistentImpressionEvent.js.map +1 -1
- package/dist/src/events/AddProductDetailViewEvent.d.ts +2 -2
- package/dist/src/events/AddProductDetailViewEvent.js +3 -3
- package/dist/src/events/AddProductDetailViewEvent.js.map +1 -1
- package/dist/src/events/AddRateEvent.d.ts +2 -2
- package/dist/src/events/AddRateEvent.js +3 -3
- package/dist/src/events/AddRateEvent.js.map +1 -1
- package/dist/src/events/AddSearchEvent.d.ts +2 -2
- package/dist/src/events/AddSearchEvent.js +3 -3
- package/dist/src/events/AddSearchEvent.js.map +1 -1
- package/dist/src/events/AddSectionViewEvent.d.ts +2 -2
- package/dist/src/events/AddSectionViewEvent.js +2 -2
- package/dist/src/events/AddSectionViewEvent.js.map +1 -1
- package/dist/src/events/Event.d.ts +1 -0
- package/dist/src/events/Event.js +1 -0
- package/dist/src/events/Event.js.map +1 -1
- package/dist/src/events/VisitEvent.d.ts +2 -2
- package/dist/src/events/VisitEvent.js +2 -2
- package/dist/src/events/VisitEvent.js.map +1 -1
- package/dist/src/events/index.d.ts +1 -1
- package/dist/src/events/index.js +1 -1
- package/dist/src/events/index.js.map +1 -1
- package/dist/src/events/types.d.ts +26 -15
- package/dist/src/events/types.js.map +1 -1
- package/dist/src/recs/ItemRec.js.map +1 -1
- package/dist/src/utils/LocalStorage.d.ts +2 -0
- package/dist/src/utils/LocalStorage.js +8 -1
- package/dist/src/utils/LocalStorage.js.map +1 -1
- package/dist/src/utils/Logger.js +0 -1
- package/dist/src/utils/Logger.js.map +1 -1
- package/dist/src/utils/SessionStorage.js +0 -1
- package/dist/src/utils/SessionStorage.js.map +1 -1
- package/dist/src/utils/operators.js +0 -1
- package/dist/src/utils/operators.js.map +1 -1
- package/dist/src/utils/zodSchemas.d.ts +27 -27
- package/dist/src/utils/zodSchemas.js +2 -2
- package/dist/src/utils/zodSchemas.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/src/events/AddPurchaseEvent.d.ts +0 -5
- package/dist/src/events/AddPurchaseEvent.js +0 -16
- package/dist/src/events/AddPurchaseEvent.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Event, EventType } from "./Event";
|
|
2
2
|
export class AddRateEvent extends Event {
|
|
3
|
-
constructor({
|
|
3
|
+
constructor({ itemId, rating, tracking, customEventProperties, }) {
|
|
4
4
|
super({
|
|
5
5
|
event_type: EventType.rate,
|
|
6
|
-
event_properties: { item_id, rating, tracking },
|
|
7
|
-
custom_event_properties,
|
|
6
|
+
event_properties: { item_id: itemId, rating, tracking },
|
|
7
|
+
custom_event_properties: customEventProperties,
|
|
8
8
|
});
|
|
9
9
|
}
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddRateEvent.js","sourceRoot":"/","sources":["src/events/AddRateEvent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AddRateEvent.js","sourceRoot":"/","sources":["src/events/AddRateEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAI3C,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,EACV,MAAM,EACN,MAAM,EACN,QAAQ,EACR,qBAAqB,GACP;QACd,KAAK,CAAC;YACJ,UAAU,EAAE,SAAS,CAAC,IAAI;YAC1B,gBAAgB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;YACvD,uBAAuB,EAAE,qBAAqB;SAC/C,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import { Event, EventType } from \"./Event\";\n\nimport type { IAddRateEvent } from \"./types\";\n\nexport class AddRateEvent extends Event {\n constructor({\n itemId,\n rating,\n tracking,\n customEventProperties,\n }: IAddRateEvent) {\n super({\n event_type: EventType.rate,\n event_properties: { item_id: itemId, rating, tracking },\n custom_event_properties: customEventProperties,\n });\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IAddSearchEvent } from "./types";
|
|
2
1
|
import { Event } from "./Event";
|
|
2
|
+
import type { IAddSearchEvent } from "./types";
|
|
3
3
|
export declare class AddSearchEvent extends Event {
|
|
4
|
-
constructor({
|
|
4
|
+
constructor({ searchQuery, tracking, customEventProperties, }: IAddSearchEvent);
|
|
5
5
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Event, EventType } from "./Event";
|
|
2
2
|
export class AddSearchEvent extends Event {
|
|
3
|
-
constructor({
|
|
3
|
+
constructor({ searchQuery, tracking, customEventProperties, }) {
|
|
4
4
|
super({
|
|
5
5
|
event_type: EventType.search,
|
|
6
|
-
event_properties: { search_query, tracking },
|
|
7
|
-
custom_event_properties,
|
|
6
|
+
event_properties: { search_query: searchQuery, tracking },
|
|
7
|
+
custom_event_properties: customEventProperties,
|
|
8
8
|
});
|
|
9
9
|
}
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddSearchEvent.js","sourceRoot":"/","sources":["src/events/AddSearchEvent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AddSearchEvent.js","sourceRoot":"/","sources":["src/events/AddSearchEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAI3C,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,EACV,WAAW,EACX,QAAQ,EACR,qBAAqB,GACL;QAChB,KAAK,CAAC;YACJ,UAAU,EAAE,SAAS,CAAC,MAAM;YAC5B,gBAAgB,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE;YACzD,uBAAuB,EAAE,qBAAqB;SAC/C,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import { Event, EventType } from \"./Event\";\n\nimport type { IAddSearchEvent } from \"./types\";\n\nexport class AddSearchEvent extends Event {\n constructor({\n searchQuery,\n tracking,\n customEventProperties,\n }: IAddSearchEvent) {\n super({\n event_type: EventType.search,\n event_properties: { search_query: searchQuery, tracking },\n custom_event_properties: customEventProperties,\n });\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IAddSectionViewEvent } from "./types";
|
|
2
1
|
import { Event } from "./Event";
|
|
2
|
+
import type { IAddSectionViewEvent } from "./types";
|
|
3
3
|
export declare class AddSectionViewEvent extends Event {
|
|
4
|
-
constructor({ section, tracking,
|
|
4
|
+
constructor({ section, tracking, customEventProperties, }: IAddSectionViewEvent);
|
|
5
5
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Event, EventType } from "./Event";
|
|
2
2
|
export class AddSectionViewEvent extends Event {
|
|
3
|
-
constructor({ section, tracking,
|
|
3
|
+
constructor({ section, tracking, customEventProperties, }) {
|
|
4
4
|
super({
|
|
5
5
|
event_type: EventType.section_view,
|
|
6
6
|
event_properties: {
|
|
7
7
|
section,
|
|
8
8
|
tracking,
|
|
9
9
|
},
|
|
10
|
-
custom_event_properties,
|
|
10
|
+
custom_event_properties: customEventProperties,
|
|
11
11
|
});
|
|
12
12
|
}
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddSectionViewEvent.js","sourceRoot":"/","sources":["src/events/AddSectionViewEvent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AddSectionViewEvent.js","sourceRoot":"/","sources":["src/events/AddSectionViewEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAI3C,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,EACV,OAAO,EACP,QAAQ,EACR,qBAAqB,GACA;QACrB,KAAK,CAAC;YACJ,UAAU,EAAE,SAAS,CAAC,YAAY;YAClC,gBAAgB,EAAE;gBAChB,OAAO;gBACP,QAAQ;aACT;YACD,uBAAuB,EAAE,qBAAqB;SAC/C,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import { Event, EventType } from \"./Event\";\n\nimport type { IAddSectionViewEvent } from \"./types\";\n\nexport class AddSectionViewEvent extends Event {\n constructor({\n section,\n tracking,\n customEventProperties,\n }: IAddSectionViewEvent) {\n super({\n event_type: EventType.section_view,\n event_properties: {\n section,\n tracking,\n },\n custom_event_properties: customEventProperties,\n });\n }\n}\n"]}
|
package/dist/src/events/Event.js
CHANGED
|
@@ -11,6 +11,7 @@ export var EventType;
|
|
|
11
11
|
EventType["sms_link_clicked"] = "sms_link_clicked";
|
|
12
12
|
EventType["product_detail_view"] = "product_detail_view";
|
|
13
13
|
EventType["purchase"] = "purchase";
|
|
14
|
+
EventType["order"] = "order";
|
|
14
15
|
EventType["cartadd"] = "cartadd";
|
|
15
16
|
EventType["like"] = "like";
|
|
16
17
|
EventType["rate"] = "rate";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Event.js","sourceRoot":"/","sources":["src/events/Event.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Event.js","sourceRoot":"/","sources":["src/events/Event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAIlC,MAAM,CAAN,IAAY,SA0BX;AA1BD,WAAY,SAAS;IACnB,4BAAe,CAAA;IACf,wCAA2B,CAAA;IAE3B,YAAY;IACZ,oEAAuD,CAAA;IACvD,gEAAmD,CAAA;IACnD,gDAAmC,CAAA;IACnC,sDAAyC,CAAA;IACzC,kDAAqC,CAAA;IAErC,wDAA2C,CAAA;IAC3C,kCAAqB,CAAA;IACrB,4BAAe,CAAA;IACf,gCAAmB,CAAA;IACnB,0BAAa,CAAA;IACb,0BAAa,CAAA;IACb,sCAAyB,CAAA;IACzB,oCAAuB,CAAA;IAEvB,sDAAyC,CAAA;IACzC,4DAA+C,CAAA;IAC/C,8BAAiB,CAAA;IAEjB,0CAA6B,CAAA;IAC7B,4BAAe,CAAA;AACjB,CAAC,EA1BW,SAAS,KAAT,SAAS,QA0BpB;AAED,MAAM,OAAgB,KAAK;IACT,OAAO,CAAe;IACtC,YAAY,IAA8C;QACxD,IAAI,CAAC,OAAO,GAAG;YACb,EAAE,EAAE,IAAI,EAAE;YACV,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,GAAG,IAAI;SACR,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { v4 as uuid } from \"uuid\";\n\nimport type { EventRequest } from \"./types\";\n\nexport enum EventType {\n visit = \"visit\",\n push_opened = \"push_opened\",\n\n // ~_clicked\n friendtalk_button_clicked = \"friendtalk_button_clicked\",\n alimtalk_button_clicked = \"alimtalk_button_clicked\",\n landing_clicked = \"landing_clicked\",\n email_link_clicked = \"email_link_clicked\",\n sms_link_clicked = \"sms_link_clicked\",\n\n product_detail_view = \"product_detail_view\",\n purchase = \"purchase\",\n order = \"order\",\n cartadd = \"cartadd\",\n like = \"like\",\n rate = \"rate\",\n page_visit = \"page_visit\",\n page_view = \"page_view\",\n\n instant_impression = \"instant_impression\",\n persistent_impression = \"persistent_impression\",\n search = \"search\",\n\n section_view = \"section_view\",\n click = \"click\",\n}\n\nexport abstract class Event {\n public readonly request: EventRequest;\n constructor(data: Omit<EventRequest, \"id\" | \"captured_at\">) {\n this.request = {\n id: uuid(),\n captured_at: new Date().toISOString(),\n ...data,\n };\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IVisitEvent } from "./types";
|
|
2
1
|
import { Event } from "./Event";
|
|
2
|
+
import type { IVisitEvent } from "./types";
|
|
3
3
|
export declare class VisitEvent extends Event {
|
|
4
|
-
constructor({ tracking,
|
|
4
|
+
constructor({ tracking, customEventProperties }: IVisitEvent);
|
|
5
5
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Event, EventType } from "./Event";
|
|
2
2
|
export class VisitEvent extends Event {
|
|
3
|
-
constructor({ tracking,
|
|
3
|
+
constructor({ tracking, customEventProperties }) {
|
|
4
4
|
super({
|
|
5
5
|
event_type: EventType.visit,
|
|
6
6
|
event_properties: {
|
|
7
7
|
tracking,
|
|
8
8
|
},
|
|
9
|
-
custom_event_properties,
|
|
9
|
+
custom_event_properties: customEventProperties,
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisitEvent.js","sourceRoot":"/","sources":["src/events/VisitEvent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VisitEvent.js","sourceRoot":"/","sources":["src/events/VisitEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAI3C,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC,YAAY,EAAE,QAAQ,EAAE,qBAAqB,EAAe;QAC1D,KAAK,CAAC;YACJ,UAAU,EAAE,SAAS,CAAC,KAAK;YAC3B,gBAAgB,EAAE;gBAChB,QAAQ;aACT;YACD,uBAAuB,EAAE,qBAAqB;SAC/C,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import { Event, EventType } from \"./Event\";\n\nimport type { IVisitEvent } from \"./types\";\n\nexport class VisitEvent extends Event {\n constructor({ tracking, customEventProperties }: IVisitEvent) {\n super({\n event_type: EventType.visit,\n event_properties: {\n tracking,\n },\n custom_event_properties: customEventProperties,\n });\n }\n}\n"]}
|
|
@@ -5,7 +5,7 @@ export * from "./AddLikeEvent";
|
|
|
5
5
|
export * from "./AddPageViewEvent";
|
|
6
6
|
export * from "./AddPersistentImpressionEvent";
|
|
7
7
|
export * from "./AddProductDetailViewEvent";
|
|
8
|
-
export * from "./
|
|
8
|
+
export * from "./AddOrderEvent";
|
|
9
9
|
export * from "./AddRateEvent";
|
|
10
10
|
export * from "./AddSectionViewEvent";
|
|
11
11
|
export * from "./AddSearchEvent";
|
package/dist/src/events/index.js
CHANGED
|
@@ -5,7 +5,7 @@ export * from "./AddLikeEvent";
|
|
|
5
5
|
export * from "./AddPageViewEvent";
|
|
6
6
|
export * from "./AddPersistentImpressionEvent";
|
|
7
7
|
export * from "./AddProductDetailViewEvent";
|
|
8
|
-
export * from "./
|
|
8
|
+
export * from "./AddOrderEvent";
|
|
9
9
|
export * from "./AddRateEvent";
|
|
10
10
|
export * from "./AddSectionViewEvent";
|
|
11
11
|
export * from "./AddSearchEvent";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"/","sources":["src/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["src/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC","sourcesContent":["export * from \"./AddCartaddEvent\";\nexport * from \"./AddCustomEvent\";\nexport * from \"./AddInstantImpressionEvent\";\nexport * from \"./AddLikeEvent\";\nexport * from \"./AddPageViewEvent\";\nexport * from \"./AddPersistentImpressionEvent\";\nexport * from \"./AddProductDetailViewEvent\";\nexport * from \"./AddOrderEvent\";\nexport * from \"./AddRateEvent\";\nexport * from \"./AddSectionViewEvent\";\nexport * from \"./AddSearchEvent\";\nexport * from \"./AddPageVisitEvent\";\nexport * from \"./AddClickEvent\";\nexport * from \"./VisitEvent\";\n"]}
|
|
@@ -13,6 +13,11 @@ type EventProperties = {
|
|
|
13
13
|
id: string;
|
|
14
14
|
type: string;
|
|
15
15
|
};
|
|
16
|
+
items?: {
|
|
17
|
+
id: string;
|
|
18
|
+
price: number;
|
|
19
|
+
quantity?: number;
|
|
20
|
+
}[];
|
|
16
21
|
};
|
|
17
22
|
export interface EventRequest {
|
|
18
23
|
id: string;
|
|
@@ -25,30 +30,36 @@ export interface EventRequest {
|
|
|
25
30
|
};
|
|
26
31
|
captured_at: string;
|
|
27
32
|
}
|
|
28
|
-
type BaseEvent =
|
|
33
|
+
type BaseEvent = {
|
|
34
|
+
customEventProperties?: Record<string, any>;
|
|
29
35
|
tracking?: EventProperties["tracking"];
|
|
30
36
|
};
|
|
31
37
|
export interface IAddProductDetailViewEvent extends BaseEvent {
|
|
32
|
-
|
|
38
|
+
itemId: string;
|
|
33
39
|
}
|
|
34
40
|
export interface IAddLikeEvent extends BaseEvent {
|
|
35
|
-
|
|
41
|
+
itemId: string;
|
|
36
42
|
}
|
|
37
43
|
export interface IAddCartaddEvent extends BaseEvent {
|
|
38
|
-
|
|
44
|
+
itemId: string;
|
|
39
45
|
}
|
|
40
46
|
export interface IAddRateEvent extends BaseEvent {
|
|
41
|
-
|
|
47
|
+
itemId: string;
|
|
42
48
|
rating: number;
|
|
43
49
|
}
|
|
44
|
-
export interface
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
export interface IAddOrderEvent extends BaseEvent {
|
|
51
|
+
orderId: string;
|
|
52
|
+
paidAmount: number;
|
|
53
|
+
orderAmount: number;
|
|
54
|
+
items: {
|
|
55
|
+
id: string;
|
|
56
|
+
price: number;
|
|
57
|
+
quantity?: number;
|
|
58
|
+
}[];
|
|
48
59
|
}
|
|
49
60
|
export interface IAddCustomEvent extends BaseEvent {
|
|
50
|
-
|
|
51
|
-
|
|
61
|
+
eventType: string;
|
|
62
|
+
eventProperties?: EventProperties;
|
|
52
63
|
}
|
|
53
64
|
export type IVisitEvent = BaseEvent;
|
|
54
65
|
export type IAddPageVisitEvent = BaseEvent;
|
|
@@ -59,21 +70,21 @@ export interface IAddSectionViewEvent extends BaseEvent {
|
|
|
59
70
|
section: string;
|
|
60
71
|
}
|
|
61
72
|
export interface IAddInstantImpressionEvent extends BaseEvent {
|
|
62
|
-
|
|
73
|
+
itemId: string;
|
|
63
74
|
page: string;
|
|
64
75
|
section: string;
|
|
65
76
|
position: number;
|
|
66
77
|
}
|
|
67
78
|
export interface IAddPersistentImpressionEvent extends BaseEvent {
|
|
68
|
-
|
|
79
|
+
itemId: string;
|
|
69
80
|
page: string;
|
|
70
81
|
section: string;
|
|
71
82
|
position: number;
|
|
72
83
|
}
|
|
73
84
|
export interface IAddSearchEvent extends BaseEvent {
|
|
74
|
-
|
|
85
|
+
searchQuery: string;
|
|
75
86
|
}
|
|
76
87
|
export interface IAddClickEvent extends BaseEvent {
|
|
77
|
-
|
|
88
|
+
itemId: string;
|
|
78
89
|
}
|
|
79
90
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"/","sources":["src/events/types.ts"],"names":[],"mappings":"AAAA,uDAAuD","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\ntype EventProperties = {\n item_id?: string;\n page?: string;\n section?: string;\n price?: number;\n order_id?: string;\n rating?: number;\n position?: number;\n search_query?: string;\n order_amount?: number;\n paid_amount?: number;\n tracking?: {\n id: string;\n type: string;\n };\n};\n\nexport interface EventRequest {\n id: string;\n event_type: string;\n event_properties?: EventProperties;\n custom_event_properties?: Record<string, any>;\n internal_event_properties?: { url?: string; ref?: string };\n captured_at: string;\n}\n\ntype BaseEvent =
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"/","sources":["src/events/types.ts"],"names":[],"mappings":"AAAA,uDAAuD","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\ntype EventProperties = {\n item_id?: string;\n page?: string;\n section?: string;\n price?: number;\n order_id?: string;\n rating?: number;\n position?: number;\n search_query?: string;\n order_amount?: number;\n paid_amount?: number;\n tracking?: {\n id: string;\n type: string;\n };\n items?: {\n id: string;\n price: number;\n quantity?: number;\n }[];\n};\n\nexport interface EventRequest {\n id: string;\n event_type: string;\n event_properties?: EventProperties;\n custom_event_properties?: Record<string, any>;\n internal_event_properties?: { url?: string; ref?: string };\n captured_at: string;\n}\n\ntype BaseEvent = {\n customEventProperties?: Record<string, any>;\n tracking?: EventProperties[\"tracking\"];\n};\n\nexport interface IAddProductDetailViewEvent extends BaseEvent {\n itemId: string;\n}\n\nexport interface IAddLikeEvent extends BaseEvent {\n itemId: string;\n}\n\nexport interface IAddCartaddEvent extends BaseEvent {\n itemId: string;\n}\n\nexport interface IAddRateEvent extends BaseEvent {\n itemId: string;\n rating: number;\n}\nexport interface IAddOrderEvent extends BaseEvent {\n orderId: string;\n paidAmount: number;\n orderAmount: number;\n items: {\n id: string;\n price: number;\n quantity?: number;\n }[];\n}\n\nexport interface IAddCustomEvent extends BaseEvent {\n eventType: string;\n eventProperties?: EventProperties;\n}\n\nexport type IVisitEvent = BaseEvent;\n\nexport type IAddPageVisitEvent = BaseEvent;\n\nexport interface IAddPageViewEvent extends BaseEvent {\n page: string;\n}\n\nexport interface IAddSectionViewEvent extends BaseEvent {\n section: string;\n}\n\nexport interface IAddInstantImpressionEvent extends BaseEvent {\n itemId: string;\n page: string;\n section: string;\n position: number;\n}\n\nexport interface IAddPersistentImpressionEvent extends BaseEvent {\n itemId: string;\n page: string;\n section: string;\n position: number;\n}\n\nexport interface IAddSearchEvent extends BaseEvent {\n searchQuery: string;\n}\n\nexport interface IAddClickEvent extends BaseEvent {\n itemId: string;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemRec.js","sourceRoot":"/","sources":["src/recs/ItemRec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ItemRec.js","sourceRoot":"/","sources":["src/recs/ItemRec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAI5B,MAAM,OAAO,OAAQ,SAAQ,GAAG;IAC9B,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAY;QAChD,KAAK,CAAC;YACJ,SAAS;YACT,KAAK;YACL,MAAM;SACP,CAAC,CAAC;IACL,CAAC;CACF;AAED,gBAAgB;AAChB,MAAM,OAAO,OAAQ,SAAQ,GAAG;IAC9B,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAY;QACzD,KAAK,CAAC;YACJ,SAAS;YACT,OAAO;YACP,KAAK;YACL,MAAM;SACP,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,GAAG;IAC/B,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAa;QAC3D,KAAK,CAAC;YACJ,SAAS;YACT,QAAQ;YACR,KAAK;YACL,MAAM;SACP,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,GAAG;IAClC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAgB;QACjE,KAAK,CAAC;YACJ,SAAS;YACT,WAAW;YACX,KAAK;YACL,MAAM;SACP,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import { Rec } from \"./Rec\";\n\nimport type { ICategoryRec, IItemRec, IItemsRec, IUserRec } from \"./types\";\n\nexport class UserRec extends Rec {\n constructor({ call_type, limit, offset }: IUserRec) {\n super({\n call_type,\n limit,\n offset,\n });\n }\n}\n\n// (단일) 상품 기반 추천\nexport class ItemRec extends Rec {\n constructor({ call_type, item_id, limit, offset }: IItemRec) {\n super({\n call_type,\n item_id,\n limit,\n offset,\n });\n }\n}\n\nexport class ItemsRec extends Rec {\n constructor({ call_type, item_ids, limit, offset }: IItemsRec) {\n super({\n call_type,\n item_ids,\n limit,\n offset,\n });\n }\n}\n\nexport class CategoryRec extends Rec {\n constructor({ call_type, category_id, limit, offset }: ICategoryRec) {\n super({\n call_type,\n category_id,\n limit,\n offset,\n });\n }\n}\n"]}
|
|
@@ -5,4 +5,6 @@ export declare class LocalStorage {
|
|
|
5
5
|
static setUrl(url: string): void;
|
|
6
6
|
static getRef(): string | null;
|
|
7
7
|
static setRef(ref: string): void;
|
|
8
|
+
static setInappHideTimestamp(key: string, timestamp: number): void;
|
|
9
|
+
static getInappHideTimestamp(key: string): number | null;
|
|
8
10
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const BLUX_DEVICE_ID = "blux_deviceId";
|
|
2
2
|
const BLUX_URL = "blux_url";
|
|
3
3
|
const BLUX_REF = "blux_ref";
|
|
4
|
-
|
|
4
|
+
const BLUX_INAPP_HIDE_TIMESTAMP = "blux_inapp";
|
|
5
5
|
export class LocalStorage {
|
|
6
6
|
static getDeviceId() {
|
|
7
7
|
const deviceId = localStorage.getItem(BLUX_DEVICE_ID);
|
|
@@ -26,5 +26,12 @@ export class LocalStorage {
|
|
|
26
26
|
static setRef(ref) {
|
|
27
27
|
localStorage.setItem(BLUX_REF, ref);
|
|
28
28
|
}
|
|
29
|
+
static setInappHideTimestamp(key, timestamp) {
|
|
30
|
+
localStorage.setItem(`${BLUX_INAPP_HIDE_TIMESTAMP}/${key}`, timestamp.toString());
|
|
31
|
+
}
|
|
32
|
+
static getInappHideTimestamp(key) {
|
|
33
|
+
const timestamp = localStorage.getItem(`${BLUX_INAPP_HIDE_TIMESTAMP}/${key}`);
|
|
34
|
+
return timestamp ? parseInt(timestamp) : null;
|
|
35
|
+
}
|
|
29
36
|
}
|
|
30
37
|
//# sourceMappingURL=LocalStorage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalStorage.js","sourceRoot":"/","sources":["src/utils/LocalStorage.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,eAAe,CAAC;AACvC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"LocalStorage.js","sourceRoot":"/","sources":["src/utils/LocalStorage.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,eAAe,CAAC;AACvC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,yBAAyB,GAAG,YAAY,CAAC;AAE/C,MAAM,OAAO,YAAY;IACvB,MAAM,CAAC,WAAW;QAChB,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACtD,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;YACxD,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,QAAQ,CAAC;IACf,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,QAAgB;QACjC,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,MAAM;QACX,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,GAAW;QACvB,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,MAAM;QACX,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,GAAW;QACvB,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,GAAW,EAAE,SAAiB;QACzD,YAAY,CAAC,OAAO,CAClB,GAAG,yBAAyB,IAAI,GAAG,EAAE,EACrC,SAAS,CAAC,QAAQ,EAAE,CACrB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,GAAW;QACtC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CACpC,GAAG,yBAAyB,IAAI,GAAG,EAAE,CACtC,CAAC;QACF,OAAO,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;CACF","sourcesContent":["const BLUX_DEVICE_ID = \"blux_deviceId\";\nconst BLUX_URL = \"blux_url\";\nconst BLUX_REF = \"blux_ref\";\nconst BLUX_INAPP_HIDE_TIMESTAMP = \"blux_inapp\";\n\nexport class LocalStorage {\n static getDeviceId(): string | null {\n const deviceId = localStorage.getItem(BLUX_DEVICE_ID);\n return deviceId === \"undefined\" || deviceId?.trim() === \"\"\n ? null\n : deviceId;\n }\n\n static setDeviceId(deviceId: string) {\n localStorage.setItem(BLUX_DEVICE_ID, deviceId);\n }\n\n static getUrl(): string | null {\n const url = localStorage.getItem(BLUX_URL);\n return url === \"undefined\" || url?.trim() === \"\" ? null : url;\n }\n\n static setUrl(url: string) {\n localStorage.setItem(BLUX_URL, url);\n }\n\n static getRef(): string | null {\n const ref = localStorage.getItem(BLUX_REF);\n return ref === \"undefined\" || ref?.trim() === \"\" ? null : ref;\n }\n\n static setRef(ref: string) {\n localStorage.setItem(BLUX_REF, ref);\n }\n\n static setInappHideTimestamp(key: string, timestamp: number) {\n localStorage.setItem(\n `${BLUX_INAPP_HIDE_TIMESTAMP}/${key}`,\n timestamp.toString(),\n );\n }\n\n static getInappHideTimestamp(key: string): number | null {\n const timestamp = localStorage.getItem(\n `${BLUX_INAPP_HIDE_TIMESTAMP}/${key}`,\n );\n return timestamp ? parseInt(timestamp) : null;\n }\n}\n"]}
|
package/dist/src/utils/Logger.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.js","sourceRoot":"/","sources":["src/utils/Logger.ts"],"names":[],"mappings":"AAGA,MAAM,oBAAoB,GAAG;IAC3B,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACnC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;CAC1B,CAAC;AAIX,MAAM,gBAAgB,GAAG;IACvB,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACT,CAAC;
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"/","sources":["src/utils/Logger.ts"],"names":[],"mappings":"AAGA,MAAM,oBAAoB,GAAG;IAC3B,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACnC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;CAC1B,CAAC;AAIX,MAAM,gBAAgB,GAAG;IACvB,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACT,CAAC;AAKF,MAAM,OAAO,MAAM;IACV,MAAM,CAAC,QAAQ,GAAa,OAAO,CAAC;IAEnC,MAAM,CAAC,IAAI,CACjB,OAAuB,EACvB,KAAe,EACf,OAAiB;QAEjB,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/D,MAAM,aAAa,GAAc,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAE3D,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;gBACnB,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;gBAClB,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YAED,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACM,MAAM,CAAC,KAAK,CAAC,OAAuB,EAAE,OAAiB;QAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IACM,MAAM,CAAC,GAAG,CAAC,OAAuB,EAAE,OAAiB;QAC1D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IACM,MAAM,CAAC,OAAO,CAAC,OAAuB,EAAE,OAAiB;QAC9D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IACM,MAAM,CAAC,KAAK,CAAC,OAAuB,EAAE,OAAiB;QAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IACM,MAAM,CAAC,KAAK,CAAC,OAAuB,EAAE,OAAiB;QAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,KAAe;QACpC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC","sourcesContent":["/* eslint-disable no-console */\nimport type { ScopeContext } from \"@sentry/types\";\n\nconst consoleMethodByLevel = {\n debug: console.debug.bind(console),\n log: console.log.bind(console),\n warning: console.warn.bind(console),\n error: console.error.bind(console),\n fatal: console.error.bind(console),\n} as const;\n\nexport type LogLevel = \"debug\" | \"log\" | \"warning\" | \"error\" | \"fatal\";\n\nconst LOG_LEVEL_ORDERS = {\n debug: 0,\n log: 1,\n warning: 2,\n error: 3,\n fatal: 4,\n};\n\nexport type Context = Partial<Pick<ScopeContext, \"tags\" | \"extra\">>;\n\n \nexport class Logger {\n public static logLevel: LogLevel = \"error\";\n\n private static base(\n message: string | Error,\n level: LogLevel,\n context?: Context,\n ) {\n if (LOG_LEVEL_ORDERS[level] >= LOG_LEVEL_ORDERS[this.logLevel]) {\n const logForConsole: unknown[] = [\"[BluxClient]\", message];\n\n if (context?.extra) {\n logForConsole.push(context.extra);\n }\n if (context?.tags) {\n logForConsole.push(context.tags);\n }\n\n consoleMethodByLevel[level]?.(...logForConsole);\n }\n }\n public static debug(message: string | Error, context?: Context) {\n this.base(message, \"debug\", context);\n }\n public static log(message: string | Error, context?: Context) {\n this.base(message, \"log\", context);\n }\n public static warning(message: string | Error, context?: Context) {\n this.base(message, \"warning\", context);\n }\n public static error(message: string | Error, context?: Context) {\n this.base(message, \"error\", context);\n }\n public static fatal(message: string | Error, context?: Context) {\n this.base(message, \"fatal\", context);\n }\n\n public static setLevel(level: LogLevel) {\n this.logLevel = level;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionStorage.js","sourceRoot":"/","sources":["src/utils/SessionStorage.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"SessionStorage.js","sourceRoot":"/","sources":["src/utils/SessionStorage.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,aAAa,CAAC;AAGnC,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,aAAa;QAClB,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACpD,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IACzE,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAc;QACjC,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;CACF","sourcesContent":["const BLUX_USER_ID = \"blux_userId\";\n\n \nexport class SessionStorage {\n static getBluxUserId(): string | null {\n const userId = sessionStorage.getItem(BLUX_USER_ID);\n return userId === \"undefined\" || userId?.trim() === \"\" ? null : userId;\n }\n\n static setBluxUserId(userId: string) {\n sessionStorage.setItem(BLUX_USER_ID, userId);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operators.js","sourceRoot":"/","sources":["src/utils/operators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"operators.js","sourceRoot":"/","sources":["src/utils/operators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAI9B,MAAM,UAAU,cAAc;IAE5B,OAAO,MAAM,CAAC,CAAC,CAAC,EAAU,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;AAC1C,CAAC","sourcesContent":["import { filter } from \"rxjs\";\n\nimport type { OperatorFunction } from \"rxjs\";\n\nexport function filterNullable<T>(): OperatorFunction<T | null | undefined, T> {\n \n return filter((v): v is T => v != null);\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
1
|
import ObjectId from "bson-objectid";
|
|
2
|
+
import { z } from "zod";
|
|
3
3
|
export declare const objectIdSchema: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, ObjectId, string>;
|
|
4
4
|
export declare const stringToNumberSchema: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string | number, string | number>, number, string | number>;
|
|
5
5
|
export declare const dateSchema: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Date, string>;
|
|
@@ -24,11 +24,11 @@ export declare const eventPropertiesSchema: z.ZodObject<{
|
|
|
24
24
|
id: z.ZodString;
|
|
25
25
|
price: z.ZodNumber;
|
|
26
26
|
}, "strip", z.ZodTypeAny, {
|
|
27
|
-
id: string;
|
|
28
27
|
price: number;
|
|
29
|
-
}, {
|
|
30
28
|
id: string;
|
|
29
|
+
}, {
|
|
31
30
|
price: number;
|
|
31
|
+
id: string;
|
|
32
32
|
}>, "many">>;
|
|
33
33
|
search_query: z.ZodOptional<z.ZodString>;
|
|
34
34
|
order_amount: z.ZodOptional<z.ZodNumber>;
|
|
@@ -37,56 +37,56 @@ export declare const eventPropertiesSchema: z.ZodObject<{
|
|
|
37
37
|
id: z.ZodString;
|
|
38
38
|
type: z.ZodString;
|
|
39
39
|
}, "strip", z.ZodTypeAny, {
|
|
40
|
-
id: string;
|
|
41
40
|
type: string;
|
|
42
|
-
}, {
|
|
43
41
|
id: string;
|
|
42
|
+
}, {
|
|
44
43
|
type: string;
|
|
44
|
+
id: string;
|
|
45
45
|
}>>;
|
|
46
46
|
}, "strip", z.ZodTypeAny, {
|
|
47
|
-
tracking?: {
|
|
48
|
-
id: string;
|
|
49
|
-
type: string;
|
|
50
|
-
} | undefined;
|
|
51
|
-
item_id?: string | undefined;
|
|
52
|
-
rating?: number | undefined;
|
|
53
|
-
price?: number | undefined;
|
|
54
|
-
order_id?: string | undefined;
|
|
55
|
-
page?: string | undefined;
|
|
56
47
|
section?: string | undefined;
|
|
57
|
-
position?: number | undefined;
|
|
58
|
-
search_query?: string | undefined;
|
|
59
48
|
prev_section?: string | undefined;
|
|
60
49
|
recommendation_id?: string | undefined;
|
|
50
|
+
price?: number | undefined;
|
|
51
|
+
order_id?: string | undefined;
|
|
52
|
+
rating?: number | undefined;
|
|
61
53
|
prev_page?: string | undefined;
|
|
54
|
+
page?: string | undefined;
|
|
55
|
+
position?: number | undefined;
|
|
56
|
+
item_id?: string | undefined;
|
|
62
57
|
items?: {
|
|
63
|
-
id: string;
|
|
64
58
|
price: number;
|
|
59
|
+
id: string;
|
|
65
60
|
}[] | undefined;
|
|
61
|
+
search_query?: string | undefined;
|
|
66
62
|
order_amount?: number | undefined;
|
|
67
63
|
paid_amount?: number | undefined;
|
|
68
|
-
}, {
|
|
69
64
|
tracking?: {
|
|
70
|
-
id: string;
|
|
71
65
|
type: string;
|
|
66
|
+
id: string;
|
|
72
67
|
} | undefined;
|
|
73
|
-
|
|
74
|
-
rating?: number | undefined;
|
|
75
|
-
price?: number | undefined;
|
|
76
|
-
order_id?: string | undefined;
|
|
77
|
-
page?: string | undefined;
|
|
68
|
+
}, {
|
|
78
69
|
section?: string | undefined;
|
|
79
|
-
position?: number | undefined;
|
|
80
|
-
search_query?: string | undefined;
|
|
81
70
|
prev_section?: string | undefined;
|
|
82
71
|
recommendation_id?: string | undefined;
|
|
72
|
+
price?: number | undefined;
|
|
73
|
+
order_id?: string | undefined;
|
|
74
|
+
rating?: number | undefined;
|
|
83
75
|
prev_page?: string | undefined;
|
|
76
|
+
page?: string | undefined;
|
|
77
|
+
position?: number | undefined;
|
|
78
|
+
item_id?: string | undefined;
|
|
84
79
|
items?: {
|
|
85
|
-
id: string;
|
|
86
80
|
price: number;
|
|
81
|
+
id: string;
|
|
87
82
|
}[] | undefined;
|
|
83
|
+
search_query?: string | undefined;
|
|
88
84
|
order_amount?: number | undefined;
|
|
89
85
|
paid_amount?: number | undefined;
|
|
86
|
+
tracking?: {
|
|
87
|
+
type: string;
|
|
88
|
+
id: string;
|
|
89
|
+
} | undefined;
|
|
90
90
|
}>;
|
|
91
91
|
export type EventProperties = z.infer<typeof eventPropertiesSchema>;
|
|
92
92
|
export declare const recommendationRequestSchema: z.ZodObject<z.objectUtil.extendShape<Pick<{
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import ObjectId from "bson-objectid";
|
|
1
2
|
import { z, ZodError } from "zod";
|
|
2
|
-
import { COUNTRY_CODES } from "../constants/COUNTRIES";
|
|
3
3
|
import { assertEqualTypes } from "./assertEqualTypes";
|
|
4
|
+
import { COUNTRY_CODES } from "../constants/COUNTRIES";
|
|
4
5
|
import { ISO8601_REGEX } from "../constants/ISO8601_REGEX";
|
|
5
|
-
import ObjectId from "bson-objectid";
|
|
6
6
|
function isObjectIdString(value) {
|
|
7
7
|
return (typeof value === "string" && value.length === 24 && ObjectId.isValid(value));
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zodSchemas.js","sourceRoot":"/","sources":["src/utils/zodSchemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z, ZodError } from \"zod\";\nimport type { CountryCode } from \"../constants/COUNTRIES\";\nimport { COUNTRY_CODES } from \"../constants/COUNTRIES\";\nimport { assertEqualTypes } from \"./assertEqualTypes\";\nimport { ISO8601_REGEX } from \"../constants/ISO8601_REGEX\";\nimport ObjectId from \"bson-objectid\";\n\nfunction isObjectIdString(value: unknown): value is string {\n return (\n typeof value === \"string\" && value.length === 24 && ObjectId.isValid(value)\n );\n}\n\nexport const objectIdSchema = z\n .string()\n .refine(\n (v) => isObjectIdString(v),\n (v) =>\n new ZodError([\n {\n code: \"custom\",\n message: `Invalid ObjectId: ${v}`,\n path: [\"some_path\"],\n },\n ]),\n )\n .transform((v) => new ObjectId(v));\n\nexport const stringToNumberSchema = z\n .union([z.string(), z.number()])\n .refine(\n (v) => {\n if (typeof v === \"number\") return true;\n const parsed = Number(v);\n return !isNaN(parsed);\n },\n {\n message: \"Invalid number or string in stringToNumberSchema\",\n },\n )\n .transform((v): number => (typeof v === \"number\" ? v : Number(v)));\n\nexport const dateSchema = z\n .string()\n .refine(\n (dateString) => {\n return ISO8601_REGEX.test(dateString);\n },\n {\n message: \"Invalid date string\",\n },\n )\n .transform((dateString) => new Date(dateString));\n\nfunction convertAllObjectId(input: unknown): unknown {\n if (Array.isArray(input)) {\n return input.map((item) => convertAllObjectId(item));\n } else if (isObjectIdString(input)) {\n return new ObjectId(input);\n } else if (\n typeof input === \"string\" &&\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?Z$/.test(input)\n ) {\n return new Date(input);\n } else if (input !== null && typeof input === \"object\") {\n return Object.entries(input).reduce<Record<string, unknown>>(\n (acc, [key, value]) => {\n acc[key] = convertAllObjectId(value);\n return acc;\n },\n {},\n );\n }\n return input;\n}\n\nexport const anonymousObjectSchema = <T extends object = object>() =>\n z\n .object({})\n .passthrough()\n .transform((v) => convertAllObjectId(v) as T);\n\nexport const countryCodeWithLowerCaseSchema = z\n .string()\n .transform((v) => v.toUpperCase())\n .pipe(\n z.union([\n z.literal(\"419\"), // https://en.wikipedia.org/wiki/Language_code\n z.enum(COUNTRY_CODES as [CountryCode, ...CountryCode[]]),\n ]),\n )\n .transform((v) => (v === \"419\" ? undefined : v));\n\nexport const customPropertiesRequestSchema = z.record(\n z.union([\n dateSchema,\n z.string(),\n z.number(),\n z.boolean(),\n z.array(z.string()),\n z.array(z.object({})),\n z.object({}),\n z.null(),\n z.undefined(),\n ]),\n);\n\ntype CustomPropertiesRequest = z.infer<typeof customPropertiesRequestSchema>;\n\nexport const customPropertiesSchema = z.record(\n z.union([\n dateSchema,\n z.string(),\n z.number(),\n z.boolean(),\n z.array(z.string()),\n z.array(z.object({})),\n z.object({}),\n z.undefined(),\n ]),\n);\n\nexport type CustomProperties = z.infer<typeof customPropertiesSchema>;\n\nassertEqualTypes<\n {\n [K in keyof CustomPropertiesRequest]: Exclude<\n CustomPropertiesRequest[K],\n null\n >;\n },\n CustomProperties\n>(true);\n\nexport const stringToArraySchema = z\n .string()\n .transform((v) => v.split(\",\").map((item) => item.trim()))\n .refine((arr) => arr.every((item) => item.length > 0), {\n message: \"Each item should not be empty\",\n });\n\nexport const eventPropertiesSchema = z.object({\n section: z.string().optional(),\n prev_section: z.string().optional(),\n recommendation_id: z.string().optional(),\n price: z.number().optional(),\n order_id: z.string().optional(),\n rating: z.number().optional(),\n prev_page: z.string().optional(),\n page: z.string().optional(),\n position: z.number().optional(),\n item_id: z.string().optional(),\n items: z\n .array(\n z.object({\n id: z.string(),\n price: z.number(),\n }),\n )\n .optional(),\n search_query: z.string().optional(),\n order_amount: z.number().optional(),\n paid_amount: z.number().optional(),\n tracking: z\n .object({\n id: z.string(),\n type: z.string(),\n })\n .optional(),\n});\nexport type EventProperties = z.infer<typeof eventPropertiesSchema>;\n\n// Schema for Inference API\nconst inferenceRequestSchema = z.object({\n application_id: objectIdSchema,\n blux_user_id: objectIdSchema.nullish(),\n\n pipeline: z.array(\n z.object({\n name: z.string(),\n kwargs: z.record(z.any()),\n }),\n ),\n item_id: z.string().nullish(),\n item_ids: z.array(z.string()).nullish(),\n\n limit: z.number(),\n offset: z.number().nullish().default(0),\n options: z.record(z.string(), z.any()).nullish(), // todo: legacy 클라이언트 migration만을 위한 필드라는 점을 고려하여 필드명 수정 필요 ex. legacy_options\n});\n\nexport const recommendationRequestSchema = inferenceRequestSchema\n .pick({\n item_id: true,\n item_ids: true,\n limit: true,\n offset: true,\n })\n .extend({\n call_type: z.string(),\n category_id: z.string().nullish(),\n });\n\nexport type RecResponse = {\n item_ids: string[];\n metadata: Record<string, unknown>;\n recommendation_id: string | null;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"zodSchemas.js","sourceRoot":"/","sources":["src/utils/zodSchemas.ts"],"names":[],"mappings":"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","sourcesContent":["import ObjectId from \"bson-objectid\";\nimport { z, ZodError } from \"zod\";\n\nimport { assertEqualTypes } from \"./assertEqualTypes\";\nimport { COUNTRY_CODES } from \"../constants/COUNTRIES\";\nimport { ISO8601_REGEX } from \"../constants/ISO8601_REGEX\";\n\nimport type { CountryCode } from \"../constants/COUNTRIES\";\n\nfunction isObjectIdString(value: unknown): value is string {\n return (\n typeof value === \"string\" && value.length === 24 && ObjectId.isValid(value)\n );\n}\n\nexport const objectIdSchema = z\n .string()\n .refine(\n (v) => isObjectIdString(v),\n (v) =>\n new ZodError([\n {\n code: \"custom\",\n message: `Invalid ObjectId: ${v}`,\n path: [\"some_path\"],\n },\n ]),\n )\n .transform((v) => new ObjectId(v));\n\nexport const stringToNumberSchema = z\n .union([z.string(), z.number()])\n .refine(\n (v) => {\n if (typeof v === \"number\") return true;\n const parsed = Number(v);\n return !isNaN(parsed);\n },\n {\n message: \"Invalid number or string in stringToNumberSchema\",\n },\n )\n .transform((v): number => (typeof v === \"number\" ? v : Number(v)));\n\nexport const dateSchema = z\n .string()\n .refine(\n (dateString) => {\n return ISO8601_REGEX.test(dateString);\n },\n {\n message: \"Invalid date string\",\n },\n )\n .transform((dateString) => new Date(dateString));\n\nfunction convertAllObjectId(input: unknown): unknown {\n if (Array.isArray(input)) {\n return input.map((item) => convertAllObjectId(item));\n } else if (isObjectIdString(input)) {\n return new ObjectId(input);\n } else if (\n typeof input === \"string\" &&\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?Z$/.test(input)\n ) {\n return new Date(input);\n } else if (input !== null && typeof input === \"object\") {\n return Object.entries(input).reduce<Record<string, unknown>>(\n (acc, [key, value]) => {\n acc[key] = convertAllObjectId(value);\n return acc;\n },\n {},\n );\n }\n return input;\n}\n\nexport const anonymousObjectSchema = <T extends object = object>() =>\n z\n .object({})\n .passthrough()\n .transform((v) => convertAllObjectId(v) as T);\n\nexport const countryCodeWithLowerCaseSchema = z\n .string()\n .transform((v) => v.toUpperCase())\n .pipe(\n z.union([\n z.literal(\"419\"), // https://en.wikipedia.org/wiki/Language_code\n z.enum(COUNTRY_CODES as [CountryCode, ...CountryCode[]]),\n ]),\n )\n .transform((v) => (v === \"419\" ? undefined : v));\n\nexport const customPropertiesRequestSchema = z.record(\n z.union([\n dateSchema,\n z.string(),\n z.number(),\n z.boolean(),\n z.array(z.string()),\n z.array(z.object({})),\n z.object({}),\n z.null(),\n z.undefined(),\n ]),\n);\n\ntype CustomPropertiesRequest = z.infer<typeof customPropertiesRequestSchema>;\n\nexport const customPropertiesSchema = z.record(\n z.union([\n dateSchema,\n z.string(),\n z.number(),\n z.boolean(),\n z.array(z.string()),\n z.array(z.object({})),\n z.object({}),\n z.undefined(),\n ]),\n);\n\nexport type CustomProperties = z.infer<typeof customPropertiesSchema>;\n\nassertEqualTypes<\n {\n [K in keyof CustomPropertiesRequest]: Exclude<\n CustomPropertiesRequest[K],\n null\n >;\n },\n CustomProperties\n>(true);\n\nexport const stringToArraySchema = z\n .string()\n .transform((v) => v.split(\",\").map((item) => item.trim()))\n .refine((arr) => arr.every((item) => item.length > 0), {\n message: \"Each item should not be empty\",\n });\n\nexport const eventPropertiesSchema = z.object({\n section: z.string().optional(),\n prev_section: z.string().optional(),\n recommendation_id: z.string().optional(),\n price: z.number().optional(),\n order_id: z.string().optional(),\n rating: z.number().optional(),\n prev_page: z.string().optional(),\n page: z.string().optional(),\n position: z.number().optional(),\n item_id: z.string().optional(),\n items: z\n .array(\n z.object({\n id: z.string(),\n price: z.number(),\n }),\n )\n .optional(),\n search_query: z.string().optional(),\n order_amount: z.number().optional(),\n paid_amount: z.number().optional(),\n tracking: z\n .object({\n id: z.string(),\n type: z.string(),\n })\n .optional(),\n});\nexport type EventProperties = z.infer<typeof eventPropertiesSchema>;\n\n// Schema for Inference API\nconst inferenceRequestSchema = z.object({\n application_id: objectIdSchema,\n blux_user_id: objectIdSchema.nullish(),\n\n pipeline: z.array(\n z.object({\n name: z.string(),\n kwargs: z.record(z.any()),\n }),\n ),\n item_id: z.string().nullish(),\n item_ids: z.array(z.string()).nullish(),\n\n limit: z.number(),\n offset: z.number().nullish().default(0),\n options: z.record(z.string(), z.any()).nullish(), // todo: legacy 클라이언트 migration만을 위한 필드라는 점을 고려하여 필드명 수정 필요 ex. legacy_options\n});\n\nexport const recommendationRequestSchema = inferenceRequestSchema\n .pick({\n item_id: true,\n item_ids: true,\n limit: true,\n offset: true,\n })\n .extend({\n call_type: z.string(),\n category_id: z.string().nullish(),\n });\n\nexport type RecResponse = {\n item_ids: string[];\n metadata: Record<string, unknown>;\n recommendation_id: string | null;\n};\n"]}
|