saasco-sdk 0.1.20 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/index.cjs.js +2 -416
- package/index.esm.js +3 -382
- package/package.json +1 -1
- package/src/index.d.ts +1 -3
- package/src/lib/getBrowserContext.d.ts +1 -1
- package/src/lib/tracking/types.d.ts +0 -2762
- package/src/lib/coerceReservedProperties.d.ts +0 -2
- package/src/lib/types.d.ts +0 -1971
package/index.esm.js
CHANGED
|
@@ -2,7 +2,7 @@ import { __awaiter } from 'tslib';
|
|
|
2
2
|
import { v4 } from '@lukeed/uuid';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
|
|
5
|
-
var version = "0.1.
|
|
5
|
+
var version = "0.1.22";
|
|
6
6
|
|
|
7
7
|
const timezones = {
|
|
8
8
|
'Asia/Barnaul': 'RU',
|
|
@@ -619,6 +619,7 @@ class Saasco {
|
|
|
619
619
|
payload: JSON.stringify(Object.assign(Object.assign({}, browserContext || {}), {
|
|
620
620
|
properties: properties || {}
|
|
621
621
|
})),
|
|
622
|
+
source: isBrowser ? 'client' : 'server',
|
|
622
623
|
context: JSON.stringify(context || {})
|
|
623
624
|
};
|
|
624
625
|
return this.doRequest('events', data);
|
|
@@ -811,107 +812,6 @@ class Saasco {
|
|
|
811
812
|
}
|
|
812
813
|
}
|
|
813
814
|
|
|
814
|
-
function coerceReservedProperties(properties) {
|
|
815
|
-
const coerce = [{
|
|
816
|
-
key: 'age',
|
|
817
|
-
coerceFrom: ['age', 'age_value', 'ageValue', 'user_age', 'userAge', 'user_age_value', 'userAgeValue', 'age_of_user', 'ageOfUser', 'age_in_years', 'ageInYears', 'years_old', 'yearsOld', 'age_years', 'ageYears'],
|
|
818
|
-
schema: z.coerce.number().optional()
|
|
819
|
-
}, {
|
|
820
|
-
key: 'avatar',
|
|
821
|
-
coerceFrom: ['avatar', 'user_avatar', 'userAvatar', 'avatar_url', 'avatarUrl', 'profile_picture', 'profilePicture', 'picture', 'user_picture', 'userPicture', 'profile_pic', 'profilePic', 'pic', 'user_pic', 'userPic', 'image', 'user_image', 'userImage', 'profile_image', 'profileImage', 'profile_image_url', 'profileImageUrl', 'profile_pic_url', 'profilePicUrl', 'pic_url', 'picUrl', 'image_url', 'imageUrl', 'user_image_url', 'userImageUrl', 'user_pic_url', 'userPicUrl', 'profile_pic_url', 'profilePicUrl', 'pic_url', 'picUrl', 'image_url', 'imageUrl', 'user_image_url', 'userImageUrl', 'user_pic_url', 'userPicUrl'],
|
|
822
|
-
schema: z.coerce.string().url().optional()
|
|
823
|
-
}, {
|
|
824
|
-
key: 'birthday',
|
|
825
|
-
coerceFrom: ['birthday', 'birth_date', 'birthDate', 'date_of_birth', 'dateOfBirth', 'dob', 'Dob', 'birth_day', 'birthDay']
|
|
826
|
-
}, {
|
|
827
|
-
key: 'createdAt',
|
|
828
|
-
coerceFrom: ['createdAt', 'created_at', 'created', 'createdDate', 'created_date', 'dateCreated', 'date_created', 'date_created_at', 'dateCreatedAt', 'date_created_at', 'dateCreated', 'date_created'],
|
|
829
|
-
schema: z.coerce.date().optional()
|
|
830
|
-
}, {
|
|
831
|
-
key: 'description',
|
|
832
|
-
coerceFrom: ['description', 'bio', 'about', 'about_me', 'aboutMe', 'user_description', 'userDescription', 'profile_description', 'profileDescription']
|
|
833
|
-
}, {
|
|
834
|
-
key: 'email',
|
|
835
|
-
coerceFrom: ['email', 'user_email', 'userEmail', 'email_address', 'emailAddress', 'e_mail', 'E_Mail', 'mail', 'Mail', 'contact_email', 'contactEmail', 'primary_email', 'primaryEmail'],
|
|
836
|
-
schema: z.coerce.string().email().optional()
|
|
837
|
-
}, {
|
|
838
|
-
key: 'firstName',
|
|
839
|
-
coerceFrom: ['first_name', 'firstName', 'firstname', 'given_name', 'givenName', 'user_first_name', 'userFirstName', 'name_first', 'nameFirst', 'f_name', 'fName']
|
|
840
|
-
}, {
|
|
841
|
-
key: 'gender',
|
|
842
|
-
coerceFrom: ['gender', 'user_gender', 'userGender', 'sex', 'user_sex', 'userSex']
|
|
843
|
-
}, {
|
|
844
|
-
key: 'lastName',
|
|
845
|
-
coerceFrom: ['last_name', 'lastName', 'lastname', 'surname', 'user_last_name', 'userLastName', 'name_last', 'nameLast', 'l_name', 'lName']
|
|
846
|
-
}, {
|
|
847
|
-
key: 'name',
|
|
848
|
-
coerceFrom: ['name', 'full_name', 'fullName', 'user_name', 'userName', 'complete_name', 'completeName']
|
|
849
|
-
}, {
|
|
850
|
-
key: 'phone',
|
|
851
|
-
coerceFrom: ['phone', 'phone_number', 'phoneNumber', 'mobile', 'mobile_number', 'mobileNumber', 'contact_number', 'contactNumber', 'tel', 'telephone']
|
|
852
|
-
}, {
|
|
853
|
-
key: 'title',
|
|
854
|
-
coerceFrom: ['title', 'user_title', 'userTitle', 'position', 'job_title', 'jobTitle']
|
|
855
|
-
}, {
|
|
856
|
-
key: 'username',
|
|
857
|
-
coerceFrom: ['username', 'user_name', 'userName', 'user_login', 'userLogin', 'account_name', 'accountName', 'screen_name', 'screenName', 'handle']
|
|
858
|
-
}, {
|
|
859
|
-
key: 'website',
|
|
860
|
-
coerceFrom: ['website', 'web_site', 'site', 'web', 'personal_website', 'personalWebsite', 'company_website', 'companyWebsite'],
|
|
861
|
-
schema: z.coerce.string().url().optional()
|
|
862
|
-
}, {
|
|
863
|
-
key: 'displayName',
|
|
864
|
-
coerceFrom: ['display_name', 'displayName', 'user_display_name', 'userDisplayName', 'full_name', 'fullName', 'user_full_name', 'userFullName', 'complete_name', 'completeName', 'user_complete_name', 'userCompleteName', 'name', 'username']
|
|
865
|
-
}, {
|
|
866
|
-
key: '$stripeCustomerId',
|
|
867
|
-
coerceFrom: ['stripe_customer_id', 'stripeCustomerId', 'stripe_customer_id', 'stripeCustomerId', 'stripe_customer_id', 'stripeCustomerId', 'stripe_customer_id', 'stripeCustomerId', 'stripe_customer_id', 'stripeCustomerId']
|
|
868
|
-
}];
|
|
869
|
-
return coerce.reduce((acc, {
|
|
870
|
-
key,
|
|
871
|
-
coerceFrom,
|
|
872
|
-
schema
|
|
873
|
-
}) => {
|
|
874
|
-
const coercedValue = coerceValue(properties, coerceFrom, schema);
|
|
875
|
-
if (coercedValue) acc[key] = coercedValue;
|
|
876
|
-
if (!coercedValue && key === 'displayName') {
|
|
877
|
-
let displayName = '';
|
|
878
|
-
if (acc['firstName']) {
|
|
879
|
-
displayName = `${acc['firstName'] || ''} ${acc['lastName'] || ''}`.trim();
|
|
880
|
-
} else if (acc['username'] && typeof acc['username'] === 'string') {
|
|
881
|
-
displayName = acc['username'];
|
|
882
|
-
} else if (acc['name'] && typeof acc['name'] === 'string') {
|
|
883
|
-
displayName = acc['name'];
|
|
884
|
-
}
|
|
885
|
-
if (displayName) acc[key] = displayName;
|
|
886
|
-
}
|
|
887
|
-
return acc;
|
|
888
|
-
}, properties);
|
|
889
|
-
}
|
|
890
|
-
/**
|
|
891
|
-
* Coerces the first non-null value from the properties object
|
|
892
|
-
* @param properties
|
|
893
|
-
* @param keys Provided in priority order, the first to match will return
|
|
894
|
-
* @returns
|
|
895
|
-
*/
|
|
896
|
-
function coerceValue(properties, keys, schema) {
|
|
897
|
-
let coercedValue = null;
|
|
898
|
-
for (const key of keys) {
|
|
899
|
-
if (properties[key] !== undefined) {
|
|
900
|
-
if (!schema) {
|
|
901
|
-
coercedValue = properties[key];
|
|
902
|
-
break;
|
|
903
|
-
} else {
|
|
904
|
-
const result = schema.safeParse(properties[key]);
|
|
905
|
-
if (result.success) {
|
|
906
|
-
coercedValue = properties[key];
|
|
907
|
-
break;
|
|
908
|
-
}
|
|
909
|
-
}
|
|
910
|
-
}
|
|
911
|
-
}
|
|
912
|
-
return coercedValue;
|
|
913
|
-
}
|
|
914
|
-
|
|
915
815
|
const browserContextSchema = z.object({
|
|
916
816
|
$locale: z.string(),
|
|
917
817
|
$location: z.string(),
|
|
@@ -924,284 +824,5 @@ const browserContextSchema = z.object({
|
|
|
924
824
|
$title: z.string(),
|
|
925
825
|
$userAgent: z.string()
|
|
926
826
|
});
|
|
927
|
-
const serverContextSchema = z.object({
|
|
928
|
-
$city: z.string().optional(),
|
|
929
|
-
$country: z.string().optional(),
|
|
930
|
-
$continent: z.string().optional(),
|
|
931
|
-
$latitude: z.number().optional(),
|
|
932
|
-
$longitude: z.number().optional(),
|
|
933
|
-
$timezone: z.string().optional(),
|
|
934
|
-
$userAgent: z.string().optional(),
|
|
935
|
-
$referrer: z.string().optional(),
|
|
936
|
-
$ip: z.string().optional(),
|
|
937
|
-
$processedAt: z.string().datetime().optional(),
|
|
938
|
-
$identityHash: z.string().optional()
|
|
939
|
-
});
|
|
940
|
-
const trackedEventTypesSchema = z.enum(['SHORTLINK_REDIRECT']);
|
|
941
|
-
const trackedEventSchema = z.object({
|
|
942
|
-
id: z.string().uuid(),
|
|
943
|
-
timestamp: z.string().datetime(),
|
|
944
|
-
projectId: z.string(),
|
|
945
|
-
version: z.string(),
|
|
946
|
-
type: trackedEventTypesSchema,
|
|
947
|
-
payload: z.object({
|
|
948
|
-
browserContext: browserContextSchema.optional(),
|
|
949
|
-
serverContext: serverContextSchema.optional(),
|
|
950
|
-
properties: z.record(z.string(), z.any()).optional()
|
|
951
|
-
})
|
|
952
|
-
});
|
|
953
|
-
/**
|
|
954
|
-
* Creates a zod for tracking any type of event.
|
|
955
|
-
* Includes the base tracking schema and extends with any new schema
|
|
956
|
-
* @param type
|
|
957
|
-
* @param payloadSchema
|
|
958
|
-
* @returns
|
|
959
|
-
*/
|
|
960
|
-
function createTrackedEventTypeSchema(type, payloadSchema) {
|
|
961
|
-
const typeSchema = z.literal(type);
|
|
962
|
-
return trackedEventSchema.extend({
|
|
963
|
-
type: typeSchema,
|
|
964
|
-
payload: z.object(Object.assign(Object.assign({}, trackedEventSchema.shape.payload.shape), {
|
|
965
|
-
properties: payloadSchema
|
|
966
|
-
}))
|
|
967
|
-
});
|
|
968
|
-
}
|
|
969
|
-
|
|
970
|
-
const tbAny = z.union([z.string(), z.number(), z.array(z.union([z.string(), z.number()]))]);
|
|
971
|
-
const tinyBirdBaseSchema = z.object({
|
|
972
|
-
meta: z.array(z.object({
|
|
973
|
-
name: z.string(),
|
|
974
|
-
type: z.string()
|
|
975
|
-
})),
|
|
976
|
-
statistics: z.object({
|
|
977
|
-
elapsed: z.number(),
|
|
978
|
-
rows_read: z.number(),
|
|
979
|
-
bytes_read: z.number()
|
|
980
|
-
}),
|
|
981
|
-
rows: z.number()
|
|
982
|
-
});
|
|
983
|
-
const TinybirdJobResponseSchema = z.object({
|
|
984
|
-
id: z.string(),
|
|
985
|
-
job_id: z.string(),
|
|
986
|
-
job_url: z.string().url(),
|
|
987
|
-
job: z.object({
|
|
988
|
-
kind: z.string(),
|
|
989
|
-
id: z.string(),
|
|
990
|
-
job_id: z.string(),
|
|
991
|
-
status: z.string(),
|
|
992
|
-
created_at: z.string(),
|
|
993
|
-
updated_at: z.string(),
|
|
994
|
-
started_at: z.string().nullable(),
|
|
995
|
-
is_cancellable: z.boolean(),
|
|
996
|
-
datasource: z.object({
|
|
997
|
-
id: z.string(),
|
|
998
|
-
name: z.string()
|
|
999
|
-
}),
|
|
1000
|
-
delete_condition: z.string().optional()
|
|
1001
|
-
}),
|
|
1002
|
-
status: z.string(),
|
|
1003
|
-
delete_id: z.string().optional(),
|
|
1004
|
-
import_id: z.string().optional()
|
|
1005
|
-
});
|
|
1006
|
-
const latestEventsRequestSchema = z.object({
|
|
1007
|
-
projectId: z.string(),
|
|
1008
|
-
limit: z.number().optional(),
|
|
1009
|
-
payload: z.boolean().optional(),
|
|
1010
|
-
distinctId: z.string().optional(),
|
|
1011
|
-
action: z.string().optional()
|
|
1012
|
-
});
|
|
1013
|
-
const latestEventItemSchema = z.object({
|
|
1014
|
-
id: z.string(),
|
|
1015
|
-
timestamp: z.string(),
|
|
1016
|
-
action: z.string(),
|
|
1017
|
-
location: z.string(),
|
|
1018
|
-
referrer: z.string(),
|
|
1019
|
-
href: z.string(),
|
|
1020
|
-
device: z.string(),
|
|
1021
|
-
browser: z.string(),
|
|
1022
|
-
payload: z.string().optional(),
|
|
1023
|
-
distinctId: z.string().optional(),
|
|
1024
|
-
unique: z.boolean().optional()
|
|
1025
|
-
});
|
|
1026
|
-
const latestEventsResponseSchema = tinyBirdBaseSchema.extend({
|
|
1027
|
-
data: z.array(latestEventItemSchema)
|
|
1028
|
-
});
|
|
1029
|
-
const kpisRequestSchema = z.object({
|
|
1030
|
-
projectId: z.string(),
|
|
1031
|
-
dateTo: z.string().optional(),
|
|
1032
|
-
dateFrom: z.string().optional(),
|
|
1033
|
-
referrer: z.string().optional(),
|
|
1034
|
-
location: z.string().optional()
|
|
1035
|
-
});
|
|
1036
|
-
const kpiSchema = z.object({
|
|
1037
|
-
date: z.string(),
|
|
1038
|
-
users: z.number(),
|
|
1039
|
-
sessions: z.number(),
|
|
1040
|
-
pageViews: z.number(),
|
|
1041
|
-
events: z.number(),
|
|
1042
|
-
bounceRate: z.nullable(z.number()),
|
|
1043
|
-
avgSessionSec: z.number()
|
|
1044
|
-
});
|
|
1045
|
-
const kpisResponseSchema = tinyBirdBaseSchema.extend({
|
|
1046
|
-
data: z.array(kpiSchema)
|
|
1047
|
-
});
|
|
1048
|
-
const baseTopRequestSchema = z.object({
|
|
1049
|
-
projectId: z.string(),
|
|
1050
|
-
dateTo: z.string().optional(),
|
|
1051
|
-
dateFrom: z.string().optional(),
|
|
1052
|
-
limit: z.number().optional(),
|
|
1053
|
-
skip: z.number().optional(),
|
|
1054
|
-
referrer: z.string().optional(),
|
|
1055
|
-
location: z.string().optional()
|
|
1056
|
-
});
|
|
1057
|
-
const topPagesResponseSchema = tinyBirdBaseSchema.extend({
|
|
1058
|
-
data: z.array(z.object({
|
|
1059
|
-
pathname: z.string(),
|
|
1060
|
-
users: z.number(),
|
|
1061
|
-
events: z.number()
|
|
1062
|
-
}))
|
|
1063
|
-
});
|
|
1064
|
-
const topLocationsResponseSchema = tinyBirdBaseSchema.extend({
|
|
1065
|
-
data: z.array(z.object({
|
|
1066
|
-
location: z.string(),
|
|
1067
|
-
users: z.number(),
|
|
1068
|
-
sessions: z.number(),
|
|
1069
|
-
pageViews: z.number(),
|
|
1070
|
-
bounceRate: z.nullable(z.number()),
|
|
1071
|
-
avgSessionSec: z.number()
|
|
1072
|
-
}))
|
|
1073
|
-
});
|
|
1074
|
-
const topDevicesResponseSchema = tinyBirdBaseSchema.extend({
|
|
1075
|
-
data: z.array(z.object({
|
|
1076
|
-
device: z.string(),
|
|
1077
|
-
visits: z.number(),
|
|
1078
|
-
hits: z.number(),
|
|
1079
|
-
bounceRate: z.nullable(z.number()),
|
|
1080
|
-
avgSessionSec: z.number()
|
|
1081
|
-
}))
|
|
1082
|
-
});
|
|
1083
|
-
const topBrowsersResponseSchema = tinyBirdBaseSchema.extend({
|
|
1084
|
-
data: z.array(z.object({
|
|
1085
|
-
browser: z.string(),
|
|
1086
|
-
visits: z.number(),
|
|
1087
|
-
hits: z.number(),
|
|
1088
|
-
bounceRate: z.nullable(z.number()),
|
|
1089
|
-
avgSessionSec: z.number()
|
|
1090
|
-
}))
|
|
1091
|
-
});
|
|
1092
|
-
const topSourcesSchema = z.object({
|
|
1093
|
-
referrer: z.string(),
|
|
1094
|
-
users: z.number(),
|
|
1095
|
-
sessions: z.number(),
|
|
1096
|
-
pageViews: z.number(),
|
|
1097
|
-
bounceRate: z.nullable(z.number()),
|
|
1098
|
-
avgSessionSec: z.number()
|
|
1099
|
-
});
|
|
1100
|
-
const topSourcesResponseSchema = tinyBirdBaseSchema.extend({
|
|
1101
|
-
data: z.array(topSourcesSchema)
|
|
1102
|
-
});
|
|
1103
|
-
const topActionsResponseSchema = tinyBirdBaseSchema.extend({
|
|
1104
|
-
data: z.array(z.object({
|
|
1105
|
-
action: z.string(),
|
|
1106
|
-
users: z.number(),
|
|
1107
|
-
events: z.number()
|
|
1108
|
-
}))
|
|
1109
|
-
});
|
|
1110
|
-
const analyticsEventSchema = z.object({
|
|
1111
|
-
id: z.string(),
|
|
1112
|
-
timestamp: z.string(),
|
|
1113
|
-
projectId: z.string(),
|
|
1114
|
-
anonymousId: z.string(),
|
|
1115
|
-
sessionId: z.string(),
|
|
1116
|
-
distinctId: z.string().nullable(),
|
|
1117
|
-
version: z.string(),
|
|
1118
|
-
action: z.string(),
|
|
1119
|
-
payload: z.string()
|
|
1120
|
-
});
|
|
1121
|
-
const userEventsResponseSchema = tinyBirdBaseSchema.extend({
|
|
1122
|
-
data: z.array(analyticsEventSchema)
|
|
1123
|
-
});
|
|
1124
|
-
const currentUsersRequestSchema = z.object({
|
|
1125
|
-
projectId: z.string(),
|
|
1126
|
-
minutes: z.number(),
|
|
1127
|
-
referrer: z.string().optional(),
|
|
1128
|
-
location: z.string().optional()
|
|
1129
|
-
});
|
|
1130
|
-
const currentUsersResponseSchema = tinyBirdBaseSchema.extend({
|
|
1131
|
-
data: z.array(z.object({
|
|
1132
|
-
visits: z.number()
|
|
1133
|
-
}))
|
|
1134
|
-
});
|
|
1135
|
-
const reservedPropertiesSchema = z.object({
|
|
1136
|
-
age: z.number().nullish(),
|
|
1137
|
-
avatar: z.string().url().nullish(),
|
|
1138
|
-
birthday: z.string().nullish(),
|
|
1139
|
-
createdAt: z.string().nullish(),
|
|
1140
|
-
description: z.string().nullish(),
|
|
1141
|
-
email: z.string().email().or(z.literal('')).nullish(),
|
|
1142
|
-
firstName: z.string().nullish(),
|
|
1143
|
-
gender: z.string().nullish(),
|
|
1144
|
-
id: z.string().nullish(),
|
|
1145
|
-
lastName: z.string().nullish(),
|
|
1146
|
-
name: z.string().nullish(),
|
|
1147
|
-
phone: z.string().nullish(),
|
|
1148
|
-
title: z.string().nullish(),
|
|
1149
|
-
username: z.string().nullish(),
|
|
1150
|
-
website: z.string().nullish(),
|
|
1151
|
-
// Default Properties
|
|
1152
|
-
$id: z.string().nullish(),
|
|
1153
|
-
$lastSeen: z.string().nullish(),
|
|
1154
|
-
$lastIdentifiedAt: z.string().nullish(),
|
|
1155
|
-
$unsubscribed: z.boolean().nullish(),
|
|
1156
|
-
$unsubscribeReason: z.enum(['manual', 'complained', 'bounced']).nullish(),
|
|
1157
|
-
// Stripe Properties
|
|
1158
|
-
$stripeCustomerId: z.string().nullish(),
|
|
1159
|
-
$stripeTotalPayments: z.number().or(z.string()).nullish(),
|
|
1160
|
-
$stripeTotalSpent: z.number().or(z.string()).nullish(),
|
|
1161
|
-
// Internal properties
|
|
1162
|
-
$_toDelete: z.boolean().nullish()
|
|
1163
|
-
});
|
|
1164
|
-
const contactPropertiesSchema = reservedPropertiesSchema.optional().and(z.record(z.union([z.string(), z.number(), z.boolean(), z.date(), z.null(), z.array(z.union([z.string(), z.number(), z.boolean(), z.date(), z.null()]))])));
|
|
1165
|
-
const analyticsUserRawSchema = z.object({
|
|
1166
|
-
timestamp: z.string(),
|
|
1167
|
-
distinctId: z.string(),
|
|
1168
|
-
projectId: z.string(),
|
|
1169
|
-
payload: z.string()
|
|
1170
|
-
});
|
|
1171
|
-
const analyticsUserSchema = analyticsUserRawSchema.omit({
|
|
1172
|
-
payload: true
|
|
1173
|
-
}).and(z.object({
|
|
1174
|
-
properties: contactPropertiesSchema
|
|
1175
|
-
}));
|
|
1176
|
-
const listUsersParamsSchema = z.object({
|
|
1177
|
-
projectId: z.string(),
|
|
1178
|
-
limit: z.number().optional()
|
|
1179
|
-
});
|
|
1180
|
-
const getAnalyticsUserParamsSchema = z.object({
|
|
1181
|
-
projectId: z.string(),
|
|
1182
|
-
distinctId: z.string()
|
|
1183
|
-
});
|
|
1184
|
-
const idenfitySchema = z.object({
|
|
1185
|
-
id: z.string(),
|
|
1186
|
-
timestamp: z.string(),
|
|
1187
|
-
projectId: z.string(),
|
|
1188
|
-
distinctId: z.string(),
|
|
1189
|
-
anonymousId: z.string(),
|
|
1190
|
-
version: z.string(),
|
|
1191
|
-
payload: contactPropertiesSchema,
|
|
1192
|
-
context: z.object({
|
|
1193
|
-
active: z.boolean().optional()
|
|
1194
|
-
}).optional()
|
|
1195
|
-
});
|
|
1196
|
-
const latestIdentifiesRequestSchema = z.object({
|
|
1197
|
-
projectId: z.string(),
|
|
1198
|
-
limit: z.number().optional(),
|
|
1199
|
-
fields: z.array(z.string()).optional()
|
|
1200
|
-
});
|
|
1201
|
-
const latestIdentifiesResponseSchema = tinyBirdBaseSchema.extend({
|
|
1202
|
-
data: z.array(z.object({
|
|
1203
|
-
properties: contactPropertiesSchema
|
|
1204
|
-
}))
|
|
1205
|
-
});
|
|
1206
827
|
|
|
1207
|
-
export { Saasco,
|
|
828
|
+
export { Saasco, browserContextSchema, getBrowserContext, timezones };
|
package/package.json
CHANGED
package/src/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { BrowserContext } from './tracking
|
|
1
|
+
import { BrowserContext } from './tracking';
|
|
2
2
|
export declare function getBrowserContext(): BrowserContext | undefined;
|