@vrplatform/log 2.0.91 → 2.0.93

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.
Files changed (69) hide show
  1. package/build/main/baselog.d.ts +19 -0
  2. package/build/main/baselog.js +137 -0
  3. package/build/main/baselog.js.map +1 -0
  4. package/build/main/color.d.ts +54 -0
  5. package/build/main/color.js +371 -0
  6. package/build/main/color.js.map +1 -0
  7. package/build/main/common.d.ts +29 -0
  8. package/build/main/common.js +86 -0
  9. package/build/main/common.js.map +1 -0
  10. package/build/main/index.spec.d.ts +0 -0
  11. package/build/main/index.spec.js +2 -0
  12. package/build/main/index.spec.js.map +1 -0
  13. package/build/main/tracking/index.js +1 -1
  14. package/build/main/tracking/index.js.map +1 -1
  15. package/build/main/tracking/types.d.ts +6 -0
  16. package/build/main/type.d.ts +37 -0
  17. package/build/main/{tracking/eventTypes.js → type.js} +1 -1
  18. package/build/main/type.js.map +1 -0
  19. package/build/main/utils/isTest.d.ts +13 -0
  20. package/build/main/utils/isTest.js +37 -6
  21. package/build/main/utils/isTest.js.map +1 -1
  22. package/build/module/baselog.d.ts +19 -0
  23. package/build/module/baselog.js +120 -0
  24. package/build/module/baselog.js.map +1 -0
  25. package/build/module/color.d.ts +54 -0
  26. package/build/module/color.js +375 -0
  27. package/build/module/color.js.map +1 -0
  28. package/build/module/common.d.ts +29 -0
  29. package/build/module/common.js +80 -0
  30. package/build/module/common.js.map +1 -0
  31. package/build/module/index.spec.d.ts +0 -0
  32. package/build/module/index.spec.js +2 -0
  33. package/build/module/index.spec.js.map +1 -0
  34. package/build/module/tracking/index.js +1 -1
  35. package/build/module/tracking/index.js.map +1 -1
  36. package/build/module/tracking/types.d.ts +6 -0
  37. package/build/module/type.d.ts +37 -0
  38. package/build/module/type.js +2 -0
  39. package/build/module/type.js.map +1 -0
  40. package/build/module/utils/isTest.d.ts +13 -0
  41. package/build/module/utils/isTest.js +33 -2
  42. package/build/module/utils/isTest.js.map +1 -1
  43. package/package.json +2 -2
  44. package/src/tracking/index.ts +1 -1
  45. package/src/tracking/types.ts +7 -0
  46. package/src/utils/isTest.ts +37 -2
  47. package/build/main/tracking/_intercom.d.ts +0 -109
  48. package/build/main/tracking/_intercom.js +0 -139
  49. package/build/main/tracking/_intercom.js.map +0 -1
  50. package/build/main/tracking/eventTypes.d.ts +0 -16
  51. package/build/main/tracking/eventTypes.js.map +0 -1
  52. package/build/main/tracking/intercom.d.ts +0 -109
  53. package/build/main/tracking/intercom.js +0 -139
  54. package/build/main/tracking/intercom.js.map +0 -1
  55. package/build/main/tracking/test.d.ts +0 -1
  56. package/build/main/tracking/test.js +0 -23
  57. package/build/main/tracking/test.js.map +0 -1
  58. package/build/module/tracking/_intercom.d.ts +0 -109
  59. package/build/module/tracking/_intercom.js +0 -136
  60. package/build/module/tracking/_intercom.js.map +0 -1
  61. package/build/module/tracking/eventTypes.d.ts +0 -16
  62. package/build/module/tracking/eventTypes.js +0 -2
  63. package/build/module/tracking/eventTypes.js.map +0 -1
  64. package/build/module/tracking/intercom.d.ts +0 -109
  65. package/build/module/tracking/intercom.js +0 -136
  66. package/build/module/tracking/intercom.js.map +0 -1
  67. package/build/module/tracking/test.d.ts +0 -1
  68. package/build/module/tracking/test.js +0 -21
  69. package/build/module/tracking/test.js.map +0 -1
@@ -1,10 +1,41 @@
1
- const E2E_TEST_USERS = {
1
+ export const E2E_TEST_USER_EMAILS = [
2
+ // invite
3
+ 'e2e-invite-owner@finalytic.io',
4
+ 'e2e-invite-owner@vrp.rocks',
5
+ 'e2e-invite-member@finalytic.io',
6
+ 'e2e-invite-member@vrp.rocks',
7
+ // sign up
8
+ 'e2e-sign-up-legacy@vrp.rocks',
9
+ 'e2e-sign-up-partner@vrp.rocks',
10
+ 'e2e-sign-up@finalytic.io',
11
+ 'e2e-sign-up@vrp.rocks',
12
+ // lars
13
+ 'lars+e2e@vrplatform.app',
14
+ 'lars+e2e-gl@vrplatform.app',
15
+ 'lars+checkly@finalytic.co',
16
+ ];
17
+ export const E2E_TEST_USERS = {
18
+ // invite
2
19
  'e2e-invite-member@finalytic.io': '113d73d8-ee21-46b7-a12a-a74f632401ca',
20
+ 'e2e-invite-member@vrp.rocks': '113d73d8-ee21-46b7-a12a-a74f632401ca',
3
21
  'e2e-invite-owner@finalytic.io': '917b7c4e-cb03-491c-9e94-d33a5bdeca05',
22
+ 'e2e-invite-owner@vrp.rocks': '917b7c4e-cb03-491c-9e94-d33a5bdeca05',
23
+ // sign up
24
+ 'e2e-sign-up-partner@vrp.rocks': '5c8e5572-74d0-4ae6-af73-bca8db9a27e9',
25
+ 'e2e-sign-up@vrp.rocks': '3c8e5572-74d0-4ae6-af73-bca8db9a27e9',
4
26
  'e2e-sign-up@finalytic.io': 'ec8e5572-74d0-4ae6-af73-bca8db9a27e9',
27
+ 'e2e-sign-up-legacy@vrp.rocks': 'ec8e5572-74d0-4ae6-af73-bca8db9a27e9',
28
+ // other
5
29
  'lars+checkly@finalytic.co': '9e7dfc88-503c-4222-9905-9116169d2203',
6
30
  };
7
- const E2E_TEST_TEAMS = {
31
+ export const E2E_TEST_EMAIL_TYPES = {
32
+ 'sign-up': 'e2e-sign-up@vrp.rocks',
33
+ 'sign-up-legacy': 'e2e-sign-up-legacy@vrp.rocks',
34
+ 'sign-up-partner': 'e2e-sign-up-partner@vrp.rocks',
35
+ 'invite-member': 'e2e-invite-member@vrp.rocks',
36
+ 'invite-owner': 'e2e-invite-owner@vrp.rocks',
37
+ };
38
+ export const E2E_TEST_TEAMS = {
8
39
  'VRP Automated Testing': 'c4fd21b4-8447-43a2-bdcb-f06a85a935ad',
9
40
  test_company_xxxx: '8f21060e-afe6-410a-b2f4-00a3caa20786',
10
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"isTest.js","sourceRoot":"src/","sources":["utils/isTest.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG;IACrB,gCAAgC,EAAE,sCAAsC;IACxE,+BAA+B,EAAE,sCAAsC;IACvE,0BAA0B,EAAE,sCAAsC;IAClE,2BAA2B,EAAE,sCAAsC;CACpE,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB,uBAAuB,EAAE,sCAAsC;IAC/D,iBAAiB,EAAE,sCAAsC;CAC1D,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,OAAgB,EAAE,SAAkB,EAAE,EAAE,CAC7E,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9C,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"isTest.js","sourceRoot":"src/","sources":["utils/isTest.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,SAAS;IACT,+BAA+B;IAC/B,4BAA4B;IAC5B,gCAAgC;IAChC,6BAA6B;IAC7B,UAAU;IACV,8BAA8B;IAC9B,+BAA+B;IAC/B,0BAA0B;IAC1B,uBAAuB;IACvB,OAAO;IACP,yBAAyB;IACzB,4BAA4B;IAC5B,2BAA2B;CACnB,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAEvB;IACF,SAAS;IACT,gCAAgC,EAAE,sCAAsC;IACxE,6BAA6B,EAAE,sCAAsC;IACrE,+BAA+B,EAAE,sCAAsC;IACvE,4BAA4B,EAAE,sCAAsC;IACpE,UAAU;IACV,+BAA+B,EAAE,sCAAsC;IACvE,uBAAuB,EAAE,sCAAsC;IAC/D,0BAA0B,EAAE,sCAAsC;IAClE,8BAA8B,EAAE,sCAAsC;IACtE,QAAQ;IACR,2BAA2B,EAAE,sCAAsC;CACpE,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,SAAS,EAAE,uBAAuB;IAClC,gBAAgB,EAAE,8BAA8B;IAChD,iBAAiB,EAAE,+BAA+B;IAClD,eAAe,EAAE,6BAA6B;IAC9C,cAAc,EAAE,4BAA4B;CACpC,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,uBAAuB,EAAE,sCAAsC;IAC/D,iBAAiB,EAAE,sCAAsC;CAC1D,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,OAAgB,EAAE,SAAkB,EAAE,EAAE,CAC7E,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9C,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vrplatform/log",
3
- "version": "2.0.91",
3
+ "version": "2.0.93",
4
4
  "main": "build/main/index.js",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -18,7 +18,7 @@
18
18
  ],
19
19
  "dependencies": {
20
20
  "@axiomhq/js": "1.3.0",
21
- "@finalytic/graphql": "2.0.30",
21
+ "@finalytic/graphql": "2.0.134",
22
22
  "intercom-client": "6.0.0-beta.3",
23
23
  "serialize-error": "11.0.3"
24
24
  },
@@ -193,7 +193,7 @@ export const useTracking = (
193
193
  tenantId: groupId,
194
194
  userId: userId,
195
195
  props: properties,
196
- trackedAt: timestamp,
196
+ trackedAt: timestamp ? timestamp.toISOString() : undefined,
197
197
  packageName,
198
198
  },
199
199
  }).id
@@ -1,3 +1,4 @@
1
+ import type { recurringFeeType_enum } from '@finalytic/graphql';
1
2
  import type { Maybe } from '@finalytic/utils';
2
3
 
3
4
  export type TrackProps<T extends TrackingEvent> = OptionalUser<{
@@ -116,6 +117,7 @@ export type TrackingEventProps = {
116
117
  ownership_updated: OwnershipUpdatedProps;
117
118
  ownership_deleted: OwnershipDeletedProps;
118
119
  contact_created: ContactCreatedProps;
120
+ recurring_fee_missing_template_account: RecurringFeeMissingTemplateAccount;
119
121
  owner_created: OwnerCreatedProps;
120
122
  owner_updated: OwnerUpdatedProps;
121
123
  owner_deleted: OwnerDeletedProps;
@@ -538,6 +540,11 @@ type ContactCreatedProps = MaybePartial<{
538
540
  | 'limited_liability_company';
539
541
  }>;
540
542
 
543
+ type RecurringFeeMissingTemplateAccount = MaybePartial<{
544
+ accounts: string[];
545
+ type: recurringFeeType_enum;
546
+ }>;
547
+
541
548
  type OwnerCreatedProps = MaybePartial<{
542
549
  userId: string;
543
550
  tenantId: string;
@@ -1,11 +1,46 @@
1
- const E2E_TEST_USERS = {
1
+ export const E2E_TEST_USER_EMAILS = [
2
+ // invite
3
+ 'e2e-invite-owner@finalytic.io',
4
+ 'e2e-invite-owner@vrp.rocks',
5
+ 'e2e-invite-member@finalytic.io',
6
+ 'e2e-invite-member@vrp.rocks',
7
+ // sign up
8
+ 'e2e-sign-up-legacy@vrp.rocks',
9
+ 'e2e-sign-up-partner@vrp.rocks',
10
+ 'e2e-sign-up@finalytic.io',
11
+ 'e2e-sign-up@vrp.rocks',
12
+ // lars
13
+ 'lars+e2e@vrplatform.app',
14
+ 'lars+e2e-gl@vrplatform.app',
15
+ 'lars+checkly@finalytic.co',
16
+ ] as const;
17
+
18
+ export const E2E_TEST_USERS: Partial<
19
+ Record<(typeof E2E_TEST_USER_EMAILS)[number], string>
20
+ > = {
21
+ // invite
2
22
  'e2e-invite-member@finalytic.io': '113d73d8-ee21-46b7-a12a-a74f632401ca',
23
+ 'e2e-invite-member@vrp.rocks': '113d73d8-ee21-46b7-a12a-a74f632401ca',
3
24
  'e2e-invite-owner@finalytic.io': '917b7c4e-cb03-491c-9e94-d33a5bdeca05',
25
+ 'e2e-invite-owner@vrp.rocks': '917b7c4e-cb03-491c-9e94-d33a5bdeca05',
26
+ // sign up
27
+ 'e2e-sign-up-partner@vrp.rocks': '5c8e5572-74d0-4ae6-af73-bca8db9a27e9',
28
+ 'e2e-sign-up@vrp.rocks': '3c8e5572-74d0-4ae6-af73-bca8db9a27e9',
4
29
  'e2e-sign-up@finalytic.io': 'ec8e5572-74d0-4ae6-af73-bca8db9a27e9',
30
+ 'e2e-sign-up-legacy@vrp.rocks': 'ec8e5572-74d0-4ae6-af73-bca8db9a27e9',
31
+ // other
5
32
  'lars+checkly@finalytic.co': '9e7dfc88-503c-4222-9905-9116169d2203',
6
33
  };
7
34
 
8
- const E2E_TEST_TEAMS = {
35
+ export const E2E_TEST_EMAIL_TYPES = {
36
+ 'sign-up': 'e2e-sign-up@vrp.rocks',
37
+ 'sign-up-legacy': 'e2e-sign-up-legacy@vrp.rocks',
38
+ 'sign-up-partner': 'e2e-sign-up-partner@vrp.rocks',
39
+ 'invite-member': 'e2e-invite-member@vrp.rocks',
40
+ 'invite-owner': 'e2e-invite-owner@vrp.rocks',
41
+ } as const;
42
+
43
+ export const E2E_TEST_TEAMS = {
9
44
  'VRP Automated Testing': 'c4fd21b4-8447-43a2-bdcb-f06a85a935ad',
10
45
  test_company_xxxx: '8f21060e-afe6-410a-b2f4-00a3caa20786',
11
46
  };
@@ -1,109 +0,0 @@
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;
@@ -1,139 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"_intercom.js","sourceRoot":"src/","sources":["tracking/_intercom.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- 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
- type TeamEvent = 'team_added' | 'team_info_updated' | 'team_deleted' | 'team_member_removed';
3
- type ConnectionEvent = 'connection_created' | 'connection_reconnected' | 'connection_deleted' | 'connection_requested';
4
- type OwnershipEvent = 'ownership_created' | 'ownership_updated' | 'ownership_deleted';
5
- type OwnerEvent = 'owner_created' | 'owner_updated' | 'owner_deleted' | 'owner_tax_info_modal_opened' | 'owner_tax_info_modal_submitted';
6
- type SetupEvent = 'setup_classes_set' | 'setup_accounting_version_completed' | 'setup_accounting_config_completed' | 'setup_owner_imported' | 'setup_listing_imported';
7
- type AutomationEvent = 'automation_created' | 'automation_updated' | 'automation_deleted';
8
- type TaxStatementEvent = 'tax_statement_preview_opened' | 'tax_statement_downloaded';
9
- type GLOwnerStatementEvent = 'gl_owner_statement_preview_opened' | 'gl_owner_statement_downloaded';
10
- type HyperlineEvent = 'hyperline_invoice_ready' | 'hyperline_invoice_settled' | 'hyperline_trial_started' | 'hyperline_trial_ended' | 'hyperline_subscription_activated' | 'hyperline_subscription_cancelled' | 'hyperline_subscription_created' | 'hyperline_subscription_errored' | 'hyperline_subscription_paused' | 'hyperline_subscription_voided' | 'hyperline_subscription_charged' | 'hyperline_customer_created' | 'hyperline_customer_updated' | 'hyperline_payment_method_created' | 'hyperline_payment_method_errored' | 'hyperline_payment_method_deleted';
11
- type ListingEvent = 'listing_activated' | 'listing_deactivated';
12
- type ReportEvent = 'listings_reported';
13
- type UserEvent = 'update_refresh_accepted' | 'owner_statement_opened';
14
- type TestEvent = 'test_event' | 'test_error';
15
- export type TrackingEvent = AuthEvent | TeamEvent | ConnectionEvent | OwnershipEvent | OwnerEvent | SetupEvent | AutomationEvent | TaxStatementEvent | GLOwnerStatementEvent | HyperlineEvent | UserEvent | ListingEvent | ReportEvent | TestEvent;
16
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"eventTypes.js","sourceRoot":"src/","sources":["tracking/eventTypes.ts"],"names":[],"mappings":""}
@@ -1,109 +0,0 @@
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;
@@ -1,139 +0,0 @@
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