@knocklabs/client 0.14.10 → 0.15.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.
Files changed (130) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/api.js +2 -0
  3. package/dist/cjs/api.js.map +1 -0
  4. package/dist/cjs/clients/feed/feed.js +2 -0
  5. package/dist/cjs/clients/feed/feed.js.map +1 -0
  6. package/dist/cjs/clients/feed/index.js +2 -0
  7. package/dist/cjs/clients/feed/index.js.map +1 -0
  8. package/dist/cjs/clients/feed/socket-manager.js +2 -0
  9. package/dist/cjs/clients/feed/socket-manager.js.map +1 -0
  10. package/dist/cjs/clients/feed/store.js +2 -0
  11. package/dist/cjs/clients/feed/store.js.map +1 -0
  12. package/dist/cjs/clients/feed/utils.js +2 -0
  13. package/dist/cjs/clients/feed/utils.js.map +1 -0
  14. package/dist/cjs/clients/guide/client.js +2 -0
  15. package/dist/cjs/clients/guide/client.js.map +1 -0
  16. package/dist/cjs/clients/messages/index.js +2 -0
  17. package/dist/cjs/clients/messages/index.js.map +1 -0
  18. package/dist/cjs/clients/ms-teams/index.js +2 -0
  19. package/dist/cjs/clients/ms-teams/index.js.map +1 -0
  20. package/dist/cjs/clients/objects/constants.js +2 -0
  21. package/dist/cjs/clients/objects/constants.js.map +1 -0
  22. package/dist/cjs/clients/objects/index.js +2 -0
  23. package/dist/cjs/clients/objects/index.js.map +1 -0
  24. package/dist/cjs/clients/preferences/index.js +2 -0
  25. package/dist/cjs/clients/preferences/index.js.map +1 -0
  26. package/dist/cjs/clients/slack/index.js +2 -0
  27. package/dist/cjs/clients/slack/index.js.map +1 -0
  28. package/dist/cjs/clients/users/index.js +2 -0
  29. package/dist/cjs/clients/users/index.js.map +1 -0
  30. package/dist/cjs/helpers.js +2 -0
  31. package/dist/cjs/helpers.js.map +1 -0
  32. package/dist/cjs/index.js +2 -0
  33. package/dist/cjs/index.js.map +1 -0
  34. package/dist/cjs/knock.js +2 -0
  35. package/dist/cjs/knock.js.map +1 -0
  36. package/dist/cjs/networkStatus.js +2 -0
  37. package/dist/cjs/networkStatus.js.map +1 -0
  38. package/dist/esm/api.mjs +58 -0
  39. package/dist/esm/api.mjs.map +1 -0
  40. package/dist/esm/clients/feed/feed.mjs +422 -0
  41. package/dist/esm/clients/feed/feed.mjs.map +1 -0
  42. package/dist/esm/clients/feed/index.mjs +47 -0
  43. package/dist/esm/clients/feed/index.mjs.map +1 -0
  44. package/dist/esm/clients/feed/socket-manager.mjs +81 -0
  45. package/dist/esm/clients/feed/socket-manager.mjs.map +1 -0
  46. package/dist/esm/clients/feed/store.mjs +104 -0
  47. package/dist/esm/clients/feed/store.mjs.map +1 -0
  48. package/dist/esm/clients/feed/utils.mjs +35 -0
  49. package/dist/esm/clients/feed/utils.mjs.map +1 -0
  50. package/dist/esm/clients/guide/client.mjs +284 -0
  51. package/dist/esm/clients/guide/client.mjs.map +1 -0
  52. package/dist/esm/clients/messages/index.mjs +64 -0
  53. package/dist/esm/clients/messages/index.mjs.map +1 -0
  54. package/dist/esm/clients/ms-teams/index.mjs +91 -0
  55. package/dist/esm/clients/ms-teams/index.mjs.map +1 -0
  56. package/dist/esm/clients/objects/constants.mjs +5 -0
  57. package/dist/esm/clients/objects/constants.mjs.map +1 -0
  58. package/dist/esm/clients/objects/index.mjs +42 -0
  59. package/dist/esm/clients/objects/index.mjs.map +1 -0
  60. package/dist/esm/clients/preferences/index.mjs +128 -0
  61. package/dist/esm/clients/preferences/index.mjs.map +1 -0
  62. package/dist/esm/clients/slack/index.mjs +72 -0
  63. package/dist/esm/clients/slack/index.mjs.map +1 -0
  64. package/dist/esm/clients/users/index.mjs +99 -0
  65. package/dist/esm/clients/users/index.mjs.map +1 -0
  66. package/dist/esm/helpers.mjs +8 -0
  67. package/dist/esm/helpers.mjs.map +1 -0
  68. package/dist/esm/index.mjs +16 -0
  69. package/dist/esm/index.mjs.map +1 -0
  70. package/dist/esm/knock.mjs +108 -0
  71. package/dist/esm/knock.mjs.map +1 -0
  72. package/dist/esm/networkStatus.mjs +15 -0
  73. package/dist/esm/networkStatus.mjs.map +1 -0
  74. package/dist/types/api.d.ts +25 -0
  75. package/dist/types/api.d.ts.map +1 -0
  76. package/dist/types/clients/feed/feed.d.ts +75 -0
  77. package/dist/types/clients/feed/feed.d.ts.map +1 -0
  78. package/dist/types/clients/feed/index.d.ts +17 -0
  79. package/dist/types/clients/feed/index.d.ts.map +1 -0
  80. package/dist/types/clients/feed/interfaces.d.ts +99 -0
  81. package/dist/types/clients/feed/interfaces.d.ts.map +1 -0
  82. package/dist/types/clients/feed/socket-manager.d.ts +31 -0
  83. package/dist/types/clients/feed/socket-manager.d.ts.map +1 -0
  84. package/dist/types/clients/feed/store.d.ts +20 -0
  85. package/dist/types/clients/feed/store.d.ts.map +1 -0
  86. package/dist/types/clients/feed/types.d.ts +35 -0
  87. package/dist/types/clients/feed/types.d.ts.map +1 -0
  88. package/dist/types/clients/feed/utils.d.ts +20 -0
  89. package/dist/types/clients/feed/utils.d.ts.map +1 -0
  90. package/dist/types/clients/guide/client.d.ts +124 -0
  91. package/dist/types/clients/guide/client.d.ts.map +1 -0
  92. package/dist/types/clients/guide/index.d.ts +3 -0
  93. package/dist/types/clients/guide/index.d.ts.map +1 -0
  94. package/dist/types/clients/messages/index.d.ts +15 -0
  95. package/dist/types/clients/messages/index.d.ts.map +1 -0
  96. package/dist/types/clients/messages/interfaces.d.ts +46 -0
  97. package/dist/types/clients/messages/interfaces.d.ts.map +1 -0
  98. package/dist/types/clients/ms-teams/index.d.ts +14 -0
  99. package/dist/types/clients/ms-teams/index.d.ts.map +1 -0
  100. package/dist/types/clients/ms-teams/interfaces.d.ts +49 -0
  101. package/dist/types/clients/ms-teams/interfaces.d.ts.map +1 -0
  102. package/dist/types/clients/objects/constants.d.ts +2 -0
  103. package/dist/types/clients/objects/constants.d.ts.map +1 -0
  104. package/dist/types/clients/objects/index.d.ts +23 -0
  105. package/dist/types/clients/objects/index.d.ts.map +1 -0
  106. package/dist/types/clients/preferences/index.d.ts +46 -0
  107. package/dist/types/clients/preferences/index.d.ts.map +1 -0
  108. package/dist/types/clients/preferences/interfaces.d.ts +29 -0
  109. package/dist/types/clients/preferences/interfaces.d.ts.map +1 -0
  110. package/dist/types/clients/slack/index.d.ts +13 -0
  111. package/dist/types/clients/slack/index.d.ts.map +1 -0
  112. package/dist/types/clients/slack/interfaces.d.ts +29 -0
  113. package/dist/types/clients/slack/interfaces.d.ts.map +1 -0
  114. package/dist/types/clients/users/index.d.ts +22 -0
  115. package/dist/types/clients/users/index.d.ts.map +1 -0
  116. package/dist/types/clients/users/interfaces.d.ts +9 -0
  117. package/dist/types/clients/users/interfaces.d.ts.map +1 -0
  118. package/dist/types/helpers.d.ts +2 -0
  119. package/dist/types/helpers.d.ts.map +1 -0
  120. package/dist/types/index.d.ts +21 -0
  121. package/dist/types/index.d.ts.map +1 -0
  122. package/dist/types/interfaces.d.ts +72 -0
  123. package/dist/types/interfaces.d.ts.map +1 -0
  124. package/dist/types/knock.d.ts +55 -0
  125. package/dist/types/knock.d.ts.map +1 -0
  126. package/dist/types/networkStatus.d.ts +8 -0
  127. package/dist/types/networkStatus.d.ts.map +1 -0
  128. package/package.json +2 -1
  129. package/src/interfaces.ts +6 -0
  130. package/src/knock.ts +52 -5
package/src/knock.ts CHANGED
@@ -12,6 +12,8 @@ import {
12
12
  AuthenticateOptions,
13
13
  KnockOptions,
14
14
  LogLevel,
15
+ UserId,
16
+ UserIdOrUserWithProperties,
15
17
  UserTokenExpiringCallback,
16
18
  } from "./interfaces";
17
19
 
@@ -58,17 +60,32 @@ class Knock {
58
60
  return this.apiClient;
59
61
  }
60
62
 
61
- /*
62
- Authenticates the current user. In non-sandbox environments
63
- the userToken must be specified.
64
- */
63
+ /**
64
+ * @deprecated Passing `userId` as a `string` is deprecated and will be removed in a future version.
65
+ * Please pass a `user` object instead containing an `id` value.
66
+ * example:
67
+ * ```ts
68
+ * knock.authenticate({ id: "user_123" });
69
+ * ```
70
+ */
71
+ authenticate(
72
+ userIdOrUserWithProperties: UserId,
73
+ userToken?: Knock["userToken"],
74
+ options?: AuthenticateOptions,
75
+ ): never;
76
+ authenticate(
77
+ userIdOrUserWithProperties: UserIdOrUserWithProperties,
78
+ userToken?: Knock["userToken"],
79
+ options?: AuthenticateOptions,
80
+ ): void;
65
81
  authenticate(
66
- userId: Knock["userId"],
82
+ userIdOrUserWithProperties: UserIdOrUserWithProperties,
67
83
  userToken?: Knock["userToken"],
68
84
  options?: AuthenticateOptions,
69
85
  ) {
70
86
  let reinitializeApi = false;
71
87
  const currentApiClient = this.apiClient;
88
+ const userId = this.getUserId(userIdOrUserWithProperties);
72
89
 
73
90
  // If we've previously been initialized and the values have now changed, then we
74
91
  // need to reinitialize any stateful connections we have
@@ -103,6 +120,15 @@ class Knock {
103
120
  this.log("Reinitialized real-time connections");
104
121
  }
105
122
 
123
+ // Inline identify the user if we've been given an object with an id.
124
+ if (
125
+ typeof userIdOrUserWithProperties === "object" &&
126
+ userIdOrUserWithProperties?.id
127
+ ) {
128
+ const { id, ...properties } = userIdOrUserWithProperties;
129
+ this.user.identify(properties);
130
+ }
131
+
106
132
  return;
107
133
  }
108
134
 
@@ -177,6 +203,27 @@ class Knock {
177
203
  }, msInFuture);
178
204
  }
179
205
  }
206
+
207
+ /**
208
+ * Returns the user id from the given userIdOrUserWithProperties
209
+ * @param userIdOrUserWithProperties - The user id or user object
210
+ * @returns The user id
211
+ * @throws {Error} If the user object does not contain an `id` property
212
+ */
213
+ private getUserId(userIdOrUserWithProperties: UserIdOrUserWithProperties) {
214
+ if (
215
+ typeof userIdOrUserWithProperties === "string" ||
216
+ !userIdOrUserWithProperties
217
+ ) {
218
+ return userIdOrUserWithProperties;
219
+ }
220
+
221
+ if (userIdOrUserWithProperties?.id) {
222
+ return userIdOrUserWithProperties.id;
223
+ }
224
+
225
+ throw new Error("`user` object must contain an `id` property");
226
+ }
180
227
  }
181
228
 
182
229
  export default Knock;