@blux.ai/web-sdk 1.2.2 → 1.3.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/dist/package.json +1 -1
- package/dist/src/BluxClient.d.ts +11 -8
- package/dist/src/BluxClient.js +114 -70
- package/dist/src/BluxClient.js.map +1 -1
- package/dist/src/apis/APIs.d.ts +69 -69
- package/dist/src/apis/APIs.js +2 -2
- package/dist/src/apis/APIs.js.map +1 -1
- package/dist/src/constants/BLUX_ATTRIBUTES.d.ts +2 -2
- package/dist/src/constants/BLUX_ATTRIBUTES.js +2 -2
- package/dist/src/constants/BLUX_ATTRIBUTES.js.map +1 -1
- package/dist/src/events/AddCartaddEvent.d.ts +1 -1
- package/dist/src/events/AddCartaddEvent.js +2 -2
- package/dist/src/events/AddCartaddEvent.js.map +1 -1
- package/dist/src/events/AddClickEvent.d.ts +5 -0
- package/dist/src/events/AddClickEvent.js +14 -0
- package/dist/src/events/AddClickEvent.js.map +1 -0
- package/dist/src/events/AddInstantImpressionEvent.d.ts +1 -1
- package/dist/src/events/AddInstantImpressionEvent.js +2 -3
- package/dist/src/events/AddInstantImpressionEvent.js.map +1 -1
- package/dist/src/events/AddLikeEvent.d.ts +1 -1
- package/dist/src/events/AddLikeEvent.js +2 -1
- package/dist/src/events/AddLikeEvent.js.map +1 -1
- package/dist/src/events/AddPageViewEvent.d.ts +1 -1
- package/dist/src/events/AddPageViewEvent.js +2 -2
- package/dist/src/events/AddPageViewEvent.js.map +1 -1
- package/dist/src/events/AddPageVisitEvent.d.ts +1 -1
- package/dist/src/events/AddPageVisitEvent.js +4 -1
- package/dist/src/events/AddPageVisitEvent.js.map +1 -1
- package/dist/src/events/AddPersistentImpressionEvent.d.ts +1 -1
- package/dist/src/events/AddPersistentImpressionEvent.js +2 -3
- package/dist/src/events/AddPersistentImpressionEvent.js.map +1 -1
- package/dist/src/events/AddProductDetailViewEvent.d.ts +1 -1
- package/dist/src/events/AddProductDetailViewEvent.js +2 -5
- package/dist/src/events/AddProductDetailViewEvent.js.map +1 -1
- package/dist/src/events/AddPurchaseEvent.d.ts +1 -1
- package/dist/src/events/AddPurchaseEvent.js +2 -1
- package/dist/src/events/AddPurchaseEvent.js.map +1 -1
- package/dist/src/events/AddRateEvent.d.ts +1 -1
- package/dist/src/events/AddRateEvent.js +2 -2
- package/dist/src/events/AddRateEvent.js.map +1 -1
- package/dist/src/events/AddSearchEvent.d.ts +1 -1
- package/dist/src/events/AddSearchEvent.js +2 -2
- package/dist/src/events/AddSearchEvent.js.map +1 -1
- package/dist/src/events/AddSectionViewEvent.d.ts +1 -1
- package/dist/src/events/AddSectionViewEvent.js +2 -3
- package/dist/src/events/AddSectionViewEvent.js.map +1 -1
- package/dist/src/events/Event.d.ts +3 -2
- package/dist/src/events/Event.js +2 -1
- package/dist/src/events/Event.js.map +1 -1
- package/dist/src/events/VisitEvent.d.ts +1 -1
- package/dist/src/events/VisitEvent.js +4 -1
- package/dist/src/events/VisitEvent.js.map +1 -1
- package/dist/src/events/index.d.ts +3 -0
- package/dist/src/events/index.js +3 -0
- package/dist/src/events/index.js.map +1 -1
- package/dist/src/events/types.d.ts +11 -22
- package/dist/src/events/types.js.map +1 -1
- package/dist/src/utils/Logger.js.map +1 -1
- package/dist/src/utils/zodSchemas.d.ts +16 -16
- package/dist/src/utils/zodSchemas.js +6 -4
- package/dist/src/utils/zodSchemas.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Event, EventType } from "./Event";
|
|
2
2
|
export class AddPersistentImpressionEvent extends Event {
|
|
3
|
-
constructor({ page, section, position,
|
|
3
|
+
constructor({ item_id, page, section, position, tracking, custom_event_properties, }) {
|
|
4
4
|
super({
|
|
5
5
|
event_type: EventType.persistent_impression,
|
|
6
6
|
event_properties: {
|
|
@@ -8,8 +8,7 @@ export class AddPersistentImpressionEvent extends Event {
|
|
|
8
8
|
page,
|
|
9
9
|
section,
|
|
10
10
|
position,
|
|
11
|
-
|
|
12
|
-
trackings,
|
|
11
|
+
tracking,
|
|
13
12
|
},
|
|
14
13
|
custom_event_properties,
|
|
15
14
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddPersistentImpressionEvent.js","sourceRoot":"/","sources":["src/events/AddPersistentImpressionEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IACrD,YAAY,EACV,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"AddPersistentImpressionEvent.js","sourceRoot":"/","sources":["src/events/AddPersistentImpressionEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IACrD,YAAY,EACV,OAAO,EACP,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,uBAAuB,GACO;QAC9B,KAAK,CAAC;YACJ,UAAU,EAAE,SAAS,CAAC,qBAAqB;YAC3C,gBAAgB,EAAE;gBAChB,OAAO;gBACP,IAAI;gBACJ,OAAO;gBACP,QAAQ;gBACR,QAAQ;aACT;YACD,uBAAuB;SACxB,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import type { IAddPersistentImpressionEvent } from \"./types\";\nimport { Event, EventType } from \"./Event\";\n\nexport class AddPersistentImpressionEvent extends Event {\n constructor({\n item_id,\n page,\n section,\n position,\n tracking,\n custom_event_properties,\n }: IAddPersistentImpressionEvent) {\n super({\n event_type: EventType.persistent_impression,\n event_properties: {\n item_id,\n page,\n section,\n position,\n tracking,\n },\n custom_event_properties,\n });\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IAddProductDetailViewEvent } from "./types";
|
|
2
2
|
import { Event } from "./Event";
|
|
3
3
|
export declare class AddProductDetailViewEvent extends Event {
|
|
4
|
-
constructor({ item_id,
|
|
4
|
+
constructor({ item_id, tracking, custom_event_properties, }: IAddProductDetailViewEvent);
|
|
5
5
|
}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { Event, EventType } from "./Event";
|
|
2
2
|
export class AddProductDetailViewEvent extends Event {
|
|
3
|
-
constructor({ item_id,
|
|
3
|
+
constructor({ item_id, tracking, custom_event_properties, }) {
|
|
4
4
|
super({
|
|
5
5
|
event_type: EventType.product_detail_view,
|
|
6
6
|
event_properties: {
|
|
7
7
|
item_id,
|
|
8
|
-
|
|
9
|
-
prev_section,
|
|
10
|
-
recommendation_id,
|
|
11
|
-
trackings,
|
|
8
|
+
tracking,
|
|
12
9
|
},
|
|
13
10
|
custom_event_properties,
|
|
14
11
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddProductDetailViewEvent.js","sourceRoot":"/","sources":["src/events/AddProductDetailViewEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,EACV,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"AddProductDetailViewEvent.js","sourceRoot":"/","sources":["src/events/AddProductDetailViewEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,EACV,OAAO,EACP,QAAQ,EACR,uBAAuB,GACI;QAC3B,KAAK,CAAC;YACJ,UAAU,EAAE,SAAS,CAAC,mBAAmB;YACzC,gBAAgB,EAAE;gBAChB,OAAO;gBACP,QAAQ;aACT;YACD,uBAAuB;SACxB,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import type { IAddProductDetailViewEvent } from \"./types\";\nimport { Event, EventType } from \"./Event\";\n\nexport class AddProductDetailViewEvent extends Event {\n constructor({\n item_id,\n tracking,\n custom_event_properties,\n }: IAddProductDetailViewEvent) {\n super({\n event_type: EventType.product_detail_view,\n event_properties: {\n item_id,\n tracking,\n },\n custom_event_properties,\n });\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IAddPurchaseEvent } from "./types";
|
|
2
2
|
import { Event } from "./Event";
|
|
3
3
|
export declare class AddPurchaseEvent extends Event {
|
|
4
|
-
constructor({ item_id, price, order_id, custom_event_properties, }: IAddPurchaseEvent);
|
|
4
|
+
constructor({ item_id, price, order_id, tracking, custom_event_properties, }: IAddPurchaseEvent);
|
|
5
5
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { Event, EventType } from "./Event";
|
|
2
2
|
export class AddPurchaseEvent extends Event {
|
|
3
|
-
constructor({ item_id, price, order_id, custom_event_properties, }) {
|
|
3
|
+
constructor({ item_id, price, order_id, tracking, custom_event_properties, }) {
|
|
4
4
|
super({
|
|
5
5
|
event_type: EventType.purchase,
|
|
6
6
|
event_properties: {
|
|
7
7
|
item_id,
|
|
8
8
|
price,
|
|
9
9
|
order_id,
|
|
10
|
+
tracking,
|
|
10
11
|
},
|
|
11
12
|
custom_event_properties,
|
|
12
13
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddPurchaseEvent.js","sourceRoot":"/","sources":["src/events/AddPurchaseEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,EACV,OAAO,EACP,KAAK,EACL,QAAQ,EACR,uBAAuB,GACL;QAClB,KAAK,CAAC;YACJ,UAAU,EAAE,SAAS,CAAC,QAAQ;YAC9B,gBAAgB,EAAE;gBAChB,OAAO;gBACP,KAAK;gBACL,QAAQ;aACT;YACD,uBAAuB;SACxB,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import type { IAddPurchaseEvent } from \"./types\";\nimport { Event, EventType } from \"./Event\";\n\nexport class AddPurchaseEvent extends Event {\n constructor({\n item_id,\n price,\n order_id,\n custom_event_properties,\n }: IAddPurchaseEvent) {\n super({\n event_type: EventType.purchase,\n event_properties: {\n item_id,\n price,\n order_id,\n },\n custom_event_properties,\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AddPurchaseEvent.js","sourceRoot":"/","sources":["src/events/AddPurchaseEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,EACV,OAAO,EACP,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,uBAAuB,GACL;QAClB,KAAK,CAAC;YACJ,UAAU,EAAE,SAAS,CAAC,QAAQ;YAC9B,gBAAgB,EAAE;gBAChB,OAAO;gBACP,KAAK;gBACL,QAAQ;gBACR,QAAQ;aACT;YACD,uBAAuB;SACxB,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import type { IAddPurchaseEvent } from \"./types\";\nimport { Event, EventType } from \"./Event\";\n\nexport class AddPurchaseEvent extends Event {\n constructor({\n item_id,\n price,\n order_id,\n tracking,\n custom_event_properties,\n }: IAddPurchaseEvent) {\n super({\n event_type: EventType.purchase,\n event_properties: {\n item_id,\n price,\n order_id,\n tracking,\n },\n custom_event_properties,\n });\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IAddRateEvent } from "./types";
|
|
2
2
|
import { Event } from "./Event";
|
|
3
3
|
export declare class AddRateEvent extends Event {
|
|
4
|
-
constructor({ item_id, rating, custom_event_properties }: IAddRateEvent);
|
|
4
|
+
constructor({ item_id, rating, tracking, custom_event_properties, }: IAddRateEvent);
|
|
5
5
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Event, EventType } from "./Event";
|
|
2
2
|
export class AddRateEvent extends Event {
|
|
3
|
-
constructor({ item_id, rating, custom_event_properties }) {
|
|
3
|
+
constructor({ item_id, rating, tracking, custom_event_properties, }) {
|
|
4
4
|
super({
|
|
5
5
|
event_type: EventType.rate,
|
|
6
|
-
event_properties: { item_id, rating },
|
|
6
|
+
event_properties: { item_id, rating, tracking },
|
|
7
7
|
custom_event_properties,
|
|
8
8
|
});
|
|
9
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddRateEvent.js","sourceRoot":"/","sources":["src/events/AddRateEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,
|
|
1
|
+
{"version":3,"file":"AddRateEvent.js","sourceRoot":"/","sources":["src/events/AddRateEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,EACV,OAAO,EACP,MAAM,EACN,QAAQ,EACR,uBAAuB,GACT;QACd,KAAK,CAAC;YACJ,UAAU,EAAE,SAAS,CAAC,IAAI;YAC1B,gBAAgB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;YAC/C,uBAAuB;SACxB,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import type { IAddRateEvent } from \"./types\";\nimport { Event, EventType } from \"./Event\";\n\nexport class AddRateEvent extends Event {\n constructor({\n item_id,\n rating,\n tracking,\n custom_event_properties,\n }: IAddRateEvent) {\n super({\n event_type: EventType.rate,\n event_properties: { item_id, rating, tracking },\n custom_event_properties,\n });\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IAddSearchEvent } from "./types";
|
|
2
2
|
import { Event } from "./Event";
|
|
3
3
|
export declare class AddSearchEvent extends Event {
|
|
4
|
-
constructor({ search_query,
|
|
4
|
+
constructor({ search_query, tracking, custom_event_properties, }: IAddSearchEvent);
|
|
5
5
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Event, EventType } from "./Event";
|
|
2
2
|
export class AddSearchEvent extends Event {
|
|
3
|
-
constructor({ search_query,
|
|
3
|
+
constructor({ search_query, tracking, custom_event_properties, }) {
|
|
4
4
|
super({
|
|
5
5
|
event_type: EventType.search,
|
|
6
|
-
event_properties: { search_query,
|
|
6
|
+
event_properties: { search_query, tracking },
|
|
7
7
|
custom_event_properties,
|
|
8
8
|
});
|
|
9
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddSearchEvent.js","sourceRoot":"/","sources":["src/events/AddSearchEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,EACV,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"AddSearchEvent.js","sourceRoot":"/","sources":["src/events/AddSearchEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,EACV,YAAY,EACZ,QAAQ,EACR,uBAAuB,GACP;QAChB,KAAK,CAAC;YACJ,UAAU,EAAE,SAAS,CAAC,MAAM;YAC5B,gBAAgB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE;YAC5C,uBAAuB;SACxB,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import type { IAddSearchEvent } from \"./types\";\nimport { Event, EventType } from \"./Event\";\n\nexport class AddSearchEvent extends Event {\n constructor({\n search_query,\n tracking,\n custom_event_properties,\n }: IAddSearchEvent) {\n super({\n event_type: EventType.search,\n event_properties: { search_query, tracking },\n custom_event_properties,\n });\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IAddSectionViewEvent } from "./types";
|
|
2
2
|
import { Event } from "./Event";
|
|
3
3
|
export declare class AddSectionViewEvent extends Event {
|
|
4
|
-
constructor({ section,
|
|
4
|
+
constructor({ section, tracking, custom_event_properties, }: IAddSectionViewEvent);
|
|
5
5
|
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { Event, EventType } from "./Event";
|
|
2
2
|
export class AddSectionViewEvent extends Event {
|
|
3
|
-
constructor({ section,
|
|
3
|
+
constructor({ section, tracking, custom_event_properties, }) {
|
|
4
4
|
super({
|
|
5
5
|
event_type: EventType.section_view,
|
|
6
6
|
event_properties: {
|
|
7
7
|
section,
|
|
8
|
-
|
|
9
|
-
trackings,
|
|
8
|
+
tracking,
|
|
10
9
|
},
|
|
11
10
|
custom_event_properties,
|
|
12
11
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddSectionViewEvent.js","sourceRoot":"/","sources":["src/events/AddSectionViewEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,EACV,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"AddSectionViewEvent.js","sourceRoot":"/","sources":["src/events/AddSectionViewEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,EACV,OAAO,EACP,QAAQ,EACR,uBAAuB,GACF;QACrB,KAAK,CAAC;YACJ,UAAU,EAAE,SAAS,CAAC,YAAY;YAClC,gBAAgB,EAAE;gBAChB,OAAO;gBACP,QAAQ;aACT;YACD,uBAAuB;SACxB,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import type { IAddSectionViewEvent } from \"./types\";\nimport { Event, EventType } from \"./Event\";\n\nexport class AddSectionViewEvent extends Event {\n constructor({\n section,\n tracking,\n custom_event_properties,\n }: IAddSectionViewEvent) {\n super({\n event_type: EventType.section_view,\n event_properties: {\n section,\n tracking,\n },\n custom_event_properties,\n });\n }\n}\n"]}
|
|
@@ -14,10 +14,11 @@ export declare enum EventType {
|
|
|
14
14
|
rate = "rate",
|
|
15
15
|
page_visit = "page_visit",
|
|
16
16
|
page_view = "page_view",
|
|
17
|
-
section_view = "section_view",
|
|
18
17
|
instant_impression = "instant_impression",
|
|
19
18
|
persistent_impression = "persistent_impression",
|
|
20
|
-
search = "search"
|
|
19
|
+
search = "search",
|
|
20
|
+
section_view = "section_view",
|
|
21
|
+
click = "click"
|
|
21
22
|
}
|
|
22
23
|
export declare abstract class Event {
|
|
23
24
|
readonly request: EventRequest;
|
package/dist/src/events/Event.js
CHANGED
|
@@ -16,10 +16,11 @@ export var EventType;
|
|
|
16
16
|
EventType["rate"] = "rate";
|
|
17
17
|
EventType["page_visit"] = "page_visit";
|
|
18
18
|
EventType["page_view"] = "page_view";
|
|
19
|
-
EventType["section_view"] = "section_view";
|
|
20
19
|
EventType["instant_impression"] = "instant_impression";
|
|
21
20
|
EventType["persistent_impression"] = "persistent_impression";
|
|
22
21
|
EventType["search"] = "search";
|
|
22
|
+
EventType["section_view"] = "section_view";
|
|
23
|
+
EventType["click"] = "click";
|
|
23
24
|
})(EventType || (EventType = {}));
|
|
24
25
|
export class Event {
|
|
25
26
|
request;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Event.js","sourceRoot":"/","sources":["src/events/Event.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"Event.js","sourceRoot":"/","sources":["src/events/Event.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,CAAN,IAAY,SAyBX;AAzBD,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,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,EAzBW,SAAS,KAAT,SAAS,QAyBpB;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 type { EventRequest } from \"./types\";\n\nimport { v4 as uuid } from \"uuid\";\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 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,8 +1,11 @@
|
|
|
1
1
|
import { Event, EventType } from "./Event";
|
|
2
2
|
export class VisitEvent extends Event {
|
|
3
|
-
constructor({ custom_event_properties }) {
|
|
3
|
+
constructor({ tracking, custom_event_properties }) {
|
|
4
4
|
super({
|
|
5
5
|
event_type: EventType.visit,
|
|
6
|
+
event_properties: {
|
|
7
|
+
tracking,
|
|
8
|
+
},
|
|
6
9
|
custom_event_properties,
|
|
7
10
|
});
|
|
8
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisitEvent.js","sourceRoot":"/","sources":["src/events/VisitEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC,YAAY,EAAE,uBAAuB,EAAe;
|
|
1
|
+
{"version":3,"file":"VisitEvent.js","sourceRoot":"/","sources":["src/events/VisitEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC,YAAY,EAAE,QAAQ,EAAE,uBAAuB,EAAe;QAC5D,KAAK,CAAC;YACJ,UAAU,EAAE,SAAS,CAAC,KAAK;YAC3B,gBAAgB,EAAE;gBAChB,QAAQ;aACT;YACD,uBAAuB;SACxB,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import type { IVisitEvent } from \"./types\";\nimport { Event, EventType } from \"./Event\";\n\nexport class VisitEvent extends Event {\n constructor({ tracking, custom_event_properties }: IVisitEvent) {\n super({\n event_type: EventType.visit,\n event_properties: {\n tracking,\n },\n custom_event_properties,\n });\n }\n}\n"]}
|
package/dist/src/events/index.js
CHANGED
|
@@ -9,4 +9,7 @@ export * from "./AddPurchaseEvent";
|
|
|
9
9
|
export * from "./AddRateEvent";
|
|
10
10
|
export * from "./AddSectionViewEvent";
|
|
11
11
|
export * from "./AddSearchEvent";
|
|
12
|
+
export * from "./AddPageVisitEvent";
|
|
13
|
+
export * from "./AddClickEvent";
|
|
14
|
+
export * from "./VisitEvent";
|
|
12
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -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,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,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 \"./AddPurchaseEvent\";\nexport * from \"./AddRateEvent\";\nexport * from \"./AddSectionViewEvent\";\nexport * from \"./AddSearchEvent\";\n"]}
|
|
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,oBAAoB,CAAC;AACnC,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 \"./AddPurchaseEvent\";\nexport * from \"./AddRateEvent\";\nexport * from \"./AddSectionViewEvent\";\nexport * from \"./AddSearchEvent\";\nexport * from \"./AddPageVisitEvent\";\nexport * from \"./AddClickEvent\";\nexport * from \"./VisitEvent\";\n"]}
|
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
type EventProperties = {
|
|
2
2
|
item_id?: string;
|
|
3
|
+
page?: string;
|
|
3
4
|
section?: string;
|
|
4
|
-
prev_section?: string;
|
|
5
|
-
recommendation_id?: string;
|
|
6
5
|
price?: number;
|
|
7
6
|
order_id?: string;
|
|
8
7
|
rating?: number;
|
|
9
|
-
prev_page?: string;
|
|
10
|
-
page?: string;
|
|
11
8
|
position?: number;
|
|
12
9
|
search_query?: string;
|
|
13
10
|
order_amount?: number;
|
|
14
11
|
paid_amount?: number;
|
|
15
|
-
|
|
12
|
+
tracking?: {
|
|
16
13
|
id: string;
|
|
17
14
|
type: string;
|
|
18
|
-
}
|
|
15
|
+
};
|
|
19
16
|
};
|
|
20
17
|
export interface EventRequest {
|
|
21
18
|
id: string;
|
|
@@ -28,20 +25,17 @@ export interface EventRequest {
|
|
|
28
25
|
};
|
|
29
26
|
captured_at: string;
|
|
30
27
|
}
|
|
31
|
-
type BaseEvent = Omit<EventRequest, "
|
|
28
|
+
type BaseEvent = Omit<EventRequest, "id" | "event_type" | "event_properties" | "internal_event_properties" | "captured_at"> & {
|
|
29
|
+
tracking?: EventProperties["tracking"];
|
|
30
|
+
};
|
|
32
31
|
export interface IAddProductDetailViewEvent extends BaseEvent {
|
|
33
32
|
item_id: string;
|
|
34
|
-
recommendation_id?: string;
|
|
35
|
-
prev_page?: string;
|
|
36
|
-
prev_section?: string;
|
|
37
|
-
trackings?: EventProperties["trackings"];
|
|
38
33
|
}
|
|
39
34
|
export interface IAddLikeEvent extends BaseEvent {
|
|
40
35
|
item_id: string;
|
|
41
36
|
}
|
|
42
37
|
export interface IAddCartaddEvent extends BaseEvent {
|
|
43
38
|
item_id: string;
|
|
44
|
-
trackings?: EventProperties["trackings"];
|
|
45
39
|
}
|
|
46
40
|
export interface IAddRateEvent extends BaseEvent {
|
|
47
41
|
item_id: string;
|
|
@@ -58,33 +52,28 @@ export interface IAddCustomEvent extends BaseEvent {
|
|
|
58
52
|
}
|
|
59
53
|
export type IVisitEvent = BaseEvent;
|
|
60
54
|
export type IAddPageVisitEvent = BaseEvent;
|
|
61
|
-
export interface IAddPageViewEvent extends
|
|
55
|
+
export interface IAddPageViewEvent extends BaseEvent {
|
|
62
56
|
page: string;
|
|
63
|
-
trackings?: EventProperties["trackings"];
|
|
64
57
|
}
|
|
65
|
-
export interface IAddSectionViewEvent extends
|
|
58
|
+
export interface IAddSectionViewEvent extends BaseEvent {
|
|
66
59
|
section: string;
|
|
67
|
-
recommendation_id?: string;
|
|
68
|
-
trackings?: EventProperties["trackings"];
|
|
69
60
|
}
|
|
70
61
|
export interface IAddInstantImpressionEvent extends BaseEvent {
|
|
71
62
|
item_id: string;
|
|
72
63
|
page: string;
|
|
73
64
|
section: string;
|
|
74
65
|
position: number;
|
|
75
|
-
recommendation_id?: string;
|
|
76
|
-
trackings?: EventProperties["trackings"];
|
|
77
66
|
}
|
|
78
67
|
export interface IAddPersistentImpressionEvent extends BaseEvent {
|
|
79
68
|
item_id: string;
|
|
80
69
|
page: string;
|
|
81
70
|
section: string;
|
|
82
71
|
position: number;
|
|
83
|
-
recommendation_id?: string;
|
|
84
|
-
trackings?: EventProperties["trackings"];
|
|
85
72
|
}
|
|
86
73
|
export interface IAddSearchEvent extends BaseEvent {
|
|
87
74
|
search_query: string;
|
|
88
|
-
|
|
75
|
+
}
|
|
76
|
+
export interface IAddClickEvent extends BaseEvent {
|
|
77
|
+
item_id: string;
|
|
89
78
|
}
|
|
90
79
|
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
|
|
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 = Omit<\n EventRequest,\n | \"id\"\n | \"event_type\"\n | \"event_properties\"\n | \"internal_event_properties\"\n | \"captured_at\"\n> & { tracking?: EventProperties[\"tracking\"] };\n\nexport interface IAddProductDetailViewEvent extends BaseEvent {\n item_id: string;\n}\n\nexport interface IAddLikeEvent extends BaseEvent {\n item_id: string;\n}\n\nexport interface IAddCartaddEvent extends BaseEvent {\n item_id: string;\n}\n\nexport interface IAddRateEvent extends BaseEvent {\n item_id: string;\n rating: number;\n}\n\nexport interface IAddPurchaseEvent extends BaseEvent {\n item_id: string;\n price: number;\n order_id?: string;\n}\n\nexport interface IAddCustomEvent extends BaseEvent {\n event_type: string;\n event_properties?: 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 item_id: string;\n page: string;\n section: string;\n position: number;\n}\n\nexport interface IAddPersistentImpressionEvent extends BaseEvent {\n item_id: string;\n page: string;\n section: string;\n position: number;\n}\n\nexport interface IAddSearchEvent extends BaseEvent {\n search_query: string;\n}\n\nexport interface IAddClickEvent extends BaseEvent {\n item_id: string;\n}\n"]}
|
|
@@ -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;AAIF,kEAAkE;AAClE,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;
|
|
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;AAIF,kEAAkE;AAClE,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// eslint-disable-next-line @typescript-eslint/no-extraneous-class\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"]}
|
|
@@ -5,8 +5,8 @@ export declare const stringToNumberSchema: z.ZodEffects<z.ZodEffects<z.ZodUnion<
|
|
|
5
5
|
export declare const dateSchema: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Date, string>;
|
|
6
6
|
export declare const anonymousObjectSchema: <T extends object = object>() => z.ZodEffects<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>, T, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>;
|
|
7
7
|
export declare const countryCodeWithLowerCaseSchema: z.ZodEffects<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodUnion<[z.ZodLiteral<"419">, z.ZodEnum<["AF" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AI" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "BT" | "BO" | "BA" | "BW" | "BR" | "IO" | "BN" | "BG" | "BF" | "BI" | "KH" | "CM" | "CV" | "KY" | "CF" | "TD" | "CL" | "CN" | "CO" | "KM" | "CG" | "CD" | "CK" | "CR" | "CI" | "HR" | "CU" | "CY" | "CZ" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "ET" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GN" | "GW" | "HT" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "ID" | "IR" | "IQ" | "IE" | "IL" | "IT" | "JM" | "JP" | "JO" | "KE" | "KI" | "KP" | "KR" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MK" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "GY" | "PE" | "PH" | "PL" | "PT" | "PR" | "QA" | "RO" | "RU" | "KZ" | "RW" | "RE" | "BL" | "SH" | "KN" | "LC" | "MF" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SK" | "SI" | "SB" | "SO" | "ZA" | "SS" | "ES" | "LK" | "SD" | "SR" | "SZ" | "SE" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TR" | "TM" | "TC" | "TV" | "UG" | "UA" | "AE" | "GB" | "US" | "CA" | "UY" | "UZ" | "VU" | "VE" | "VN" | "VG" | "VI" | "WF" | "YE" | "ZM" | "ZW", ...("AF" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AI" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "BT" | "BO" | "BA" | "BW" | "BR" | "IO" | "BN" | "BG" | "BF" | "BI" | "KH" | "CM" | "CV" | "KY" | "CF" | "TD" | "CL" | "CN" | "CO" | "KM" | "CG" | "CD" | "CK" | "CR" | "CI" | "HR" | "CU" | "CY" | "CZ" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "ET" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GN" | "GW" | "HT" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "ID" | "IR" | "IQ" | "IE" | "IL" | "IT" | "JM" | "JP" | "JO" | "KE" | "KI" | "KP" | "KR" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MK" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "GY" | "PE" | "PH" | "PL" | "PT" | "PR" | "QA" | "RO" | "RU" | "KZ" | "RW" | "RE" | "BL" | "SH" | "KN" | "LC" | "MF" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SK" | "SI" | "SB" | "SO" | "ZA" | "SS" | "ES" | "LK" | "SD" | "SR" | "SZ" | "SE" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TR" | "TM" | "TC" | "TV" | "UG" | "UA" | "AE" | "GB" | "US" | "CA" | "UY" | "UZ" | "VU" | "VE" | "VN" | "VG" | "VI" | "WF" | "YE" | "ZM" | "ZW")[]]>]>>, "AF" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AI" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "BT" | "BO" | "BA" | "BW" | "BR" | "IO" | "BN" | "BG" | "BF" | "BI" | "KH" | "CM" | "CV" | "KY" | "CF" | "TD" | "CL" | "CN" | "CO" | "KM" | "CG" | "CD" | "CK" | "CR" | "CI" | "HR" | "CU" | "CY" | "CZ" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "ET" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GN" | "GW" | "HT" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "ID" | "IR" | "IQ" | "IE" | "IL" | "IT" | "JM" | "JP" | "JO" | "KE" | "KI" | "KP" | "KR" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MK" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "GY" | "PE" | "PH" | "PL" | "PT" | "PR" | "QA" | "RO" | "RU" | "KZ" | "RW" | "RE" | "BL" | "SH" | "KN" | "LC" | "MF" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SK" | "SI" | "SB" | "SO" | "ZA" | "SS" | "ES" | "LK" | "SD" | "SR" | "SZ" | "SE" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TR" | "TM" | "TC" | "TV" | "UG" | "UA" | "AE" | "GB" | "US" | "CA" | "UY" | "UZ" | "VU" | "VE" | "VN" | "VG" | "VI" | "WF" | "YE" | "ZM" | "ZW" | undefined, string>;
|
|
8
|
-
export declare const customPropertiesRequestSchema: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Date, string>, z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodArray<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>, "many">, z.ZodNull, z.ZodUndefined]>>;
|
|
9
|
-
export declare const customPropertiesSchema: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Date, string>, z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodArray<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>, "many">, z.ZodUndefined]>>;
|
|
8
|
+
export declare const customPropertiesRequestSchema: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Date, string>, z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodArray<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>, "many">, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>, z.ZodNull, z.ZodUndefined]>>;
|
|
9
|
+
export declare const customPropertiesSchema: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Date, string>, z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodArray<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>, "many">, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>, z.ZodUndefined]>>;
|
|
10
10
|
export type CustomProperties = z.infer<typeof customPropertiesSchema>;
|
|
11
11
|
export declare const stringToArraySchema: z.ZodEffects<z.ZodEffects<z.ZodString, string[], string>, string[], string>;
|
|
12
12
|
export declare const eventPropertiesSchema: z.ZodObject<{
|
|
@@ -33,7 +33,7 @@ export declare const eventPropertiesSchema: z.ZodObject<{
|
|
|
33
33
|
search_query: z.ZodOptional<z.ZodString>;
|
|
34
34
|
order_amount: z.ZodOptional<z.ZodNumber>;
|
|
35
35
|
paid_amount: z.ZodOptional<z.ZodNumber>;
|
|
36
|
-
|
|
36
|
+
tracking: z.ZodOptional<z.ZodObject<{
|
|
37
37
|
id: z.ZodString;
|
|
38
38
|
type: z.ZodString;
|
|
39
39
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -42,16 +42,13 @@ export declare const eventPropertiesSchema: z.ZodObject<{
|
|
|
42
42
|
}, {
|
|
43
43
|
id: string;
|
|
44
44
|
type: string;
|
|
45
|
-
}
|
|
45
|
+
}>>;
|
|
46
46
|
}, "strip", z.ZodTypeAny, {
|
|
47
|
-
|
|
48
|
-
recommendation_id?: string | undefined;
|
|
49
|
-
prev_page?: string | undefined;
|
|
50
|
-
prev_section?: string | undefined;
|
|
51
|
-
trackings?: {
|
|
47
|
+
tracking?: {
|
|
52
48
|
id: string;
|
|
53
49
|
type: string;
|
|
54
|
-
}
|
|
50
|
+
} | undefined;
|
|
51
|
+
item_id?: string | undefined;
|
|
55
52
|
rating?: number | undefined;
|
|
56
53
|
price?: number | undefined;
|
|
57
54
|
order_id?: string | undefined;
|
|
@@ -59,6 +56,9 @@ export declare const eventPropertiesSchema: z.ZodObject<{
|
|
|
59
56
|
section?: string | undefined;
|
|
60
57
|
position?: number | undefined;
|
|
61
58
|
search_query?: string | undefined;
|
|
59
|
+
prev_section?: string | undefined;
|
|
60
|
+
recommendation_id?: string | undefined;
|
|
61
|
+
prev_page?: string | undefined;
|
|
62
62
|
items?: {
|
|
63
63
|
id: string;
|
|
64
64
|
price: number;
|
|
@@ -66,14 +66,11 @@ export declare const eventPropertiesSchema: z.ZodObject<{
|
|
|
66
66
|
order_amount?: number | undefined;
|
|
67
67
|
paid_amount?: number | undefined;
|
|
68
68
|
}, {
|
|
69
|
-
|
|
70
|
-
recommendation_id?: string | undefined;
|
|
71
|
-
prev_page?: string | undefined;
|
|
72
|
-
prev_section?: string | undefined;
|
|
73
|
-
trackings?: {
|
|
69
|
+
tracking?: {
|
|
74
70
|
id: string;
|
|
75
71
|
type: string;
|
|
76
|
-
}
|
|
72
|
+
} | undefined;
|
|
73
|
+
item_id?: string | undefined;
|
|
77
74
|
rating?: number | undefined;
|
|
78
75
|
price?: number | undefined;
|
|
79
76
|
order_id?: string | undefined;
|
|
@@ -81,6 +78,9 @@ export declare const eventPropertiesSchema: z.ZodObject<{
|
|
|
81
78
|
section?: string | undefined;
|
|
82
79
|
position?: number | undefined;
|
|
83
80
|
search_query?: string | undefined;
|
|
81
|
+
prev_section?: string | undefined;
|
|
82
|
+
recommendation_id?: string | undefined;
|
|
83
|
+
prev_page?: string | undefined;
|
|
84
84
|
items?: {
|
|
85
85
|
id: string;
|
|
86
86
|
price: number;
|
|
@@ -62,7 +62,7 @@ export const countryCodeWithLowerCaseSchema = z
|
|
|
62
62
|
.string()
|
|
63
63
|
.transform((v) => v.toUpperCase())
|
|
64
64
|
.pipe(z.union([
|
|
65
|
-
z.literal("419"),
|
|
65
|
+
z.literal("419"), // https://en.wikipedia.org/wiki/Language_code
|
|
66
66
|
z.enum(COUNTRY_CODES),
|
|
67
67
|
]))
|
|
68
68
|
.transform((v) => (v === "419" ? undefined : v));
|
|
@@ -73,6 +73,7 @@ export const customPropertiesRequestSchema = z.record(z.union([
|
|
|
73
73
|
z.boolean(),
|
|
74
74
|
z.array(z.string()),
|
|
75
75
|
z.array(z.object({})),
|
|
76
|
+
z.object({}),
|
|
76
77
|
z.null(),
|
|
77
78
|
z.undefined(),
|
|
78
79
|
]));
|
|
@@ -83,6 +84,7 @@ export const customPropertiesSchema = z.record(z.union([
|
|
|
83
84
|
z.boolean(),
|
|
84
85
|
z.array(z.string()),
|
|
85
86
|
z.array(z.object({})),
|
|
87
|
+
z.object({}),
|
|
86
88
|
z.undefined(),
|
|
87
89
|
]));
|
|
88
90
|
assertEqualTypes(true);
|
|
@@ -112,11 +114,11 @@ export const eventPropertiesSchema = z.object({
|
|
|
112
114
|
search_query: z.string().optional(),
|
|
113
115
|
order_amount: z.number().optional(),
|
|
114
116
|
paid_amount: z.number().optional(),
|
|
115
|
-
|
|
116
|
-
.
|
|
117
|
+
tracking: z
|
|
118
|
+
.object({
|
|
117
119
|
id: z.string(),
|
|
118
120
|
type: z.string(),
|
|
119
|
-
})
|
|
121
|
+
})
|
|
120
122
|
.optional(),
|
|
121
123
|
});
|
|
122
124
|
// Schema for Inference API
|
|
@@ -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.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.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 trackings: z\n .array(\n z.object({\n id: z.string(),\n type: z.string(),\n }),\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":"AAAA,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAC5E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,EAAE;KACR,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAC1B,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,QAAQ,CAAC;IACX;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,qBAAqB,CAAC,EAAE;QACjC,IAAI,EAAE,CAAC,WAAW,CAAC;KACpB;CACF,CAAC,CACL;KACA,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAErC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;KAC/B,MAAM,CACL,CAAC,CAAC,EAAE,EAAE;IACJ,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACzB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC,EACD;IACE,OAAO,EAAE,kDAAkD;CAC5D,CACF;KACA,SAAS,CAAC,CAAC,CAAC,EAAU,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,EAAE;KACR,MAAM,CACL,CAAC,UAAU,EAAE,EAAE;IACb,OAAO,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC,EACD;IACE,OAAO,EAAE,qBAAqB;CAC/B,CACF;KACA,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAEnD,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;SAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;SAAM,IACL,OAAO,KAAK,KAAK,QAAQ;QACzB,oDAAoD,CAAC,IAAI,CAAC,KAAK,CAAC,EAChE,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;SAAM,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CACjC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACpB,GAAG,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACrC,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAE,CACH,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAA8B,EAAE,CACnE,CAAC;KACE,MAAM,CAAC,EAAE,CAAC;KACV,WAAW,EAAE;KACb,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAM,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC;KAC5C,MAAM,EAAE;KACR,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;KACjC,IAAI,CACH,CAAC,CAAC,KAAK,CAAC;IACN,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,8CAA8C;IAChE,CAAC,CAAC,IAAI,CAAC,aAAgD,CAAC;CACzD,CAAC,CACH;KACA,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CACnD,CAAC,CAAC,KAAK,CAAC;IACN,UAAU;IACV,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,OAAO,EAAE;IACX,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACZ,CAAC,CAAC,IAAI,EAAE;IACR,CAAC,CAAC,SAAS,EAAE;CACd,CAAC,CACH,CAAC;AAIF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAC5C,CAAC,CAAC,KAAK,CAAC;IACN,UAAU;IACV,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,OAAO,EAAE;IACX,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACZ,CAAC,CAAC,SAAS,EAAE;CACd,CAAC,CACH,CAAC;AAIF,gBAAgB,CAQd,IAAI,CAAC,CAAC;AAER,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,EAAE;KACR,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;KACzD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;IACrD,OAAO,EAAE,+BAA+B;CACzC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC;SACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB,CAAC,CACH;SACA,QAAQ,EAAE;IACb,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;KACjB,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAGH,2BAA2B;AAC3B,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,cAAc,EAAE,cAAc;IAC9B,YAAY,EAAE,cAAc,CAAC,OAAO,EAAE;IAEtC,QAAQ,EAAE,CAAC,CAAC,KAAK,CACf,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC1B,CAAC,CACH;IACD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IAEvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,8EAA8E;CACjI,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,sBAAsB;KAC9D,IAAI,CAAC;IACJ,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;CACb,CAAC;KACD,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;CAClC,CAAC,CAAC","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"]}
|