@meetelise/chat 1.1.0 → 1.1.1

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.
@@ -1,4 +1,5 @@
1
1
  {
2
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
2
3
  "editor.formatOnSave": false,
3
4
  "[typescript]": {
4
5
  "editor.formatOnSave": true
@@ -53,6 +53,7 @@ export default class MEChat {
53
53
  private building;
54
54
  private theme;
55
55
  private chatId;
56
+ private analytics;
56
57
  private constructor();
57
58
  }
58
59
  export interface Options {
@@ -4,7 +4,7 @@ import { getChatID, createChatID } from "./chatID";
4
4
  import createConversation from "./createConversation";
5
5
  import installTalkJSStyles from "./installTalkJSStyles";
6
6
  import resolveTheme from "./resolveTheme";
7
- import { ping } from "./analytics";
7
+ import Analytics from "./analytics";
8
8
  /**
9
9
  * The interface to MeetElise chat.
10
10
  *
@@ -22,7 +22,8 @@ export default class MEChat {
22
22
  this.orgSlug = organization;
23
23
  this.buildingSlug = building;
24
24
  this.chatId = getChatID(organization, building);
25
- ping("load", this.chatId);
25
+ this.analytics = new Analytics(organization, building, this.chatId);
26
+ this.analytics.ping("load");
26
27
  this.theme = theme;
27
28
  this.building = fetchBuildingInfo(organization, building);
28
29
  this.popup = Promise.all([this.building, MEChat.session]).then(async ([building, session]) => {
@@ -30,7 +31,7 @@ export default class MEChat {
30
31
  installTalkJSStyles(resolvedTheme);
31
32
  const p = session.createPopup(createConversation(session, building, resolvedTheme, this.chatId));
32
33
  p.on("open", () => {
33
- ping("open", this.chatId);
34
+ this.analytics.ping("open");
34
35
  });
35
36
  if (building.conversationMaintenanceMode) {
36
37
  return new Promise(() => {
@@ -80,6 +81,7 @@ export default class MEChat {
80
81
  restartConversation() {
81
82
  Promise.all([MEChat.session, this.building, this.popup]).then(([session, building, popup]) => {
82
83
  this.chatId = createChatID(this.orgSlug, this.buildingSlug);
84
+ this.analytics.chatId = this.chatId;
83
85
  popup.select(createConversation(session, building, resolveTheme(building, this.theme), this.chatId));
84
86
  });
85
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MEChat.js","sourceRoot":"","sources":["../../src/MEChat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MEChat.js","sourceRoot":"","sources":["../../src/MEChat.ts"],"names":[],"mappings":"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"}
@@ -1 +1,13 @@
1
- export declare function ping(type: string, chatId: string): void;
1
+ /**
2
+ * A connection to the MeetElise API to send analytics events.
3
+ */
4
+ export default class Analytics {
5
+ private org;
6
+ private building;
7
+ chatId: string;
8
+ constructor(org: string, building: string, chatId: string);
9
+ /**
10
+ * Send an event. Takes one argument, the event type name.
11
+ */
12
+ ping(eventType: string): void;
13
+ }
@@ -1,12 +1,29 @@
1
- export function ping(type, chatId) {
2
- fetch("https://api.meetelise.com/api/pub/chat-stats", {
3
- method: "POST",
4
- credentials: "omit",
5
- body: JSON.stringify({ eventType: type, chatId, url: location.href }),
6
- keepalive: true,
7
- headers: {
8
- "content-type": "application/json; charset=UTF-8",
9
- },
10
- });
1
+ /**
2
+ * A connection to the MeetElise API to send analytics events.
3
+ */
4
+ export default class Analytics {
5
+ constructor(org, building, chatId) {
6
+ this.org = org;
7
+ this.building = building;
8
+ this.chatId = chatId;
9
+ }
10
+ /**
11
+ * Send an event. Takes one argument, the event type name.
12
+ */
13
+ ping(eventType) {
14
+ fetch("https://api.meetelise.com/api/pub/chat-stats", {
15
+ method: "POST",
16
+ credentials: "omit",
17
+ keepalive: true,
18
+ headers: { "content-type": "application/json; charset=UTF-8" },
19
+ body: JSON.stringify({
20
+ eventType,
21
+ chatId: this.chatId,
22
+ url: location.href,
23
+ org: this.org,
24
+ building: this.building,
25
+ }),
26
+ });
27
+ }
11
28
  }
12
29
  //# sourceMappingURL=analytics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/analytics.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,IAAI,CAAC,IAAY,EAAE,MAAc;IAC/C,KAAK,CAAC,8CAA8C,EAAE;QACpD,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrE,SAAS,EAAE,IAAI;QACf,OAAO,EAAE;YACP,cAAc,EAAE,iCAAiC;SAClD;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/analytics.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAK5B,YAAY,GAAW,EAAE,QAAgB,EAAE,MAAc;QACvD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,SAAiB;QACpB,KAAK,CAAC,8CAA8C,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,MAAM;YACnB,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE;YAC9D,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS;gBACT,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,QAAQ,CAAC,IAAI;gBAClB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC;SACH,CAAC,CAAC;IACL,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meetelise/chat",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/MEChat.ts CHANGED
@@ -4,7 +4,7 @@ import { getChatID, createChatID } from "./chatID";
4
4
  import createConversation from "./createConversation";
5
5
  import installTalkJSStyles from "./installTalkJSStyles";
6
6
  import resolveTheme, { Theme } from "./resolveTheme";
7
- import { ping } from "./analytics";
7
+ import Analytics from "./analytics";
8
8
 
9
9
  /**
10
10
  * The interface to MeetElise chat.
@@ -59,6 +59,7 @@ export default class MEChat {
59
59
  Promise.all([MEChat.session, this.building, this.popup]).then(
60
60
  ([session, building, popup]) => {
61
61
  this.chatId = createChatID(this.orgSlug, this.buildingSlug);
62
+ this.analytics.chatId = this.chatId;
62
63
  popup.select(
63
64
  createConversation(
64
65
  session,
@@ -124,12 +125,15 @@ export default class MEChat {
124
125
  private building: Promise<Building>;
125
126
  private theme: Partial<Theme>;
126
127
  private chatId: string;
128
+ private analytics: Analytics;
127
129
 
128
130
  private constructor({ organization, building, theme = {} }: Options) {
129
131
  this.orgSlug = organization;
130
132
  this.buildingSlug = building;
131
133
  this.chatId = getChatID(organization, building);
132
- ping("load", this.chatId);
134
+ this.analytics = new Analytics(organization, building, this.chatId);
135
+ this.analytics.ping("load");
136
+
133
137
  this.theme = theme;
134
138
  this.building = fetchBuildingInfo(organization, building);
135
139
  this.popup = Promise.all([this.building, MEChat.session]).then(
@@ -140,7 +144,7 @@ export default class MEChat {
140
144
  createConversation(session, building, resolvedTheme, this.chatId)
141
145
  );
142
146
  p.on("open", () => {
143
- ping("open", this.chatId);
147
+ this.analytics.ping("open");
144
148
  });
145
149
  if (building.conversationMaintenanceMode) {
146
150
  return new Promise(() => {
package/src/analytics.ts CHANGED
@@ -1,11 +1,33 @@
1
- export function ping(type: string, chatId: string): void {
2
- fetch("https://api.meetelise.com/api/pub/chat-stats", {
3
- method: "POST",
4
- credentials: "omit",
5
- body: JSON.stringify({ eventType: type, chatId, url: location.href }),
6
- keepalive: true,
7
- headers: {
8
- "content-type": "application/json; charset=UTF-8",
9
- },
10
- });
1
+ /**
2
+ * A connection to the MeetElise API to send analytics events.
3
+ */
4
+ export default class Analytics {
5
+ private org: string;
6
+ private building: string;
7
+ public chatId: string;
8
+
9
+ constructor(org: string, building: string, chatId: string) {
10
+ this.org = org;
11
+ this.building = building;
12
+ this.chatId = chatId;
13
+ }
14
+
15
+ /**
16
+ * Send an event. Takes one argument, the event type name.
17
+ */
18
+ ping(eventType: string): void {
19
+ fetch("https://api.meetelise.com/api/pub/chat-stats", {
20
+ method: "POST",
21
+ credentials: "omit", // Necessary for successful CORS
22
+ keepalive: true, // Analytics should not abort after browser close
23
+ headers: { "content-type": "application/json; charset=UTF-8" },
24
+ body: JSON.stringify({
25
+ eventType,
26
+ chatId: this.chatId,
27
+ url: location.href,
28
+ org: this.org,
29
+ building: this.building,
30
+ }),
31
+ });
32
+ }
11
33
  }