@vrplatform/log 2.0.28 → 2.0.31

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 (58) 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/log/index.js +8 -2
  14. package/build/main/log/index.js.map +1 -1
  15. package/build/main/tracking/index.js +1 -1
  16. package/build/main/tracking/index.js.map +1 -1
  17. package/build/main/type.d.ts +39 -0
  18. package/build/main/{tracking/eventTypes.js → type.js} +1 -1
  19. package/build/main/type.js.map +1 -0
  20. package/build/module/baselog.d.ts +19 -0
  21. package/build/module/baselog.js +120 -0
  22. package/build/module/baselog.js.map +1 -0
  23. package/build/module/color.d.ts +54 -0
  24. package/build/module/color.js +375 -0
  25. package/build/module/color.js.map +1 -0
  26. package/build/module/common.d.ts +29 -0
  27. package/build/module/common.js +80 -0
  28. package/build/module/common.js.map +1 -0
  29. package/build/module/index.spec.d.ts +0 -0
  30. package/build/module/index.spec.js +2 -0
  31. package/build/module/index.spec.js.map +1 -0
  32. package/build/module/log/index.js +8 -2
  33. package/build/module/log/index.js.map +1 -1
  34. package/build/module/tracking/index.js +2 -2
  35. package/build/module/tracking/index.js.map +1 -1
  36. package/build/module/type.d.ts +39 -0
  37. package/build/module/type.js +2 -0
  38. package/build/module/type.js.map +1 -0
  39. package/package.json +1 -1
  40. package/src/log/index.ts +9 -2
  41. package/src/tracking/index.ts +2 -2
  42. package/build/main/tracking/_intercom.d.ts +0 -109
  43. package/build/main/tracking/_intercom.js +0 -139
  44. package/build/main/tracking/_intercom.js.map +0 -1
  45. package/build/main/tracking/eventTypes.d.ts +0 -16
  46. package/build/main/tracking/eventTypes.js.map +0 -1
  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/module/tracking/_intercom.d.ts +0 -109
  51. package/build/module/tracking/_intercom.js +0 -136
  52. package/build/module/tracking/_intercom.js.map +0 -1
  53. package/build/module/tracking/eventTypes.d.ts +0 -16
  54. package/build/module/tracking/eventTypes.js +0 -2
  55. package/build/module/tracking/eventTypes.js.map +0 -1
  56. package/build/module/tracking/intercom.d.ts +0 -109
  57. package/build/module/tracking/intercom.js +0 -136
  58. package/build/module/tracking/intercom.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vrplatform/log",
3
- "version": "2.0.28",
3
+ "version": "2.0.31",
4
4
  "main": "build/main/index.js",
5
5
  "publishConfig": {
6
6
  "access": "public"
package/src/log/index.ts CHANGED
@@ -44,17 +44,24 @@ export function useLog({
44
44
  };
45
45
  }): WorkerLog {
46
46
  const environment = _environment || getEnvironment(env);
47
- const colorLogs = env?.[LOG_ENV] === '*' || environment === 'development';
47
+ // const colorLogs = env?.[LOG_ENV] === '*' || ;
48
48
  const correlationId = cid || getCorrelationId(request); //const logger = nodeColorLog;
49
49
 
50
50
  const axiomToken = env?.[AXIOM_AUTH_TOKEN_ENV];
51
51
 
52
+ const isNodeJsCompat = typeof process !== 'undefined';
53
+ const isDev = environment === 'development';
54
+ const isLogEnabled = env?.[LOG_ENV] === '*';
55
+ const consoleLog = !axiomToken || isDev || isLogEnabled;
56
+ const colorLog = consoleLog && isNodeJsCompat;
57
+
52
58
  const axiom = createBaseLog(
53
59
  {
54
60
  token: axiomToken,
55
61
  orgId: env?.[AXIOM_ORG_ID_ENV],
56
62
  dataset: _dataset || env?.[AXIOM_DATASET_ENV] || 'default',
57
- consoleLog: colorLogs ? 'color' : false,
63
+ // color log on development and if env is *
64
+ consoleLog: colorLog ? 'color' : consoleLog,
58
65
  },
59
66
  {
60
67
  environment,
@@ -98,7 +98,7 @@ declare module 'intercom-client' {
98
98
  }
99
99
  }
100
100
 
101
- import { createClientV2 } from '@finalytic/graphql';
101
+ import { useHasuraClient } from '@finalytic/graphql';
102
102
  import { Analytics } from '@june-so/analytics-node';
103
103
  import { Intercom } from 'intercom-client';
104
104
  import { PostHog } from 'posthog-node';
@@ -144,7 +144,7 @@ export const useTracking = (
144
144
  posthog?: PostHog;
145
145
  } => {
146
146
  const client = env.HASURA_GRAPHQL_ADMIN_SECRET
147
- ? createClientV2('https://finalytic.hasura.app/v1/graphql', {
147
+ ? useHasuraClient({
148
148
  secret: env.HASURA_ADMIN_SECRET || env.HASURA_GRAPHQL_ADMIN_SECRET,
149
149
  })
150
150
  : undefined;
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"intercom.js","sourceRoot":"src/","sources":["tracking/intercom.ts"],"names":[],"mappings":"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"}