@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.
- package/CHANGELOG.md +16 -0
- package/dist/cjs/api.js +2 -0
- package/dist/cjs/api.js.map +1 -0
- package/dist/cjs/clients/feed/feed.js +2 -0
- package/dist/cjs/clients/feed/feed.js.map +1 -0
- package/dist/cjs/clients/feed/index.js +2 -0
- package/dist/cjs/clients/feed/index.js.map +1 -0
- package/dist/cjs/clients/feed/socket-manager.js +2 -0
- package/dist/cjs/clients/feed/socket-manager.js.map +1 -0
- package/dist/cjs/clients/feed/store.js +2 -0
- package/dist/cjs/clients/feed/store.js.map +1 -0
- package/dist/cjs/clients/feed/utils.js +2 -0
- package/dist/cjs/clients/feed/utils.js.map +1 -0
- package/dist/cjs/clients/guide/client.js +2 -0
- package/dist/cjs/clients/guide/client.js.map +1 -0
- package/dist/cjs/clients/messages/index.js +2 -0
- package/dist/cjs/clients/messages/index.js.map +1 -0
- package/dist/cjs/clients/ms-teams/index.js +2 -0
- package/dist/cjs/clients/ms-teams/index.js.map +1 -0
- package/dist/cjs/clients/objects/constants.js +2 -0
- package/dist/cjs/clients/objects/constants.js.map +1 -0
- package/dist/cjs/clients/objects/index.js +2 -0
- package/dist/cjs/clients/objects/index.js.map +1 -0
- package/dist/cjs/clients/preferences/index.js +2 -0
- package/dist/cjs/clients/preferences/index.js.map +1 -0
- package/dist/cjs/clients/slack/index.js +2 -0
- package/dist/cjs/clients/slack/index.js.map +1 -0
- package/dist/cjs/clients/users/index.js +2 -0
- package/dist/cjs/clients/users/index.js.map +1 -0
- package/dist/cjs/helpers.js +2 -0
- package/dist/cjs/helpers.js.map +1 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/knock.js +2 -0
- package/dist/cjs/knock.js.map +1 -0
- package/dist/cjs/networkStatus.js +2 -0
- package/dist/cjs/networkStatus.js.map +1 -0
- package/dist/esm/api.mjs +58 -0
- package/dist/esm/api.mjs.map +1 -0
- package/dist/esm/clients/feed/feed.mjs +422 -0
- package/dist/esm/clients/feed/feed.mjs.map +1 -0
- package/dist/esm/clients/feed/index.mjs +47 -0
- package/dist/esm/clients/feed/index.mjs.map +1 -0
- package/dist/esm/clients/feed/socket-manager.mjs +81 -0
- package/dist/esm/clients/feed/socket-manager.mjs.map +1 -0
- package/dist/esm/clients/feed/store.mjs +104 -0
- package/dist/esm/clients/feed/store.mjs.map +1 -0
- package/dist/esm/clients/feed/utils.mjs +35 -0
- package/dist/esm/clients/feed/utils.mjs.map +1 -0
- package/dist/esm/clients/guide/client.mjs +284 -0
- package/dist/esm/clients/guide/client.mjs.map +1 -0
- package/dist/esm/clients/messages/index.mjs +64 -0
- package/dist/esm/clients/messages/index.mjs.map +1 -0
- package/dist/esm/clients/ms-teams/index.mjs +91 -0
- package/dist/esm/clients/ms-teams/index.mjs.map +1 -0
- package/dist/esm/clients/objects/constants.mjs +5 -0
- package/dist/esm/clients/objects/constants.mjs.map +1 -0
- package/dist/esm/clients/objects/index.mjs +42 -0
- package/dist/esm/clients/objects/index.mjs.map +1 -0
- package/dist/esm/clients/preferences/index.mjs +128 -0
- package/dist/esm/clients/preferences/index.mjs.map +1 -0
- package/dist/esm/clients/slack/index.mjs +72 -0
- package/dist/esm/clients/slack/index.mjs.map +1 -0
- package/dist/esm/clients/users/index.mjs +99 -0
- package/dist/esm/clients/users/index.mjs.map +1 -0
- package/dist/esm/helpers.mjs +8 -0
- package/dist/esm/helpers.mjs.map +1 -0
- package/dist/esm/index.mjs +16 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/knock.mjs +108 -0
- package/dist/esm/knock.mjs.map +1 -0
- package/dist/esm/networkStatus.mjs +15 -0
- package/dist/esm/networkStatus.mjs.map +1 -0
- package/dist/types/api.d.ts +25 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/clients/feed/feed.d.ts +75 -0
- package/dist/types/clients/feed/feed.d.ts.map +1 -0
- package/dist/types/clients/feed/index.d.ts +17 -0
- package/dist/types/clients/feed/index.d.ts.map +1 -0
- package/dist/types/clients/feed/interfaces.d.ts +99 -0
- package/dist/types/clients/feed/interfaces.d.ts.map +1 -0
- package/dist/types/clients/feed/socket-manager.d.ts +31 -0
- package/dist/types/clients/feed/socket-manager.d.ts.map +1 -0
- package/dist/types/clients/feed/store.d.ts +20 -0
- package/dist/types/clients/feed/store.d.ts.map +1 -0
- package/dist/types/clients/feed/types.d.ts +35 -0
- package/dist/types/clients/feed/types.d.ts.map +1 -0
- package/dist/types/clients/feed/utils.d.ts +20 -0
- package/dist/types/clients/feed/utils.d.ts.map +1 -0
- package/dist/types/clients/guide/client.d.ts +124 -0
- package/dist/types/clients/guide/client.d.ts.map +1 -0
- package/dist/types/clients/guide/index.d.ts +3 -0
- package/dist/types/clients/guide/index.d.ts.map +1 -0
- package/dist/types/clients/messages/index.d.ts +15 -0
- package/dist/types/clients/messages/index.d.ts.map +1 -0
- package/dist/types/clients/messages/interfaces.d.ts +46 -0
- package/dist/types/clients/messages/interfaces.d.ts.map +1 -0
- package/dist/types/clients/ms-teams/index.d.ts +14 -0
- package/dist/types/clients/ms-teams/index.d.ts.map +1 -0
- package/dist/types/clients/ms-teams/interfaces.d.ts +49 -0
- package/dist/types/clients/ms-teams/interfaces.d.ts.map +1 -0
- package/dist/types/clients/objects/constants.d.ts +2 -0
- package/dist/types/clients/objects/constants.d.ts.map +1 -0
- package/dist/types/clients/objects/index.d.ts +23 -0
- package/dist/types/clients/objects/index.d.ts.map +1 -0
- package/dist/types/clients/preferences/index.d.ts +46 -0
- package/dist/types/clients/preferences/index.d.ts.map +1 -0
- package/dist/types/clients/preferences/interfaces.d.ts +29 -0
- package/dist/types/clients/preferences/interfaces.d.ts.map +1 -0
- package/dist/types/clients/slack/index.d.ts +13 -0
- package/dist/types/clients/slack/index.d.ts.map +1 -0
- package/dist/types/clients/slack/interfaces.d.ts +29 -0
- package/dist/types/clients/slack/interfaces.d.ts.map +1 -0
- package/dist/types/clients/users/index.d.ts +22 -0
- package/dist/types/clients/users/index.d.ts.map +1 -0
- package/dist/types/clients/users/interfaces.d.ts +9 -0
- package/dist/types/clients/users/interfaces.d.ts.map +1 -0
- package/dist/types/helpers.d.ts +2 -0
- package/dist/types/helpers.d.ts.map +1 -0
- package/dist/types/index.d.ts +21 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/interfaces.d.ts +72 -0
- package/dist/types/interfaces.d.ts.map +1 -0
- package/dist/types/knock.d.ts +55 -0
- package/dist/types/knock.d.ts.map +1 -0
- package/dist/types/networkStatus.d.ts +8 -0
- package/dist/types/networkStatus.d.ts.map +1 -0
- package/package.json +2 -1
- package/src/interfaces.ts +6 -0
- 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
|
-
|
|
63
|
-
|
|
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
|
-
|
|
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;
|