@leather.io/analytics 3.16.2 → 3.18.0

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/dist/index.d.ts CHANGED
@@ -80,21 +80,21 @@ interface Events extends HistoricalEvents {
80
80
  baseAmount: number;
81
81
  provider: string;
82
82
  };
83
- swap_execution_started: {
83
+ swap_submitted: {
84
84
  baseSymbol: string;
85
85
  targetSymbol: string;
86
86
  baseAmount: number;
87
87
  targetAmount: number;
88
88
  provider: string;
89
89
  };
90
- swap_execution_success: {
90
+ swap_submission_success: {
91
91
  baseSymbol: string;
92
92
  targetSymbol: string;
93
93
  baseAmount: number;
94
94
  targetAmount: number;
95
95
  provider: string;
96
96
  };
97
- swap_execution_failure: {
97
+ swap_submission_failure: {
98
98
  baseSymbol: string;
99
99
  targetSymbol: string;
100
100
  errorMessage: string;
@@ -142,6 +142,19 @@ interface Events extends HistoricalEvents {
142
142
  collectibles_summary: CollectiblesSummary;
143
143
  token_details_viewed: TokenCollectibleDetailsViewed;
144
144
  collectible_details_viewed: TokenCollectibleDetailsViewed;
145
+ app_icon_picker_sheet_opened: undefined;
146
+ app_icon_picker_sheet_dismissed: undefined;
147
+ app_icon_selected: {
148
+ icon: string;
149
+ previousIcon: string;
150
+ };
151
+ app_icon_change_failed: {
152
+ icon: string;
153
+ previousIcon: string;
154
+ error?: string;
155
+ };
156
+ network_added: undefined;
157
+ network_edited: undefined;
145
158
  }
146
159
  interface HistoricalEvents {
147
160
  add_network: undefined;
@@ -177,6 +190,7 @@ interface HistoricalEvents {
177
190
  click_open_in_new_tab_menu_item: undefined;
178
191
  click_change_network_menu_item: undefined;
179
192
  click_change_theme_menu_item: undefined;
193
+ click_settings_menu_item: undefined;
180
194
  click_toggle_privacy: undefined;
181
195
  request_psbt_cancel: undefined;
182
196
  request_sign_psbt_submit: undefined;
@@ -332,6 +346,8 @@ type UserSettingValue = {
332
346
  security_level: 'insecure' | 'secure' | 'not-selected';
333
347
  } | {
334
348
  notifications: 'disabled' | 'enabled' | 'not-selected';
349
+ } | {
350
+ app_icon: string;
335
351
  };
336
352
  interface WalletCreatedValue {
337
353
  type: 'software' | 'ledger';
@@ -373,14 +389,18 @@ interface DefaultProperties {
373
389
  [key: string]: JsonValue;
374
390
  }
375
391
  interface AnalyticsClientInterface {
376
- screen(name: string, ...args: any[]): Promise<any>;
377
- track(event: string, ...args: any[]): Promise<any>;
378
- group(groupId: string, traits?: any, ...args: any[]): Promise<any>;
379
- identify(...args: any[]): Promise<any>;
380
- page?(category?: string, name?: string, ...args: any[]): Promise<any>;
392
+ track(eventName: string, properties: Record<string, any>): void;
393
+ identify(uniqueId: string): Promise<void>;
394
+ setGroup(groupKey: string, groupId: string): void;
395
+ getGroup(groupKey: string, groupId: string): {
396
+ set(prop: string, to: string): void;
397
+ };
398
+ getPeople(): {
399
+ set(properties: Record<string, any>): void;
400
+ };
381
401
  }
382
- interface AnalyticsClientConfig<T extends AnalyticsClientInterface> {
383
- client: T;
402
+ interface AnalyticsClientConfig {
403
+ client: AnalyticsClientInterface;
384
404
  defaultProperties?: DefaultProperties;
385
405
  defaultTraits?: JsonMap;
386
406
  }
@@ -393,22 +413,14 @@ interface JsonMap {
393
413
  type OptionalIfUndefined<T> = T extends undefined ? undefined : T;
394
414
  //#endregion
395
415
  //#region src/index.d.ts
396
- declare function configureAnalyticsClient<T extends AnalyticsClientInterface>({
397
- client,
398
- defaultProperties,
399
- defaultTraits
400
- }: {
401
- client: T;
402
- defaultProperties: DefaultProperties;
403
- defaultTraits?: JsonMap;
404
- }): {
405
- track<K extends keyof Events>(event: K, ...[properties]: Events[K] extends undefined ? [] : [Events[K]]): Promise<any>;
406
- untypedTrack(event: string, properties?: JsonMap | Record<string, unknown>): Promise<any>;
407
- screen(name: string, properties?: JsonMap | Record<string, unknown>): Promise<any>;
408
- group(groupId: string, traits?: JsonMap | Record<string, unknown>): Promise<any>;
409
- identify(userId?: string, traits?: JsonMap | Record<string, unknown>): Promise<any>;
410
- page(category?: string, name?: string, properties?: JsonMap | Record<string, unknown>): Promise<any>;
411
- readonly client: T;
416
+ declare function configureAnalyticsClient(options: AnalyticsClientConfig): {
417
+ track<K extends keyof Events>(event: K, ...[properties]: Events[K] extends undefined ? [] : [Events[K]]): void;
418
+ untypedTrack(event: string, properties?: JsonMap | Record<string, unknown>): void;
419
+ screen(name: string, properties?: JsonMap | Record<string, unknown>): void;
420
+ group(groupId: string, traits: JsonMap | Record<string, unknown>): void;
421
+ identify(userId?: string, traits?: JsonMap | Record<string, unknown>): Promise<void>;
422
+ page(category?: string, name?: string, properties?: JsonMap | Record<string, unknown>): void;
423
+ readonly client: AnalyticsClientInterface;
412
424
  };
413
425
  //#endregion
414
426
  export { AnalyticsClientConfig, AnalyticsClientInterface, DefaultProperties, EventName, Events, JsonList, JsonMap, JsonValue, OptionalIfUndefined, configureAnalyticsClient };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/events.ts","../src/types.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/events.ts","../src/types.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,43 +2,55 @@
2
2
  function AnalyticsClient(config) {
3
3
  const { client: analyticsClient, defaultProperties = {}, defaultTraits = {} } = config;
4
4
  return {
5
- async track(event, ...[properties]) {
6
- return analyticsClient.track(event, {
5
+ track(event, ...[properties]) {
6
+ analyticsClient.track(event, {
7
7
  ...properties,
8
8
  ...defaultProperties
9
9
  });
10
10
  },
11
- async untypedTrack(event, properties) {
11
+ untypedTrack(event, properties) {
12
12
  if (event.match(/^[a-zA-Z0-9\s][a-zA-Z0-9\s]*$/)) throw new Error("Event must be snake_case");
13
- return analyticsClient.track(event, {
13
+ analyticsClient.track(event, {
14
14
  ...properties,
15
15
  ...defaultProperties
16
16
  });
17
17
  },
18
- async screen(name, properties) {
19
- return analyticsClient.screen(name, {
18
+ screen(name, properties) {
19
+ analyticsClient.track("screen_view", {
20
+ screen_name: name,
20
21
  ...properties,
21
22
  ...defaultProperties
22
23
  });
23
24
  },
24
25
  group(groupId, traits) {
25
- return analyticsClient.group(groupId, {
26
- ...traits,
27
- ...defaultTraits
26
+ if (Object.keys(traits).length === 0) {
27
+ console.warn("Calling group analytics without traits");
28
+ return;
29
+ }
30
+ analyticsClient.setGroup("company", groupId);
31
+ const group = analyticsClient.getGroup("company", groupId);
32
+ if (group) Object.entries(traits).forEach(([key, value]) => {
33
+ group.set(key, JSON.stringify(value));
28
34
  });
29
35
  },
30
36
  async identify(userId, traits) {
31
- return await analyticsClient.identify(userId, {
37
+ if (userId) await analyticsClient.identify(userId);
38
+ const allTraits = {
32
39
  ...traits,
33
40
  ...defaultTraits
34
- });
41
+ };
42
+ if (Object.keys(allTraits).length > 0) {
43
+ const people = analyticsClient.getPeople();
44
+ if (people) people.set(allTraits);
45
+ }
35
46
  },
36
47
  page(category, name, properties) {
37
- if (typeof analyticsClient.page === "function") return analyticsClient.page(category, name, {
48
+ analyticsClient.track("page_view", {
49
+ category,
50
+ name,
38
51
  ...properties,
39
52
  ...defaultProperties
40
53
  });
41
- return Promise.resolve();
42
54
  },
43
55
  get client() {
44
56
  return analyticsClient;
@@ -48,12 +60,8 @@ function AnalyticsClient(config) {
48
60
 
49
61
  //#endregion
50
62
  //#region src/index.ts
51
- function configureAnalyticsClient({ client, defaultProperties, defaultTraits }) {
52
- return AnalyticsClient({
53
- client,
54
- defaultProperties,
55
- defaultTraits
56
- });
63
+ function configureAnalyticsClient(options) {
64
+ return AnalyticsClient(options);
57
65
  }
58
66
 
59
67
  //#endregion
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/client.ts","../src/index.ts"],"sourcesContent":["import { AnalyticsClientConfig, AnalyticsClientInterface, Events, JsonMap } from './types';\n\nexport function AnalyticsClient<T extends AnalyticsClientInterface>(\n config: AnalyticsClientConfig<T>\n) {\n const { client: analyticsClient, defaultProperties = {}, defaultTraits = {} } = config;\n\n return {\n async track<K extends keyof Events>(\n event: K,\n ...[properties]: Events[K] extends undefined ? [] : [Events[K]]\n ) {\n return analyticsClient.track(event, { ...properties, ...defaultProperties });\n },\n\n async untypedTrack(event: string, properties?: JsonMap | Record<string, unknown>) {\n if (event.match(/^[a-zA-Z0-9\\s][a-zA-Z0-9\\s]*$/)) {\n throw new Error('Event must be snake_case');\n }\n return analyticsClient.track(event as any, {\n ...properties,\n ...defaultProperties,\n });\n },\n\n async screen(name: string, properties?: JsonMap | Record<string, unknown>) {\n return analyticsClient.screen(name, { ...properties, ...defaultProperties });\n },\n\n group(groupId: string, traits?: JsonMap | Record<string, unknown>) {\n return analyticsClient.group(groupId, { ...traits, ...defaultTraits });\n },\n\n async identify(userId?: string, traits?: JsonMap | Record<string, unknown>) {\n return await analyticsClient.identify(userId, {\n ...traits,\n ...defaultTraits,\n });\n },\n\n page(category?: string, name?: string, properties?: JsonMap | Record<string, unknown>) {\n if (typeof analyticsClient.page === 'function') {\n return analyticsClient.page(category, name, {\n ...properties,\n ...defaultProperties,\n });\n }\n return Promise.resolve();\n },\n\n get client() {\n return analyticsClient;\n },\n };\n}\n","import { AnalyticsClient } from './client';\nimport { AnalyticsClientInterface, DefaultProperties, JsonMap } from './types';\n\nexport * from './types';\n\nexport function configureAnalyticsClient<T extends AnalyticsClientInterface>({\n client,\n defaultProperties,\n defaultTraits,\n}: {\n client: T;\n defaultProperties: DefaultProperties;\n defaultTraits?: JsonMap;\n}) {\n return AnalyticsClient<T>({ client, defaultProperties, defaultTraits });\n}\n"],"mappings":";AAEA,SAAgB,gBACd,QACA;CACA,MAAM,EAAE,QAAQ,iBAAiB,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,KAAK;AAEhF,QAAO;EACL,MAAM,MACJ,OACA,GAAG,CAAC,aACJ;AACA,UAAO,gBAAgB,MAAM,OAAO;IAAE,GAAG;IAAY,GAAG;IAAmB,CAAC;;EAG9E,MAAM,aAAa,OAAe,YAAgD;AAChF,OAAI,MAAM,MAAM,gCAAgC,CAC9C,OAAM,IAAI,MAAM,2BAA2B;AAE7C,UAAO,gBAAgB,MAAM,OAAc;IACzC,GAAG;IACH,GAAG;IACJ,CAAC;;EAGJ,MAAM,OAAO,MAAc,YAAgD;AACzE,UAAO,gBAAgB,OAAO,MAAM;IAAE,GAAG;IAAY,GAAG;IAAmB,CAAC;;EAG9E,MAAM,SAAiB,QAA4C;AACjE,UAAO,gBAAgB,MAAM,SAAS;IAAE,GAAG;IAAQ,GAAG;IAAe,CAAC;;EAGxE,MAAM,SAAS,QAAiB,QAA4C;AAC1E,UAAO,MAAM,gBAAgB,SAAS,QAAQ;IAC5C,GAAG;IACH,GAAG;IACJ,CAAC;;EAGJ,KAAK,UAAmB,MAAe,YAAgD;AACrF,OAAI,OAAO,gBAAgB,SAAS,WAClC,QAAO,gBAAgB,KAAK,UAAU,MAAM;IAC1C,GAAG;IACH,GAAG;IACJ,CAAC;AAEJ,UAAO,QAAQ,SAAS;;EAG1B,IAAI,SAAS;AACX,UAAO;;EAEV;;;;;AChDH,SAAgB,yBAA6D,EAC3E,QACA,mBACA,iBAKC;AACD,QAAO,gBAAmB;EAAE;EAAQ;EAAmB;EAAe,CAAC"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/client.ts","../src/index.ts"],"sourcesContent":["import { AnalyticsClientConfig, Events, JsonMap } from './types';\n\nexport function AnalyticsClient(config: AnalyticsClientConfig) {\n const { client: analyticsClient, defaultProperties = {}, defaultTraits = {} } = config;\n\n return {\n track<K extends keyof Events>(\n event: K,\n ...[properties]: Events[K] extends undefined ? [] : [Events[K]]\n ) {\n analyticsClient.track(event, { ...properties, ...defaultProperties });\n },\n\n untypedTrack(event: string, properties?: JsonMap | Record<string, unknown>) {\n if (event.match(/^[a-zA-Z0-9\\s][a-zA-Z0-9\\s]*$/)) {\n throw new Error('Event must be snake_case');\n }\n analyticsClient.track(event as any, {\n ...properties,\n ...defaultProperties,\n });\n },\n\n screen(name: string, properties?: JsonMap | Record<string, unknown>) {\n analyticsClient.track('screen_view', {\n screen_name: name,\n ...properties,\n ...defaultProperties,\n });\n },\n\n group(groupId: string, traits: JsonMap | Record<string, unknown>) {\n if (Object.keys(traits).length === 0) {\n // eslint-disable-next-line no-console\n console.warn('Calling group analytics without traits');\n return;\n }\n\n analyticsClient.setGroup('company', groupId);\n const group = analyticsClient.getGroup('company', groupId);\n if (group) {\n Object.entries(traits).forEach(([key, value]) => {\n group.set(key, JSON.stringify(value));\n });\n }\n },\n\n async identify(userId?: string, traits?: JsonMap | Record<string, unknown>) {\n if (userId) {\n await analyticsClient.identify(userId);\n }\n\n const allTraits = { ...traits, ...defaultTraits };\n if (Object.keys(allTraits).length > 0) {\n const people = analyticsClient.getPeople();\n if (people) {\n people.set(allTraits);\n }\n }\n },\n\n page(category?: string, name?: string, properties?: JsonMap | Record<string, unknown>) {\n analyticsClient.track('page_view', {\n category,\n name,\n ...properties,\n ...defaultProperties,\n });\n },\n\n get client() {\n return analyticsClient;\n },\n };\n}\n","import { AnalyticsClient } from './client';\nimport { type AnalyticsClientConfig } from './types';\n\nexport * from './types';\n\nexport function configureAnalyticsClient(options: AnalyticsClientConfig) {\n return AnalyticsClient(options);\n}\n"],"mappings":";AAEA,SAAgB,gBAAgB,QAA+B;CAC7D,MAAM,EAAE,QAAQ,iBAAiB,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,KAAK;AAEhF,QAAO;EACL,MACE,OACA,GAAG,CAAC,aACJ;AACA,mBAAgB,MAAM,OAAO;IAAE,GAAG;IAAY,GAAG;IAAmB,CAAC;;EAGvE,aAAa,OAAe,YAAgD;AAC1E,OAAI,MAAM,MAAM,gCAAgC,CAC9C,OAAM,IAAI,MAAM,2BAA2B;AAE7C,mBAAgB,MAAM,OAAc;IAClC,GAAG;IACH,GAAG;IACJ,CAAC;;EAGJ,OAAO,MAAc,YAAgD;AACnE,mBAAgB,MAAM,eAAe;IACnC,aAAa;IACb,GAAG;IACH,GAAG;IACJ,CAAC;;EAGJ,MAAM,SAAiB,QAA2C;AAChE,OAAI,OAAO,KAAK,OAAO,CAAC,WAAW,GAAG;AAEpC,YAAQ,KAAK,yCAAyC;AACtD;;AAGF,mBAAgB,SAAS,WAAW,QAAQ;GAC5C,MAAM,QAAQ,gBAAgB,SAAS,WAAW,QAAQ;AAC1D,OAAI,MACF,QAAO,QAAQ,OAAO,CAAC,SAAS,CAAC,KAAK,WAAW;AAC/C,UAAM,IAAI,KAAK,KAAK,UAAU,MAAM,CAAC;KACrC;;EAIN,MAAM,SAAS,QAAiB,QAA4C;AAC1E,OAAI,OACF,OAAM,gBAAgB,SAAS,OAAO;GAGxC,MAAM,YAAY;IAAE,GAAG;IAAQ,GAAG;IAAe;AACjD,OAAI,OAAO,KAAK,UAAU,CAAC,SAAS,GAAG;IACrC,MAAM,SAAS,gBAAgB,WAAW;AAC1C,QAAI,OACF,QAAO,IAAI,UAAU;;;EAK3B,KAAK,UAAmB,MAAe,YAAgD;AACrF,mBAAgB,MAAM,aAAa;IACjC;IACA;IACA,GAAG;IACH,GAAG;IACJ,CAAC;;EAGJ,IAAI,SAAS;AACX,UAAO;;EAEV;;;;;ACpEH,SAAgB,yBAAyB,SAAgC;AACvE,QAAO,gBAAgB,QAAQ"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@leather.io/analytics",
3
3
  "author": "Leather.io contact@leather.io",
4
- "description": "Analytics package for Leather using Segment",
5
- "version": "3.16.2",
4
+ "description": "Analytics package for Leather using Mixpanel",
5
+ "version": "3.18.0",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/leather.io/mono/tree/dev/packages/analytics",
8
8
  "repository": {
@@ -25,7 +25,7 @@
25
25
  "tsdown": "0.16.5",
26
26
  "typescript": "5.9.3",
27
27
  "vitest": "2.1.9",
28
- "@leather.io/models": "0.51.0",
28
+ "@leather.io/models": "0.52.0",
29
29
  "@leather.io/prettier-config": "0.9.0",
30
30
  "@leather.io/test-config": "0.1.2"
31
31
  },
@@ -44,7 +44,7 @@
44
44
  "types": "./dist/index.d.ts",
45
45
  "scripts": {
46
46
  "build": "tsdown",
47
- "build:watch": "tsdown --watch",
47
+ "build:watch": "tsdown --no-clean --watch",
48
48
  "format": "prettier . --write --ignore-path ../../.prettierignore",
49
49
  "format:check": "prettier . --check --ignore-path ../../.prettierignore",
50
50
  "lint": "eslint --cache --max-warnings 0",