@blux.ai/web-sdk 2.2.10 → 2.2.12
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/.tsbuildinfo.noEmit +1 -0
- package/CLAUDE.md +70 -0
- package/dist/BluxClient.d.ts +162 -0
- package/dist/BluxClient.js +711 -0
- package/dist/BluxClient.js.map +1 -0
- package/dist/apis/APIs.d.ts +620 -0
- package/dist/apis/APIs.js +163 -0
- package/dist/apis/APIs.js.map +1 -0
- package/dist/apis/createCrmEvent.js +12 -0
- package/dist/apis/createCrmEvent.js.map +1 -0
- package/dist/apis/createEvent.js +12 -0
- package/dist/apis/createEvent.js.map +1 -0
- package/dist/apis/getItemRecommendations.js +12 -0
- package/dist/apis/getItemRecommendations.js.map +1 -0
- package/dist/apis/initialize.js +12 -0
- package/dist/apis/initialize.js.map +1 -0
- package/dist/apis/notificationsUpdate.js +10 -0
- package/dist/apis/notificationsUpdate.js.map +1 -0
- package/dist/apis/signIn.js +12 -0
- package/dist/apis/signIn.js.map +1 -0
- package/dist/apis/signOut.js +12 -0
- package/dist/apis/signOut.js.map +1 -0
- package/dist/apis/updateProperties.js +12 -0
- package/dist/apis/updateProperties.js.map +1 -0
- package/dist/bridges/AndroidBridge.js +43 -0
- package/dist/bridges/AndroidBridge.js.map +1 -0
- package/dist/bridges/Bridge.d.ts +9 -0
- package/dist/bridges/Bridge.js +13 -0
- package/dist/bridges/Bridge.js.map +1 -0
- package/dist/bridges/FlutterBridge.js +50 -0
- package/dist/bridges/FlutterBridge.js.map +1 -0
- package/dist/bridges/IosBridge.js +44 -0
- package/dist/bridges/IosBridge.js.map +1 -0
- package/dist/bridges/RNBridge.js +44 -0
- package/dist/bridges/RNBridge.js.map +1 -0
- package/dist/constants/BLUX_ATTRIBUTES.js +9 -0
- package/dist/constants/BLUX_ATTRIBUTES.js.map +1 -0
- package/dist/constants/COUNTRIES.js +1163 -0
- package/dist/constants/COUNTRIES.js.map +1 -0
- package/dist/constants/ISO8601_REGEX.js +6 -0
- package/dist/constants/ISO8601_REGEX.js.map +1 -0
- package/dist/events/AddCartaddEvent.d.ts +14 -0
- package/dist/events/AddCartaddEvent.js +19 -0
- package/dist/events/AddCartaddEvent.js.map +1 -0
- package/dist/events/AddClickEvent.d.ts +14 -0
- package/dist/events/AddClickEvent.js +19 -0
- package/dist/events/AddClickEvent.js.map +1 -0
- package/dist/events/AddCustomEvent.d.ts +14 -0
- package/dist/events/AddCustomEvent.js +16 -0
- package/dist/events/AddCustomEvent.js.map +1 -0
- package/dist/events/AddInstantImpressionEvent.d.ts +17 -0
- package/dist/events/AddInstantImpressionEvent.js +22 -0
- package/dist/events/AddInstantImpressionEvent.js.map +1 -0
- package/dist/events/AddLikeEvent.d.ts +14 -0
- package/dist/events/AddLikeEvent.js +19 -0
- package/dist/events/AddLikeEvent.js.map +1 -0
- package/dist/events/AddOrderEvent.d.ts +16 -0
- package/dist/events/AddOrderEvent.js +21 -0
- package/dist/events/AddOrderEvent.js.map +1 -0
- package/dist/events/AddPageViewEvent.d.ts +14 -0
- package/dist/events/AddPageViewEvent.js +19 -0
- package/dist/events/AddPageViewEvent.js.map +1 -0
- package/dist/events/AddPageVisitEvent.d.ts +13 -0
- package/dist/events/AddPageVisitEvent.js +16 -0
- package/dist/events/AddPageVisitEvent.js.map +1 -0
- package/dist/events/AddPersistentImpressionEvent.d.ts +17 -0
- package/dist/events/AddPersistentImpressionEvent.js +22 -0
- package/dist/events/AddPersistentImpressionEvent.js.map +1 -0
- package/dist/events/AddProductDetailViewEvent.d.ts +14 -0
- package/dist/events/AddProductDetailViewEvent.js +19 -0
- package/dist/events/AddProductDetailViewEvent.js.map +1 -0
- package/dist/events/AddRateEvent.d.ts +15 -0
- package/dist/events/AddRateEvent.js +20 -0
- package/dist/events/AddRateEvent.js.map +1 -0
- package/dist/events/AddSearchEvent.d.ts +14 -0
- package/dist/events/AddSearchEvent.js +19 -0
- package/dist/events/AddSearchEvent.js.map +1 -0
- package/dist/events/AddSectionViewEvent.d.ts +14 -0
- package/dist/events/AddSectionViewEvent.js +19 -0
- package/dist/events/AddSectionViewEvent.js.map +1 -0
- package/dist/events/Event.d.ts +10 -0
- package/dist/events/Event.js +40 -0
- package/dist/events/Event.js.map +1 -0
- package/dist/events/VisitEvent.d.ts +13 -0
- package/dist/events/VisitEvent.js +16 -0
- package/dist/events/VisitEvent.js.map +1 -0
- package/dist/events/index.d.ts +14 -0
- package/dist/events/index.js +14 -0
- package/dist/events/types.d.ts +72 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.js +20 -0
- package/dist/package.js +6 -0
- package/dist/package.js.map +1 -0
- package/dist/recs/ItemRec.d.ts +38 -0
- package/dist/recs/ItemRec.js +46 -0
- package/dist/recs/ItemRec.js.map +1 -0
- package/dist/recs/Rec.d.ts +10 -0
- package/dist/recs/Rec.js +11 -0
- package/dist/recs/Rec.js.map +1 -0
- package/dist/recs/types.d.ts +26 -0
- package/dist/utils/Base.d.ts +8 -0
- package/dist/utils/LocalStorage.js +39 -0
- package/dist/utils/LocalStorage.js.map +1 -0
- package/dist/utils/Logger.d.ts +5 -0
- package/dist/utils/Logger.js +48 -0
- package/dist/utils/Logger.js.map +1 -0
- package/dist/utils/SessionStorage.js +22 -0
- package/dist/utils/SessionStorage.js.map +1 -0
- package/dist/utils/assertEqualTypes.js +0 -0
- package/dist/utils/getPath.js +12 -0
- package/dist/utils/getPath.js.map +1 -0
- package/dist/utils/observables.js +19 -0
- package/dist/utils/observables.js.map +1 -0
- package/dist/utils/operators.js +10 -0
- package/dist/utils/operators.js.map +1 -0
- package/dist/utils/zodSchemas.d.ts +121 -0
- package/dist/utils/zodSchemas.js +103 -0
- package/dist/utils/zodSchemas.js.map +1 -0
- package/package.json +16 -6
- package/tsdown.config.mts +19 -0
- package/dist/package.json +0 -32
- package/dist/src/BluxClient.d.ts +0 -151
- package/dist/src/BluxClient.js +0 -823
- package/dist/src/BluxClient.js.map +0 -1
- package/dist/src/apis/APIs.d.ts +0 -618
- package/dist/src/apis/APIs.js +0 -168
- package/dist/src/apis/APIs.js.map +0 -1
- package/dist/src/apis/createCrmEvent.d.ts +0 -4
- package/dist/src/apis/createCrmEvent.js +0 -7
- package/dist/src/apis/createCrmEvent.js.map +0 -1
- package/dist/src/apis/createEvent.d.ts +0 -4
- package/dist/src/apis/createEvent.js +0 -7
- package/dist/src/apis/createEvent.js.map +0 -1
- package/dist/src/apis/getItemRecommendations.d.ts +0 -4
- package/dist/src/apis/getItemRecommendations.js +0 -7
- package/dist/src/apis/getItemRecommendations.js.map +0 -1
- package/dist/src/apis/initialize.d.ts +0 -4
- package/dist/src/apis/initialize.js +0 -7
- package/dist/src/apis/initialize.js.map +0 -1
- package/dist/src/apis/notificationsUpdate.d.ts +0 -4
- package/dist/src/apis/notificationsUpdate.js +0 -7
- package/dist/src/apis/notificationsUpdate.js.map +0 -1
- package/dist/src/apis/signIn.d.ts +0 -4
- package/dist/src/apis/signIn.js +0 -7
- package/dist/src/apis/signIn.js.map +0 -1
- package/dist/src/apis/signOut.d.ts +0 -4
- package/dist/src/apis/signOut.js +0 -7
- package/dist/src/apis/signOut.js.map +0 -1
- package/dist/src/apis/updateProperties.d.ts +0 -4
- package/dist/src/apis/updateProperties.js +0 -7
- package/dist/src/apis/updateProperties.js.map +0 -1
- package/dist/src/bridges/AndroidBridge.d.ts +0 -11
- package/dist/src/bridges/AndroidBridge.js +0 -39
- package/dist/src/bridges/AndroidBridge.js.map +0 -1
- package/dist/src/bridges/Bridge.d.ts +0 -31
- package/dist/src/bridges/Bridge.js +0 -19
- package/dist/src/bridges/Bridge.js.map +0 -1
- package/dist/src/bridges/FlutterBridge.d.ts +0 -11
- package/dist/src/bridges/FlutterBridge.js +0 -45
- package/dist/src/bridges/FlutterBridge.js.map +0 -1
- package/dist/src/bridges/IosBridge.d.ts +0 -11
- package/dist/src/bridges/IosBridge.js +0 -40
- package/dist/src/bridges/IosBridge.js.map +0 -1
- package/dist/src/bridges/RNBridge.d.ts +0 -11
- package/dist/src/bridges/RNBridge.js +0 -39
- package/dist/src/bridges/RNBridge.js.map +0 -1
- package/dist/src/constants/BLUX_ATTRIBUTES.d.ts +0 -4
- package/dist/src/constants/BLUX_ATTRIBUTES.js +0 -5
- package/dist/src/constants/BLUX_ATTRIBUTES.js.map +0 -1
- package/dist/src/constants/COUNTRIES.d.ts +0 -928
- package/dist/src/constants/COUNTRIES.js +0 -1159
- package/dist/src/constants/COUNTRIES.js.map +0 -1
- package/dist/src/constants/ISO8601_REGEX.d.ts +0 -1
- package/dist/src/constants/ISO8601_REGEX.js +0 -4
- package/dist/src/constants/ISO8601_REGEX.js.map +0 -1
- package/dist/src/events/AddCartaddEvent.d.ts +0 -5
- package/dist/src/events/AddCartaddEvent.js +0 -14
- package/dist/src/events/AddCartaddEvent.js.map +0 -1
- package/dist/src/events/AddClickEvent.d.ts +0 -5
- package/dist/src/events/AddClickEvent.js +0 -14
- package/dist/src/events/AddClickEvent.js.map +0 -1
- package/dist/src/events/AddCustomEvent.d.ts +0 -5
- package/dist/src/events/AddCustomEvent.js +0 -11
- package/dist/src/events/AddCustomEvent.js.map +0 -1
- package/dist/src/events/AddInstantImpressionEvent.d.ts +0 -5
- package/dist/src/events/AddInstantImpressionEvent.js +0 -17
- package/dist/src/events/AddInstantImpressionEvent.js.map +0 -1
- package/dist/src/events/AddLikeEvent.d.ts +0 -5
- package/dist/src/events/AddLikeEvent.js +0 -14
- package/dist/src/events/AddLikeEvent.js.map +0 -1
- package/dist/src/events/AddOrderEvent.d.ts +0 -5
- package/dist/src/events/AddOrderEvent.js +0 -16
- package/dist/src/events/AddOrderEvent.js.map +0 -1
- package/dist/src/events/AddPageViewEvent.d.ts +0 -5
- package/dist/src/events/AddPageViewEvent.js +0 -11
- package/dist/src/events/AddPageViewEvent.js.map +0 -1
- package/dist/src/events/AddPageVisitEvent.d.ts +0 -5
- package/dist/src/events/AddPageVisitEvent.js +0 -13
- package/dist/src/events/AddPageVisitEvent.js.map +0 -1
- package/dist/src/events/AddPersistentImpressionEvent.d.ts +0 -5
- package/dist/src/events/AddPersistentImpressionEvent.js +0 -17
- package/dist/src/events/AddPersistentImpressionEvent.js.map +0 -1
- package/dist/src/events/AddProductDetailViewEvent.d.ts +0 -5
- package/dist/src/events/AddProductDetailViewEvent.js +0 -14
- package/dist/src/events/AddProductDetailViewEvent.js.map +0 -1
- package/dist/src/events/AddRateEvent.d.ts +0 -5
- package/dist/src/events/AddRateEvent.js +0 -11
- package/dist/src/events/AddRateEvent.js.map +0 -1
- package/dist/src/events/AddSearchEvent.d.ts +0 -5
- package/dist/src/events/AddSearchEvent.js +0 -11
- package/dist/src/events/AddSearchEvent.js.map +0 -1
- package/dist/src/events/AddSectionViewEvent.d.ts +0 -5
- package/dist/src/events/AddSectionViewEvent.js +0 -14
- package/dist/src/events/AddSectionViewEvent.js.map +0 -1
- package/dist/src/events/Event.d.ts +0 -27
- package/dist/src/events/Event.js +0 -36
- package/dist/src/events/Event.js.map +0 -1
- package/dist/src/events/VisitEvent.d.ts +0 -5
- package/dist/src/events/VisitEvent.js +0 -13
- package/dist/src/events/VisitEvent.js.map +0 -1
- package/dist/src/events/index.d.ts +0 -14
- package/dist/src/events/index.js +0 -15
- package/dist/src/events/index.js.map +0 -1
- package/dist/src/events/types.d.ts +0 -68
- package/dist/src/events/types.js +0 -3
- package/dist/src/events/types.js.map +0 -1
- package/dist/src/index.d.ts +0 -6
- package/dist/src/index.js +0 -6
- package/dist/src/index.js.map +0 -1
- package/dist/src/recs/ItemRec.d.ts +0 -14
- package/dist/src/recs/ItemRec.js +0 -42
- package/dist/src/recs/ItemRec.js.map +0 -1
- package/dist/src/recs/Rec.d.ts +0 -5
- package/dist/src/recs/Rec.js +0 -9
- package/dist/src/recs/Rec.js.map +0 -1
- package/dist/src/recs/index.d.ts +0 -1
- package/dist/src/recs/index.js +0 -2
- package/dist/src/recs/index.js.map +0 -1
- package/dist/src/recs/types.d.ts +0 -23
- package/dist/src/recs/types.js +0 -2
- package/dist/src/recs/types.js.map +0 -1
- package/dist/src/utils/Base.d.ts +0 -13
- package/dist/src/utils/Base.js +0 -2
- package/dist/src/utils/Base.js.map +0 -1
- package/dist/src/utils/LocalStorage.d.ts +0 -10
- package/dist/src/utils/LocalStorage.js +0 -37
- package/dist/src/utils/LocalStorage.js.map +0 -1
- package/dist/src/utils/Logger.d.ts +0 -13
- package/dist/src/utils/Logger.js +0 -48
- package/dist/src/utils/Logger.js.map +0 -1
- package/dist/src/utils/SessionStorage.d.ts +0 -6
- package/dist/src/utils/SessionStorage.js +0 -18
- package/dist/src/utils/SessionStorage.js.map +0 -1
- package/dist/src/utils/assertEqualTypes.d.ts +0 -3
- package/dist/src/utils/assertEqualTypes.js +0 -5
- package/dist/src/utils/assertEqualTypes.js.map +0 -1
- package/dist/src/utils/getPath.d.ts +0 -1
- package/dist/src/utils/getPath.js +0 -9
- package/dist/src/utils/getPath.js.map +0 -1
- package/dist/src/utils/helper.d.ts +0 -1
- package/dist/src/utils/helper.js +0 -4
- package/dist/src/utils/helper.js.map +0 -1
- package/dist/src/utils/observables.d.ts +0 -1
- package/dist/src/utils/observables.js +0 -5
- package/dist/src/utils/observables.js.map +0 -1
- package/dist/src/utils/operators.d.ts +0 -2
- package/dist/src/utils/operators.js +0 -5
- package/dist/src/utils/operators.js.map +0 -1
- package/dist/src/utils/zodSchemas.d.ts +0 -159
- package/dist/src/utils/zodSchemas.js +0 -157
- package/dist/src/utils/zodSchemas.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import ObjectId from "bson-objectid";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
//#region src/utils/zodSchemas.d.ts
|
|
5
|
+
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]>>;
|
|
6
|
+
type CustomProperties = z.infer<typeof customPropertiesSchema>;
|
|
7
|
+
declare const eventPropertiesSchema: z.ZodObject<{
|
|
8
|
+
section: z.ZodOptional<z.ZodString>;
|
|
9
|
+
prev_section: z.ZodOptional<z.ZodString>;
|
|
10
|
+
recommendation_id: z.ZodOptional<z.ZodString>;
|
|
11
|
+
price: z.ZodOptional<z.ZodNumber>;
|
|
12
|
+
order_id: z.ZodOptional<z.ZodString>;
|
|
13
|
+
rating: z.ZodOptional<z.ZodNumber>;
|
|
14
|
+
prev_page: z.ZodOptional<z.ZodString>;
|
|
15
|
+
page: z.ZodOptional<z.ZodString>;
|
|
16
|
+
position: z.ZodOptional<z.ZodNumber>;
|
|
17
|
+
item_id: z.ZodOptional<z.ZodString>;
|
|
18
|
+
items: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
19
|
+
id: z.ZodString;
|
|
20
|
+
price: z.ZodNumber;
|
|
21
|
+
quantity: z.ZodOptional<z.ZodNumber>;
|
|
22
|
+
custom_event_properties: z.ZodOptional<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]>>>;
|
|
23
|
+
}, "strip", z.ZodTypeAny, {
|
|
24
|
+
id: string;
|
|
25
|
+
price: number;
|
|
26
|
+
quantity?: number | undefined;
|
|
27
|
+
custom_event_properties?: Record<string, string | number | boolean | Date | string[] | {}[] | {} | undefined> | undefined;
|
|
28
|
+
}, {
|
|
29
|
+
id: string;
|
|
30
|
+
price: number;
|
|
31
|
+
quantity?: number | undefined;
|
|
32
|
+
custom_event_properties?: Record<string, string | number | boolean | string[] | {}[] | {} | undefined> | undefined;
|
|
33
|
+
}>, "many">>;
|
|
34
|
+
search_query: z.ZodOptional<z.ZodString>;
|
|
35
|
+
order_amount: z.ZodOptional<z.ZodNumber>;
|
|
36
|
+
paid_amount: z.ZodOptional<z.ZodNumber>;
|
|
37
|
+
tracking: z.ZodOptional<z.ZodObject<{
|
|
38
|
+
id: z.ZodString;
|
|
39
|
+
type: z.ZodString;
|
|
40
|
+
}, "strip", z.ZodTypeAny, {
|
|
41
|
+
id: string;
|
|
42
|
+
type: string;
|
|
43
|
+
}, {
|
|
44
|
+
id: string;
|
|
45
|
+
type: string;
|
|
46
|
+
}>>;
|
|
47
|
+
click_target: z.ZodOptional<z.ZodString>;
|
|
48
|
+
}, "strip", z.ZodTypeAny, {
|
|
49
|
+
section?: string | undefined;
|
|
50
|
+
prev_section?: string | undefined;
|
|
51
|
+
recommendation_id?: string | undefined;
|
|
52
|
+
price?: number | undefined;
|
|
53
|
+
order_id?: string | undefined;
|
|
54
|
+
rating?: number | undefined;
|
|
55
|
+
prev_page?: string | undefined;
|
|
56
|
+
page?: string | undefined;
|
|
57
|
+
position?: number | undefined;
|
|
58
|
+
item_id?: string | undefined;
|
|
59
|
+
items?: {
|
|
60
|
+
id: string;
|
|
61
|
+
price: number;
|
|
62
|
+
quantity?: number | undefined;
|
|
63
|
+
custom_event_properties?: Record<string, string | number | boolean | Date | string[] | {}[] | {} | undefined> | undefined;
|
|
64
|
+
}[] | undefined;
|
|
65
|
+
search_query?: string | undefined;
|
|
66
|
+
order_amount?: number | undefined;
|
|
67
|
+
paid_amount?: number | undefined;
|
|
68
|
+
tracking?: {
|
|
69
|
+
id: string;
|
|
70
|
+
type: string;
|
|
71
|
+
} | undefined;
|
|
72
|
+
click_target?: string | undefined;
|
|
73
|
+
}, {
|
|
74
|
+
section?: string | undefined;
|
|
75
|
+
prev_section?: string | undefined;
|
|
76
|
+
recommendation_id?: string | undefined;
|
|
77
|
+
price?: number | undefined;
|
|
78
|
+
order_id?: string | undefined;
|
|
79
|
+
rating?: number | undefined;
|
|
80
|
+
prev_page?: string | undefined;
|
|
81
|
+
page?: string | undefined;
|
|
82
|
+
position?: number | undefined;
|
|
83
|
+
item_id?: string | undefined;
|
|
84
|
+
items?: {
|
|
85
|
+
id: string;
|
|
86
|
+
price: number;
|
|
87
|
+
quantity?: number | undefined;
|
|
88
|
+
custom_event_properties?: Record<string, string | number | boolean | string[] | {}[] | {} | undefined> | undefined;
|
|
89
|
+
}[] | undefined;
|
|
90
|
+
search_query?: string | undefined;
|
|
91
|
+
order_amount?: number | undefined;
|
|
92
|
+
paid_amount?: number | undefined;
|
|
93
|
+
tracking?: {
|
|
94
|
+
id: string;
|
|
95
|
+
type: string;
|
|
96
|
+
} | undefined;
|
|
97
|
+
click_target?: string | undefined;
|
|
98
|
+
}>;
|
|
99
|
+
type EventProperties = z.infer<typeof eventPropertiesSchema>;
|
|
100
|
+
declare const internalEventPropertiesSchema: z.ZodObject<{
|
|
101
|
+
url: z.ZodOptional<z.ZodString>;
|
|
102
|
+
ref: z.ZodOptional<z.ZodString>;
|
|
103
|
+
click_target: z.ZodOptional<z.ZodString>;
|
|
104
|
+
}, "strip", z.ZodTypeAny, {
|
|
105
|
+
click_target?: string | undefined;
|
|
106
|
+
url?: string | undefined;
|
|
107
|
+
ref?: string | undefined;
|
|
108
|
+
}, {
|
|
109
|
+
click_target?: string | undefined;
|
|
110
|
+
url?: string | undefined;
|
|
111
|
+
ref?: string | undefined;
|
|
112
|
+
}>;
|
|
113
|
+
type InternalEventProperties = z.infer<typeof internalEventPropertiesSchema>;
|
|
114
|
+
type RecResponse = {
|
|
115
|
+
item_ids: string[];
|
|
116
|
+
metadata: Record<string, unknown>;
|
|
117
|
+
recommendation_id: string | null;
|
|
118
|
+
};
|
|
119
|
+
//#endregion
|
|
120
|
+
export { CustomProperties, EventProperties, InternalEventProperties, RecResponse };
|
|
121
|
+
//# sourceMappingURL=zodSchemas.d.ts.map
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import "./assertEqualTypes.js";
|
|
2
|
+
import { COUNTRY_CODES } from "../constants/COUNTRIES.js";
|
|
3
|
+
import { ISO8601_REGEX } from "../constants/ISO8601_REGEX.js";
|
|
4
|
+
import ObjectId from "bson-objectid";
|
|
5
|
+
import { ZodError, z } from "zod";
|
|
6
|
+
|
|
7
|
+
//#region src/utils/zodSchemas.ts
|
|
8
|
+
function isObjectIdString(value) {
|
|
9
|
+
return typeof value === "string" && value.length === 24 && ObjectId.isValid(value);
|
|
10
|
+
}
|
|
11
|
+
const objectIdSchema = z.string().refine((v) => isObjectIdString(v), (v) => new ZodError([{
|
|
12
|
+
code: "custom",
|
|
13
|
+
message: `Invalid ObjectId: ${v}`,
|
|
14
|
+
path: ["some_path"]
|
|
15
|
+
}])).transform((v) => new ObjectId(v));
|
|
16
|
+
const stringToNumberSchema = z.union([z.string(), z.number()]).refine((v) => {
|
|
17
|
+
if (typeof v === "number") return true;
|
|
18
|
+
const parsed = Number(v);
|
|
19
|
+
return !isNaN(parsed);
|
|
20
|
+
}, { message: "Invalid number or string in stringToNumberSchema" }).transform((v) => typeof v === "number" ? v : Number(v));
|
|
21
|
+
const dateSchema = z.string().refine((dateString) => {
|
|
22
|
+
return ISO8601_REGEX.test(dateString);
|
|
23
|
+
}, { message: "Invalid date string" }).transform((dateString) => new Date(dateString));
|
|
24
|
+
const countryCodeWithLowerCaseSchema = z.string().transform((v) => v.toUpperCase()).pipe(z.union([z.literal("419"), z.enum(COUNTRY_CODES)])).transform((v) => v === "419" ? void 0 : v);
|
|
25
|
+
const customPropertiesRequestSchema = z.record(z.union([
|
|
26
|
+
dateSchema,
|
|
27
|
+
z.string(),
|
|
28
|
+
z.number(),
|
|
29
|
+
z.boolean(),
|
|
30
|
+
z.array(z.string()),
|
|
31
|
+
z.array(z.object({})),
|
|
32
|
+
z.object({}),
|
|
33
|
+
z.null(),
|
|
34
|
+
z.undefined()
|
|
35
|
+
]));
|
|
36
|
+
const customPropertiesSchema = z.record(z.union([
|
|
37
|
+
dateSchema,
|
|
38
|
+
z.string(),
|
|
39
|
+
z.number(),
|
|
40
|
+
z.boolean(),
|
|
41
|
+
z.array(z.string()),
|
|
42
|
+
z.array(z.object({})),
|
|
43
|
+
z.object({}),
|
|
44
|
+
z.undefined()
|
|
45
|
+
]));
|
|
46
|
+
const stringToArraySchema = z.string().transform((v) => v.split(",").map((item) => item.trim())).refine((arr) => arr.every((item) => item.length > 0), { message: "Each item should not be empty" });
|
|
47
|
+
const eventPropertiesSchema = z.object({
|
|
48
|
+
section: z.string().optional(),
|
|
49
|
+
prev_section: z.string().optional(),
|
|
50
|
+
recommendation_id: z.string().optional(),
|
|
51
|
+
price: z.number().optional(),
|
|
52
|
+
order_id: z.string().optional(),
|
|
53
|
+
rating: z.number().optional(),
|
|
54
|
+
prev_page: z.string().optional(),
|
|
55
|
+
page: z.string().optional(),
|
|
56
|
+
position: z.number().optional(),
|
|
57
|
+
item_id: z.string().optional(),
|
|
58
|
+
items: z.array(z.object({
|
|
59
|
+
id: z.string(),
|
|
60
|
+
price: z.number(),
|
|
61
|
+
quantity: z.number().optional(),
|
|
62
|
+
custom_event_properties: customPropertiesSchema.optional()
|
|
63
|
+
})).optional(),
|
|
64
|
+
search_query: z.string().optional(),
|
|
65
|
+
order_amount: z.number().optional(),
|
|
66
|
+
paid_amount: z.number().optional(),
|
|
67
|
+
tracking: z.object({
|
|
68
|
+
id: z.string(),
|
|
69
|
+
type: z.string()
|
|
70
|
+
}).optional(),
|
|
71
|
+
click_target: z.string().optional()
|
|
72
|
+
});
|
|
73
|
+
const internalEventPropertiesSchema = z.object({
|
|
74
|
+
url: z.string().optional(),
|
|
75
|
+
ref: z.string().optional(),
|
|
76
|
+
click_target: z.string().optional()
|
|
77
|
+
});
|
|
78
|
+
const inferenceRequestSchema = z.object({
|
|
79
|
+
application_id: objectIdSchema,
|
|
80
|
+
blux_user_id: objectIdSchema.nullish(),
|
|
81
|
+
pipeline: z.array(z.object({
|
|
82
|
+
name: z.string(),
|
|
83
|
+
kwargs: z.record(z.any())
|
|
84
|
+
})),
|
|
85
|
+
item_id: z.string().nullish(),
|
|
86
|
+
item_ids: z.array(z.string()).nullish(),
|
|
87
|
+
limit: z.number(),
|
|
88
|
+
offset: z.number().nullish().default(0),
|
|
89
|
+
options: z.record(z.string(), z.any()).nullish()
|
|
90
|
+
});
|
|
91
|
+
const recommendationRequestSchema = inferenceRequestSchema.pick({
|
|
92
|
+
item_id: true,
|
|
93
|
+
item_ids: true,
|
|
94
|
+
limit: true,
|
|
95
|
+
offset: true
|
|
96
|
+
}).extend({
|
|
97
|
+
call_type: z.string(),
|
|
98
|
+
category_id: z.string().nullish()
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
//#endregion
|
|
102
|
+
export { countryCodeWithLowerCaseSchema, customPropertiesRequestSchema, customPropertiesSchema, dateSchema, eventPropertiesSchema, internalEventPropertiesSchema, objectIdSchema, recommendationRequestSchema };
|
|
103
|
+
//# sourceMappingURL=zodSchemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zodSchemas.js","names":[],"sources":["../../src/utils/zodSchemas.ts"],"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 quantity: z.number().optional(),\n custom_event_properties: customPropertiesSchema.optional(),\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 click_target: z.string().optional(),\n});\n\nexport type EventProperties = z.infer<typeof eventPropertiesSchema>;\n\nexport const internalEventPropertiesSchema = z.object({\n url: z.string().optional(),\n ref: z.string().optional(),\n click_target: z.string().optional(),\n});\n\nexport type InternalEventProperties = z.infer<\n typeof internalEventPropertiesSchema\n>;\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: @all 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"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blux.ai/web-sdk",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.12",
|
|
4
4
|
"description": "The official Blux JavaScript browser client library",
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
8
16
|
"license": "UNLICENSED",
|
|
9
17
|
"scripts": {
|
|
10
18
|
"test": "jest",
|
|
11
|
-
"build": "
|
|
19
|
+
"build": "tsdown",
|
|
12
20
|
"dev": "pnpm build -w",
|
|
13
|
-
"
|
|
21
|
+
"clean": "rm -rf ./dist",
|
|
22
|
+
"prepack": "pnpm run clean && pnpm build",
|
|
14
23
|
"deploy": "npm publish --access public"
|
|
15
24
|
},
|
|
16
25
|
"author": "Z.Ai Inc.",
|
|
@@ -18,6 +27,7 @@
|
|
|
18
27
|
"devDependencies": {
|
|
19
28
|
"@sentry/types": "^8.35.0",
|
|
20
29
|
"@types/uuid": "^10.0.0",
|
|
30
|
+
"tsdown": "0.20.1",
|
|
21
31
|
"typescript": "5.9.3"
|
|
22
32
|
},
|
|
23
33
|
"dependencies": {
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { defineConfig } from "tsdown";
|
|
2
|
+
|
|
3
|
+
import pkg from "./package.json";
|
|
4
|
+
|
|
5
|
+
const external = Object.keys(pkg.dependencies);
|
|
6
|
+
|
|
7
|
+
export default defineConfig({
|
|
8
|
+
format: ["esm"],
|
|
9
|
+
entry: ["src/index.ts"],
|
|
10
|
+
external,
|
|
11
|
+
sourcemap: true,
|
|
12
|
+
dts: true,
|
|
13
|
+
minify: false,
|
|
14
|
+
unbundle: true,
|
|
15
|
+
skipNodeModulesBundle: true,
|
|
16
|
+
target: "es2022",
|
|
17
|
+
outDir: "dist",
|
|
18
|
+
platform: "browser",
|
|
19
|
+
});
|
package/dist/package.json
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@blux.ai/web-sdk",
|
|
3
|
-
"version": "2.2.10",
|
|
4
|
-
"description": "The official Blux JavaScript browser client library",
|
|
5
|
-
"main": "dist/src/index.js",
|
|
6
|
-
"module": "dist/src/index.js",
|
|
7
|
-
"types": "dist//src/index.d.ts",
|
|
8
|
-
"license": "UNLICENSED",
|
|
9
|
-
"scripts": {
|
|
10
|
-
"test": "jest",
|
|
11
|
-
"build": "tsc",
|
|
12
|
-
"dev": "pnpm build -w",
|
|
13
|
-
"prepack": "rm -rf dist && pnpm build",
|
|
14
|
-
"deploy": "npm publish --access public"
|
|
15
|
-
},
|
|
16
|
-
"author": "Z.Ai Inc.",
|
|
17
|
-
"homepage": "https://www.blux.ai/",
|
|
18
|
-
"devDependencies": {
|
|
19
|
-
"@sentry/types": "^8.35.0",
|
|
20
|
-
"@types/uuid": "^10.0.0",
|
|
21
|
-
"typescript": "5.9.3"
|
|
22
|
-
},
|
|
23
|
-
"dependencies": {
|
|
24
|
-
"axios": "1.7.7",
|
|
25
|
-
"bson-objectid": "^2.0.4",
|
|
26
|
-
"dayjs": "1.11.13",
|
|
27
|
-
"lodash": "4.17.21",
|
|
28
|
-
"rxjs": "7.8.1",
|
|
29
|
-
"uuid": "10.0.0",
|
|
30
|
-
"zod": "3.23.8"
|
|
31
|
-
}
|
|
32
|
-
}
|
package/dist/src/BluxClient.d.ts
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject, Subject } from "rxjs";
|
|
2
|
-
import { DevicePlatform, type APIs } from "./apis/APIs";
|
|
3
|
-
import { BridgePlatform } from "./bridges/Bridge";
|
|
4
|
-
import type { Event as BluxEvent } from "./events/Event";
|
|
5
|
-
import type { EventRequest } from "./events/types";
|
|
6
|
-
import type { CategoryRec, ItemRec, ItemsRec, UserRec } from "./recs";
|
|
7
|
-
import type { LogLevel } from "./utils/Logger";
|
|
8
|
-
export type SdkInfo = {
|
|
9
|
-
type: DevicePlatform;
|
|
10
|
-
version: string;
|
|
11
|
-
};
|
|
12
|
-
type BluxUser = {
|
|
13
|
-
id: string;
|
|
14
|
-
bluxAPIKey: string;
|
|
15
|
-
applicationId: string;
|
|
16
|
-
deviceId: string;
|
|
17
|
-
userId?: string;
|
|
18
|
-
};
|
|
19
|
-
type BridgeOptions = {
|
|
20
|
-
/**
|
|
21
|
-
* @deprecated `bridgePlatform`을 사용하세요.
|
|
22
|
-
*/
|
|
23
|
-
useRNBridge?: boolean;
|
|
24
|
-
} | {
|
|
25
|
-
bridgePlatform?: BridgePlatform;
|
|
26
|
-
};
|
|
27
|
-
type ApiRequestQueueJob<T> = {
|
|
28
|
-
action: () => Promise<T>;
|
|
29
|
-
resolve: (value: T) => void;
|
|
30
|
-
reject: (error: unknown) => void;
|
|
31
|
-
};
|
|
32
|
-
type UserPropertiesQueueItem = {
|
|
33
|
-
userProperties?: APIs.bluxUsersUpdateProperties.Body["user_properties"];
|
|
34
|
-
customUserProperties?: APIs.bluxUsersUpdateProperties.Body["custom_user_properties"];
|
|
35
|
-
resolve: () => void;
|
|
36
|
-
reject: (error: unknown) => void;
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* 인앱 메시지에서 BluxBridge.triggerAction() 호출 시 전달되는 이벤트
|
|
40
|
-
*/
|
|
41
|
-
export type InAppCustomActionEvent = {
|
|
42
|
-
/** 액션 식별자 */
|
|
43
|
-
actionId: string;
|
|
44
|
-
/** 액션에 전달된 데이터 */
|
|
45
|
-
data: Record<string, unknown>;
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* 인앱 커스텀 액션 핸들러 타입
|
|
49
|
-
*/
|
|
50
|
-
export type InAppCustomActionHandler = (event: InAppCustomActionEvent) => void | Promise<void>;
|
|
51
|
-
export declare class BluxClient {
|
|
52
|
-
private readonly api;
|
|
53
|
-
private readonly sdkInfo;
|
|
54
|
-
readonly bluxUser$: BehaviorSubject<BluxUser | undefined>;
|
|
55
|
-
/**
|
|
56
|
-
* 내부 async 작업을 1개씩 직렬로 처리하는 큐입니다.
|
|
57
|
-
* `enqueueRequest()`로 넣으면, 호출자는 완료 시점까지 `await` 할 수 있습니다.
|
|
58
|
-
*/
|
|
59
|
-
readonly apiRequestQueue$: Subject<ApiRequestQueueJob<any>>;
|
|
60
|
-
readonly inappQueue$: BehaviorSubject<{
|
|
61
|
-
notificationId: string;
|
|
62
|
-
inappId: string;
|
|
63
|
-
htmlString: string;
|
|
64
|
-
baseUrl: string;
|
|
65
|
-
} | undefined>;
|
|
66
|
-
readonly eventQueue$: Subject<EventRequest>;
|
|
67
|
-
readonly userPropertiesQueue$: Subject<UserPropertiesQueueItem>;
|
|
68
|
-
private readonly INITIAL_NEXT_POLL_DELAY_MS;
|
|
69
|
-
private readonly nextPollDelayMs$;
|
|
70
|
-
private cachedNextPollDelayMs;
|
|
71
|
-
private lastPollTimestamp;
|
|
72
|
-
private readonly bluxApplicationId;
|
|
73
|
-
private readonly bluxAPIKey;
|
|
74
|
-
private readonly bridge;
|
|
75
|
-
private impressedElements;
|
|
76
|
-
private intersectionObservingElements;
|
|
77
|
-
private readonly intersectionObserver;
|
|
78
|
-
private readonly intersectionEntry$;
|
|
79
|
-
private hitElements;
|
|
80
|
-
private currentInappCleanup;
|
|
81
|
-
private inAppCustomActionHandlers;
|
|
82
|
-
private resolveBridge;
|
|
83
|
-
constructor({ bluxApplicationId, bluxAPIKey, ...bridgeOptions }: {
|
|
84
|
-
bluxApplicationId: string;
|
|
85
|
-
bluxAPIKey: string;
|
|
86
|
-
} & BridgeOptions, completionCallback?: (args: {
|
|
87
|
-
errorMessage?: string;
|
|
88
|
-
success: boolean;
|
|
89
|
-
}) => void);
|
|
90
|
-
private enqueueRequest;
|
|
91
|
-
private generateApiHeader;
|
|
92
|
-
private displayInapp;
|
|
93
|
-
private init;
|
|
94
|
-
setLogLevel(logLevel: LogLevel): void;
|
|
95
|
-
private getBluxUserWithTimeout;
|
|
96
|
-
signIn({ userId }: {
|
|
97
|
-
userId: string;
|
|
98
|
-
}): Promise<void>;
|
|
99
|
-
signOut(): Promise<void>;
|
|
100
|
-
setUserProperties({ userProperties, }: {
|
|
101
|
-
userProperties: NonNullable<APIs.bluxUsersUpdateProperties.Body["user_properties"]>;
|
|
102
|
-
}): Promise<void>;
|
|
103
|
-
setCustomUserProperties({ customUserProperties, }: {
|
|
104
|
-
customUserProperties: NonNullable<APIs.bluxUsersUpdateProperties.Body["custom_user_properties"]>;
|
|
105
|
-
}): Promise<void>;
|
|
106
|
-
sendEvent(event: BluxEvent | BluxEvent[]): void;
|
|
107
|
-
/**
|
|
108
|
-
* 현재 표시 중인 인앱 메시지를 프로그래밍 방식으로 닫습니다.
|
|
109
|
-
*
|
|
110
|
-
* Custom HTML 인앱에서 async 핸들러 완료 후 수동으로 닫을 때 사용합니다.
|
|
111
|
-
*
|
|
112
|
-
* @example
|
|
113
|
-
* ```typescript
|
|
114
|
-
* // BluxBridge.triggerAction('share', { url: '...' }, false); // shouldDismiss: false
|
|
115
|
-
* // 핸들러에서 async 작업 완료 후:
|
|
116
|
-
* bluxClient.dismissInApp();
|
|
117
|
-
* ```
|
|
118
|
-
*/
|
|
119
|
-
dismissInApp(): void;
|
|
120
|
-
/**
|
|
121
|
-
* Custom HTML 인앱에서 BluxBridge.triggerAction() 호출 시 실행될 핸들러를 등록합니다.
|
|
122
|
-
* 여러 핸들러를 등록할 수 있으며, 등록 순서대로 실행됩니다.
|
|
123
|
-
*
|
|
124
|
-
* @param handler - 커스텀 액션 핸들러 함수
|
|
125
|
-
* @returns 핸들러를 제거하는 unsubscribe 함수
|
|
126
|
-
*
|
|
127
|
-
* @example
|
|
128
|
-
* ```typescript
|
|
129
|
-
* const unsubscribe = bluxClient.addInAppCustomActionHandler(async (event) => {
|
|
130
|
-
* if (event.actionId === 'share') {
|
|
131
|
-
* await navigator.share({ url: event.data.url as string });
|
|
132
|
-
* // async 작업 완료 후 수동으로 닫기 (shouldDismiss: false로 호출한 경우)
|
|
133
|
-
* bluxClient.dismissInApp();
|
|
134
|
-
* }
|
|
135
|
-
* });
|
|
136
|
-
*
|
|
137
|
-
* // 핸들러 제거
|
|
138
|
-
* unsubscribe();
|
|
139
|
-
* ```
|
|
140
|
-
*/
|
|
141
|
-
addInAppCustomActionHandler(handler: InAppCustomActionHandler): () => void;
|
|
142
|
-
private urlAndRef$;
|
|
143
|
-
private handleUrlAndRef;
|
|
144
|
-
private registerImpressionTracker;
|
|
145
|
-
private registerHitTracker;
|
|
146
|
-
getUserRec(rec: UserRec): Promise<APIs.bluxUsersGetItemRecommendationsV2.ResponseData>;
|
|
147
|
-
getItemRec(rec: ItemRec): Promise<APIs.bluxUsersGetItemRecommendationsV2.ResponseData>;
|
|
148
|
-
getItemsRec(rec: ItemsRec): Promise<APIs.bluxUsersGetItemRecommendationsV2.ResponseData>;
|
|
149
|
-
getCategoryRec(rec: CategoryRec): Promise<APIs.bluxUsersGetItemRecommendationsV2.ResponseData>;
|
|
150
|
-
}
|
|
151
|
-
export {};
|