@vrplatform/log 2.0.0-alpha.30 → 2.0.0-alpha.32

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.
@@ -0,0 +1,109 @@
1
+ import type { Log } from '../log';
2
+ export declare class IntercomAPI {
3
+ constructor(token: string, log?: Log);
4
+ private headers;
5
+ private log?;
6
+ private fetch;
7
+ getUserByUserId(userId: string): Promise<{
8
+ type: "list";
9
+ data: {
10
+ id: string;
11
+ }[] | undefined;
12
+ total_count: 0;
13
+ pages: {
14
+ type: "pages";
15
+ page: 1;
16
+ per_page: 10;
17
+ total_pages: 0;
18
+ };
19
+ } | undefined>;
20
+ createUser({ data, userId, }: {
21
+ userId: string;
22
+ data: {
23
+ email: string;
24
+ name: string;
25
+ custom_attributes: Record<string, any>;
26
+ };
27
+ }): Promise<unknown>;
28
+ updateUser({ data, contactId, }: {
29
+ contactId: string;
30
+ data: {
31
+ email?: string;
32
+ name?: string;
33
+ custom_attributes: Record<string, any>;
34
+ [key: string]: any;
35
+ };
36
+ }): Promise<unknown>;
37
+ deleteUser(intercom_contact_id: string): Promise<{
38
+ id: "6657adf56abd0167d9419d1c";
39
+ external_id: "70";
40
+ type: "contact";
41
+ deleted: true;
42
+ } | undefined>;
43
+ createCompanyUser(data: {
44
+ intercom_contact_id: string;
45
+ intercom_company_id: string;
46
+ }): Promise<unknown>;
47
+ deleteCompanyUser({ intercom_company_id, intercom_contact_id, }: {
48
+ intercom_contact_id: string;
49
+ intercom_company_id: string;
50
+ }): Promise<{
51
+ id: "6657adc96abd0167d9419ca7";
52
+ } | undefined>;
53
+ trackEvent(data: {
54
+ user_id: string;
55
+ event_name: string;
56
+ metadata: Record<string, any>;
57
+ }): Promise<unknown>;
58
+ getCompanyByTenantId(tenantId: string): Promise<{
59
+ type: "list";
60
+ data: [{
61
+ type: "company";
62
+ company_id: "remote_companies_scroll_2";
63
+ id: "664df5436abd01f7945e1a78";
64
+ app_id: "this_is_an_id111_that_should_be_at_least_";
65
+ name: "IntercomQATest1";
66
+ remote_created_at: 1716385091;
67
+ created_at: 1716385091;
68
+ updated_at: 1716385091;
69
+ monthly_spend: 0;
70
+ session_count: 0;
71
+ user_count: 4;
72
+ tags: {
73
+ type: "tag.list";
74
+ tags: [];
75
+ };
76
+ segments: {
77
+ type: "segment.list";
78
+ segments: [];
79
+ };
80
+ custom_attributes: Record<string, string>;
81
+ }] | undefined;
82
+ pages: {
83
+ type: "pages";
84
+ next: null;
85
+ page: 1;
86
+ per_page: 15;
87
+ total_pages: 1;
88
+ };
89
+ total_count: 1;
90
+ } | undefined>;
91
+ createCompany({ data, tenantId, }: {
92
+ tenantId: string;
93
+ data: {
94
+ name: string;
95
+ remote_created_at: number;
96
+ custom_attributes: Record<string, any>;
97
+ };
98
+ }): Promise<unknown>;
99
+ updateCompany({ data, companyId, }: {
100
+ companyId: string;
101
+ data: Record<string, any>;
102
+ }): Promise<unknown>;
103
+ deleteCompany(intercom_company_id: string): Promise<{
104
+ id: "6657adc96abd0167d9419ca7";
105
+ object: "company";
106
+ deleted: true;
107
+ } | undefined>;
108
+ }
109
+ export declare function useIntercom(token: string, log?: Log): IntercomAPI;
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IntercomAPI = void 0;
4
+ exports.useIntercom = useIntercom;
5
+ class IntercomAPI {
6
+ constructor(token, log) {
7
+ this.headers = {
8
+ 'Content-Type': 'application/json',
9
+ Accept: 'application/json',
10
+ 'Intercom-Version': '2.11',
11
+ Authorization: `Bearer ${token}`,
12
+ };
13
+ this.log = log;
14
+ }
15
+ async fetch(path, options) {
16
+ if (options?.data) {
17
+ options.body = JSON.stringify(options.data);
18
+ options.data = undefined;
19
+ }
20
+ try {
21
+ const result = await fetch(`https://api.intercom.io${path}`, {
22
+ method: 'GET',
23
+ headers: this.headers,
24
+ ...options,
25
+ });
26
+ if (!result.ok) {
27
+ this.log?.info('Failed to fetch from Intercom', {
28
+ result: {
29
+ status: result.status,
30
+ statusText: result.statusText,
31
+ body: await result.text(),
32
+ },
33
+ });
34
+ if (result.status === 404)
35
+ return undefined;
36
+ if (result.status === 429) {
37
+ console.log('Intercom rate limit exceeded, waiting for 1 minute');
38
+ // X-RateLimit-Reset: 1487332520 => timestamp from header response when resetting
39
+ const reset = Number(result.headers.get('X-RateLimit-Reset'));
40
+ if (reset) {
41
+ const now = Math.floor(Date.now() / 1000);
42
+ const wait = reset - now + 1;
43
+ console.log(`Waiting for ${wait} seconds`);
44
+ await new Promise((resolve) => setTimeout(resolve, wait * 1000));
45
+ return await this.fetch(path, options);
46
+ }
47
+ }
48
+ }
49
+ return result.status === 202 ? {} : (await result.json());
50
+ }
51
+ catch (error) {
52
+ this.log?.error(error);
53
+ return undefined;
54
+ }
55
+ }
56
+ // User
57
+ async getUserByUserId(userId) {
58
+ return await this.fetch('/contacts/search', {
59
+ method: 'POST',
60
+ data: {
61
+ query: {
62
+ field: 'external_id',
63
+ operator: '=',
64
+ value: userId,
65
+ },
66
+ },
67
+ });
68
+ }
69
+ async createUser({ data, userId, }) {
70
+ return await this.fetch('/contacts', {
71
+ method: 'POST',
72
+ data: { ...data, external_id: userId },
73
+ });
74
+ }
75
+ async updateUser({ data, contactId, }) {
76
+ return await this.fetch(`/contacts/${contactId}`, {
77
+ method: 'PUT',
78
+ data,
79
+ });
80
+ }
81
+ async deleteUser(intercom_contact_id) {
82
+ return await this.fetch(`/contacts/${intercom_contact_id}`, {
83
+ method: 'DELETE',
84
+ });
85
+ }
86
+ async createCompanyUser(data) {
87
+ return await this.fetch(`/contacts/${data.intercom_contact_id}/companies`, {
88
+ method: 'POST',
89
+ data: {
90
+ id: data.intercom_company_id,
91
+ },
92
+ });
93
+ }
94
+ async deleteCompanyUser({ intercom_company_id, intercom_contact_id, }) {
95
+ return await this.fetch(`/contacts/${intercom_contact_id}/companies/${intercom_company_id}`, {
96
+ method: 'DELETE',
97
+ });
98
+ }
99
+ async trackEvent(data) {
100
+ return await this.fetch('/events', {
101
+ method: 'POST',
102
+ data: {
103
+ created_at: Math.floor(new Date().getTime() / 1000), // to seconds
104
+ ...data,
105
+ },
106
+ });
107
+ }
108
+ // Company
109
+ async getCompanyByTenantId(tenantId) {
110
+ return await this.fetch(`/companies?company_id=${tenantId}`, {
111
+ method: 'GET',
112
+ });
113
+ }
114
+ async createCompany({ data, tenantId, }) {
115
+ return await this.fetch('/companies', {
116
+ method: 'POST',
117
+ data: {
118
+ ...data,
119
+ company_id: tenantId,
120
+ },
121
+ });
122
+ }
123
+ async updateCompany({ data, companyId, }) {
124
+ return await this.fetch(`/companies/${companyId}`, {
125
+ method: 'PUT',
126
+ data,
127
+ });
128
+ }
129
+ async deleteCompany(intercom_company_id) {
130
+ return await this.fetch(`/companies/${intercom_company_id}`, {
131
+ method: 'DELETE',
132
+ });
133
+ }
134
+ }
135
+ exports.IntercomAPI = IntercomAPI;
136
+ function useIntercom(token, log) {
137
+ return new IntercomAPI(token, log);
138
+ }
139
+ //# sourceMappingURL=_intercom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_intercom.js","sourceRoot":"src/","sources":["tracking/_intercom.ts"],"names":[],"mappings":"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"}
@@ -1,45 +1,10 @@
1
1
  import { Analytics } from '@june-so/analytics-node';
2
2
  import { IntercomClient } from 'intercom-client';
3
3
  import { PostHog } from 'posthog-node';
4
- import { type LogBindings, type WorkerLog } from '../log';
5
- import { useIntercom } from './intercom';
6
- import type { TrackingEvent } from './types';
4
+ import { type WorkerLog } from '../log';
5
+ import type { GroupProps, IdentifyProps, TrackProps, TrackingProps } from './types';
7
6
  export * from './types';
8
- export type TrackingProps = {
9
- name: string;
10
- dataset: string;
11
- env: {
12
- INTERCOM_TOKEN?: string;
13
- JUNESO_TOKEN?: string;
14
- POSTHOG_TOKEN?: string;
15
- } & LogBindings;
16
- debugging?: boolean;
17
- };
18
7
  export type Tracking = ReturnType<typeof useTracking>;
19
- export type TrackProps = OptionalUser<{
20
- groupId: string;
21
- event: TrackingEvent;
22
- properties: Record<string, string | number | boolean | null | undefined>;
23
- timestamp?: Date;
24
- }>;
25
- export type IdentifyProps = {
26
- userId: string;
27
- traits: Record<string, string | number | boolean | null | undefined>;
28
- disableGeoip?: boolean;
29
- timestamp?: Date;
30
- };
31
- export type GroupProps = OptionalUser<{
32
- groupId: string;
33
- traits?: Record<string, string | number | boolean | null | undefined>;
34
- timestamp?: Date;
35
- }>;
36
- type OptionalUser<T> = T & ({
37
- userId: string;
38
- anonymousId?: string;
39
- } | {
40
- userId?: string;
41
- anonymousId: string;
42
- });
43
8
  export declare const useTracking: ({ dataset, env, name }: TrackingProps, isDev?: boolean) => {
44
9
  track: (props: TrackProps) => Promise<void>;
45
10
  identify: (props: IdentifyProps) => Promise<void>;
@@ -48,6 +13,5 @@ export declare const useTracking: ({ dataset, env, name }: TrackingProps, isDev?
48
13
  log: WorkerLog;
49
14
  june?: Analytics;
50
15
  intercom?: IntercomClient;
51
- _intercom?: ReturnType<typeof useIntercom>;
52
16
  posthog?: PostHog;
53
17
  };
@@ -22,7 +22,6 @@ const posthog_node_1 = require("posthog-node");
22
22
  const log_1 = require("../log");
23
23
  const utils_1 = require("../utils");
24
24
  const convertValuesToString_1 = require("../utils/convertValuesToString");
25
- const intercom_1 = require("./intercom");
26
25
  __exportStar(require("./types"), exports);
27
26
  const useTracking = ({ dataset, env, name }, isDev) => {
28
27
  const log = (0, log_1.useLog)({ name, dataset, env });
@@ -35,9 +34,6 @@ const useTracking = ({ dataset, env, name }, isDev) => {
35
34
  }),
36
35
  })
37
36
  : undefined;
38
- const _intercom = env.INTERCOM_TOKEN
39
- ? (0, intercom_1.useIntercom)(env.INTERCOM_TOKEN, log)
40
- : undefined;
41
37
  const june = env.JUNESO_TOKEN ? new analytics_node_1.Analytics(env.JUNESO_TOKEN) : undefined;
42
38
  const posthog = env.POSTHOG_TOKEN
43
39
  ? new posthog_node_1.PostHog(env.POSTHOG_TOKEN, {
@@ -120,35 +116,10 @@ const useTracking = ({ dataset, env, name }, isDev) => {
120
116
  traits,
121
117
  timestamp,
122
118
  }, (err) => (err ? console.error(err) : {}));
123
- const intercomUserId = (await intercom?.contacts.search({
124
- query: {
125
- field: 'external_id',
126
- operator: intercom_client_1.Intercom.SingleFilterSearchRequestOperator.Equals,
127
- value: userId,
128
- },
129
- }))?.data.at(0)?.id;
130
- const props = {
131
- external_id: userId,
132
- name: traits.name ? traits.name.toString() : undefined,
133
- email: traits.email ? traits.email.toString() : undefined,
134
- role: traits.role ? traits.role.toString() : undefined,
135
- avatar: traits.avatar ? traits.avatar.toString() : undefined,
136
- custom_attributes: traits,
137
- };
138
- if (intercomUserId)
139
- await intercom?.contacts.update(intercomUserId, props);
140
- else
141
- await intercom?.contacts.create(props);
142
119
  },
143
120
  group: async ({ traits, groupId, userId, anonymousId, timestamp, }) => {
144
121
  if (isDev || (0, utils_1.isTest)(userId || anonymousId || '', groupId))
145
122
  return;
146
- // upsert intercom company
147
- const intercomCompanyId = (await intercom?.companies.create({
148
- name: groupId,
149
- company_id: groupId,
150
- remote_created_at: timestamp ? timestamp.getTime() : Date.now(),
151
- }, traits))?.id;
152
123
  if (anonymousId) {
153
124
  posthog?.groupIdentify({
154
125
  groupKey: groupId,
@@ -166,24 +137,11 @@ const useTracking = ({ dataset, env, name }, isDev) => {
166
137
  distinctId: userId,
167
138
  });
168
139
  june?.group({ userId, groupId, traits, timestamp }, (err) => err ? console.error(err) : {});
169
- // attach user to intercom company
170
- const intercomUserId = (await intercom?.contacts.search({
171
- query: {
172
- field: 'external_id',
173
- operator: intercom_client_1.Intercom.SingleFilterSearchRequestOperator.Equals,
174
- value: userId,
175
- },
176
- }))?.data.at(0)?.id;
177
- if (intercomUserId && intercomCompanyId)
178
- intercom?.companies.attachContact(intercomUserId, {
179
- id: intercomCompanyId,
180
- });
181
140
  }
182
141
  },
183
142
  shutdown: async () => Promise.all([posthog?.shutdown(), june?.closeAndFlush(), log?.flush()]),
184
143
  // export dependencies
185
144
  intercom,
186
- _intercom,
187
145
  posthog,
188
146
  june,
189
147
  log,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"src/","sources":["tracking/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"src/","sources":["tracking/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { LogBindings } from '../log';
1
2
  type AuthEvent = 'account_signin_completed' | 'account_signup_code_requested' | 'account_signup_code_completed' | 'account_signup_code_failed' | 'account_signup_completed' | 'account_password_reset_requested' | 'account_password_reset_failed' | 'account_password_reset_completed' | 'account_invitation_accepted' | 'account_signed_out';
2
3
  type TeamEvent = 'team_added' | 'team_info_updated' | 'team_deleted' | 'team_member_removed';
3
4
  type ConnectionEvent = 'connection_created' | 'connection_reconnected' | 'connection_deleted' | 'connection_requested';
@@ -13,4 +14,176 @@ type ReportEvent = 'listings_reported';
13
14
  type UserEvent = 'update_refresh_accepted' | 'owner_statement_opened';
14
15
  type TestEvent = 'test_event' | 'test_error';
15
16
  export type TrackingEvent = AuthEvent | TeamEvent | ConnectionEvent | OwnershipEvent | OwnerEvent | SetupEvent | AutomationEvent | TaxStatementEvent | GLOwnerStatementEvent | HyperlineEvent | UserEvent | ListingEvent | ReportEvent | TestEvent;
17
+ type IntercomContactCustomAttributes = {
18
+ article_id?: string;
19
+ workflowInstanceId?: number;
20
+ Onboarding_Support?: string;
21
+ Active_Listings?: string;
22
+ Accounting_Software?: string;
23
+ userType?: string;
24
+ };
25
+ export type IntercomContactAttributes = {
26
+ role?: string;
27
+ name?: string;
28
+ owner_id?: number;
29
+ email?: string;
30
+ email_domain?: string;
31
+ phone?: string;
32
+ external_id?: string;
33
+ created_at?: Date;
34
+ signed_up_at?: Date;
35
+ last_seen_at?: Date;
36
+ last_contacted_at?: Date;
37
+ last_replied_at?: Date;
38
+ last_email_opened_at?: Date;
39
+ last_email_clicked_at?: Date;
40
+ location?: {
41
+ country?: string;
42
+ region?: string;
43
+ city?: string;
44
+ };
45
+ browser_language?: string;
46
+ language_override?: string;
47
+ browser?: string;
48
+ browser_version?: string;
49
+ os?: string;
50
+ unsubscribed_from_emails?: boolean;
51
+ marked_email_as_spam?: boolean;
52
+ has_hard_bounced?: boolean;
53
+ whatsapp_number?: string;
54
+ phone_country?: string;
55
+ id?: string;
56
+ avatar?: string;
57
+ updated_at?: Date;
58
+ workspace_id?: string;
59
+ android_app_name?: string;
60
+ android_sdk_version?: string;
61
+ ios_app_name?: string;
62
+ ios_sdk_version?: string;
63
+ custom_attributes?: IntercomContactCustomAttributes;
64
+ };
65
+ type IntercomCompanyCustomAttributes = {
66
+ firstName?: string;
67
+ lastName?: string;
68
+ email?: string;
69
+ teamId?: string;
70
+ team?: string;
71
+ type?: string;
72
+ status?: string;
73
+ 'SaaS User'?: boolean;
74
+ pms?: string;
75
+ accountingSoftware?: string;
76
+ creation_source?: string;
77
+ activeListings?: number;
78
+ partnerName?: string;
79
+ paymentMethodType?: string;
80
+ billingPortalUrl?: string;
81
+ billingStatus?: string;
82
+ billingPartner?: string;
83
+ accountingPartner?: string;
84
+ apps?: string;
85
+ };
86
+ export type IntercomCompanyAttributes = {
87
+ name?: string;
88
+ company_id?: string;
89
+ last_request_at?: Date;
90
+ remote_created_at?: Date;
91
+ user_count?: number;
92
+ session_count?: number;
93
+ monthly_spend?: number;
94
+ size?: number;
95
+ industry?: string;
96
+ website?: string;
97
+ id?: string;
98
+ created_at?: Date;
99
+ updated_at?: Date;
100
+ plan?: {
101
+ id?: string;
102
+ name?: string;
103
+ };
104
+ app_id?: string;
105
+ custom_attributes?: IntercomCompanyCustomAttributes;
106
+ };
107
+ declare module 'intercom-client' {
108
+ namespace Intercom {
109
+ interface UpdateContactRequest {
110
+ /** The role of the contact. */
111
+ role?: string;
112
+ /** A unique identifier for the contact which is given to Intercom */
113
+ external_id?: string;
114
+ /** The contacts email */
115
+ email?: string;
116
+ /** The contacts phone */
117
+ phone?: string;
118
+ /** The contacts name */
119
+ name?: string;
120
+ /** An image URL containing the avatar of a contact */
121
+ avatar?: string;
122
+ /** The time specified for when a contact signed up */
123
+ signed_up_at?: number;
124
+ /** The time when the contact was last seen (either where the Intercom Messenger was installed or when specified manually) */
125
+ last_seen_at?: number;
126
+ /** The id of an admin that has been assigned account ownership of the contact */
127
+ owner_id?: number;
128
+ /** Whether the contact is unsubscribed from emails */
129
+ unsubscribed_from_emails?: boolean;
130
+ /** The custom attributes which are set for the contact */
131
+ custom_attributes?: IntercomContactCustomAttributes;
132
+ }
133
+ interface CreateOrUpdateCompanyRequest {
134
+ /** The name of the Company */
135
+ name?: string;
136
+ /** The company id you have defined for the company. Can't be updated */
137
+ company_id?: string;
138
+ /** The name of the plan you have associated with the company. */
139
+ plan?: string;
140
+ /** The number of employees in this company. */
141
+ size?: number;
142
+ /** The URL for this company's website. Please note that the value specified here is not validated. Accepts any string. */
143
+ website?: string;
144
+ /** The industry that this company operates in. */
145
+ industry?: string;
146
+ /** A hash of key/value pairs containing any other data about the company you want Intercom to store. */
147
+ custom_attributes?: IntercomCompanyCustomAttributes;
148
+ /** The time the company was created by you. */
149
+ remote_created_at?: number;
150
+ /** How much revenue the company generates for your business. Note that this will truncate floats. i.e. it only allow for whole integers, 155.98 will be truncated to 155. Note that this has an upper limit of 2\*\*31-1 or 2147483647.. */
151
+ monthly_spend?: number;
152
+ }
153
+ }
154
+ }
155
+ export type TrackingProps = {
156
+ name: string;
157
+ dataset: string;
158
+ env: {
159
+ INTERCOM_TOKEN?: string;
160
+ JUNESO_TOKEN?: string;
161
+ POSTHOG_TOKEN?: string;
162
+ } & LogBindings;
163
+ debugging?: boolean;
164
+ };
165
+ export type TrackProps = OptionalUser<{
166
+ groupId: string;
167
+ event: TrackingEvent;
168
+ properties: Record<string, string | number | boolean | null | undefined>;
169
+ timestamp?: Date;
170
+ }>;
171
+ export type IdentifyProps = {
172
+ userId: string;
173
+ traits: Record<string, string | number | boolean | null | undefined>;
174
+ disableGeoip?: boolean;
175
+ timestamp?: Date;
176
+ };
177
+ export type GroupProps = OptionalUser<{
178
+ groupId: string;
179
+ traits?: Record<string, string | number | boolean | null | undefined>;
180
+ timestamp?: Date;
181
+ }>;
182
+ type OptionalUser<T> = T & ({
183
+ userId: string;
184
+ anonymousId?: string;
185
+ } | {
186
+ userId?: string;
187
+ anonymousId: string;
188
+ });
16
189
  export {};