@knocklabs/client 0.10.13 → 0.11.0-rc-1.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 +17 -0
- package/dist/cjs/api.js +1 -1
- package/dist/cjs/api.js.map +1 -1
- package/dist/cjs/clients/in-app-messages/channel-client.js +2 -0
- package/dist/cjs/clients/in-app-messages/channel-client.js.map +1 -0
- package/dist/cjs/clients/in-app-messages/message-client.js +2 -0
- package/dist/cjs/clients/in-app-messages/message-client.js.map +1 -0
- package/dist/cjs/clients/in-app-messages/socket-manager.js +2 -0
- package/dist/cjs/clients/in-app-messages/socket-manager.js.map +1 -0
- package/dist/cjs/clients/in-app-messages/store.js +2 -0
- package/dist/cjs/clients/in-app-messages/store.js.map +1 -0
- package/dist/cjs/clients/users/index.js +1 -1
- package/dist/cjs/clients/users/index.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/esm/api.mjs +14 -9
- package/dist/esm/api.mjs.map +1 -1
- package/dist/esm/clients/in-app-messages/channel-client.mjs +80 -0
- package/dist/esm/clients/in-app-messages/channel-client.mjs.map +1 -0
- package/dist/esm/clients/in-app-messages/message-client.mjs +157 -0
- package/dist/esm/clients/in-app-messages/message-client.mjs.map +1 -0
- package/dist/esm/clients/in-app-messages/socket-manager.mjs +83 -0
- package/dist/esm/clients/in-app-messages/socket-manager.mjs.map +1 -0
- package/dist/esm/clients/in-app-messages/store.mjs +11 -0
- package/dist/esm/clients/in-app-messages/store.mjs.map +1 -0
- package/dist/esm/clients/users/index.mjs +28 -20
- package/dist/esm/clients/users/index.mjs.map +1 -1
- package/dist/esm/index.mjs +11 -7
- package/dist/esm/index.mjs.map +1 -1
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/clients/in-app-messages/channel-client.d.ts +23 -0
- package/dist/types/clients/in-app-messages/channel-client.d.ts.map +1 -0
- package/dist/types/clients/in-app-messages/index.d.ts +4 -0
- package/dist/types/clients/in-app-messages/index.d.ts.map +1 -0
- package/dist/types/clients/in-app-messages/message-client.d.ts +52 -0
- package/dist/types/clients/in-app-messages/message-client.d.ts.map +1 -0
- package/dist/types/clients/in-app-messages/socket-manager.d.ts +27 -0
- package/dist/types/clients/in-app-messages/socket-manager.d.ts.map +1 -0
- package/dist/types/clients/in-app-messages/store.d.ts +6 -0
- package/dist/types/clients/in-app-messages/store.d.ts.map +1 -0
- package/dist/types/clients/in-app-messages/types.d.ts +52 -0
- package/dist/types/clients/in-app-messages/types.d.ts.map +1 -0
- package/dist/types/clients/preferences/interfaces.d.ts +1 -1
- package/dist/types/clients/preferences/interfaces.d.ts.map +1 -1
- package/dist/types/clients/users/index.d.ts +3 -1
- package/dist/types/clients/users/index.d.ts.map +1 -1
- package/dist/types/clients/users/interfaces.d.ts +8 -0
- package/dist/types/clients/users/interfaces.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +12 -10
- package/src/api.ts +9 -2
- package/src/clients/in-app-messages/channel-client.ts +129 -0
- package/src/clients/in-app-messages/index.ts +3 -0
- package/src/clients/in-app-messages/message-client.ts +275 -0
- package/src/clients/in-app-messages/socket-manager.ts +187 -0
- package/src/clients/in-app-messages/store.ts +15 -0
- package/src/clients/in-app-messages/types.ts +77 -0
- package/src/clients/preferences/interfaces.ts +1 -1
- package/src/clients/users/index.ts +19 -1
- package/src/clients/users/interfaces.ts +10 -0
- package/src/index.ts +1 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { GenericData, PageInfo, Tenant } from "@knocklabs/types";
|
|
2
|
+
|
|
3
|
+
import { NetworkStatus } from "../../networkStatus";
|
|
4
|
+
import { NotificationSource } from "../messages/interfaces";
|
|
5
|
+
|
|
6
|
+
export interface InAppMessage<
|
|
7
|
+
TContent extends GenericData = GenericData,
|
|
8
|
+
TData extends GenericData = GenericData,
|
|
9
|
+
TTenantProperties = GenericData,
|
|
10
|
+
> {
|
|
11
|
+
__cursor: string;
|
|
12
|
+
id: string;
|
|
13
|
+
message_type: string;
|
|
14
|
+
schema_variant: string;
|
|
15
|
+
schema_version: string;
|
|
16
|
+
content: TContent;
|
|
17
|
+
data: TData | null;
|
|
18
|
+
inserted_at: string;
|
|
19
|
+
updated_at: string;
|
|
20
|
+
seen_at: string | null;
|
|
21
|
+
read_at: string | null;
|
|
22
|
+
interacted_at: string | null;
|
|
23
|
+
archived_at: string | null;
|
|
24
|
+
link_clicked_at: string | null;
|
|
25
|
+
source: NotificationSource;
|
|
26
|
+
tenant: Tenant<TTenantProperties>;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface InAppMessagesResponse<
|
|
30
|
+
TContent extends GenericData = GenericData,
|
|
31
|
+
TData extends GenericData = GenericData,
|
|
32
|
+
> {
|
|
33
|
+
entries: InAppMessage<TContent, TData>[];
|
|
34
|
+
pageInfo: PageInfo;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface InAppMessagesQueryInfo {
|
|
38
|
+
networkStatus: NetworkStatus;
|
|
39
|
+
loading: boolean;
|
|
40
|
+
data?: {
|
|
41
|
+
messageIds: string[];
|
|
42
|
+
pageInfo: PageInfo;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export interface InAppMessagesStoreState {
|
|
47
|
+
messages: Record<string, InAppMessage>;
|
|
48
|
+
queries: Record<string, InAppMessagesQueryInfo>;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export type InAppMessageEngagementStatus =
|
|
52
|
+
| "read"
|
|
53
|
+
| "unread"
|
|
54
|
+
| "seen"
|
|
55
|
+
| "unseen"
|
|
56
|
+
| "link_clicked"
|
|
57
|
+
| "link_unclicked"
|
|
58
|
+
| "interacted"
|
|
59
|
+
| "uninteracted";
|
|
60
|
+
|
|
61
|
+
export interface InAppMessagesClientOptions {
|
|
62
|
+
order?: "asc" | "desc";
|
|
63
|
+
before?: string;
|
|
64
|
+
after?: string;
|
|
65
|
+
page_size?: number;
|
|
66
|
+
engagement_status?: InAppMessageEngagementStatus[];
|
|
67
|
+
// Optionally scope all requests to a particular tenant or tenants
|
|
68
|
+
tenant_id?: string | string[];
|
|
69
|
+
// Optionally scope to notifications from the given workflow or workflows
|
|
70
|
+
workflow_key?: string | string[];
|
|
71
|
+
// Optionally scope to notifications with any of the categories provided
|
|
72
|
+
workflow_categories?: string[];
|
|
73
|
+
// Optionally scope to a given archived status (defaults to `exclude`)
|
|
74
|
+
archived?: "include" | "exclude" | "only";
|
|
75
|
+
// Optionally scope all notifications that contain this argument as part of their trigger payload
|
|
76
|
+
trigger_data?: GenericData;
|
|
77
|
+
}
|
|
@@ -3,6 +3,7 @@ import { GenericData } from "@knocklabs/types";
|
|
|
3
3
|
import { ApiResponse } from "../../api";
|
|
4
4
|
import { ChannelData, User } from "../../interfaces";
|
|
5
5
|
import Knock from "../../knock";
|
|
6
|
+
import { InAppMessagesResponse } from "../in-app-messages";
|
|
6
7
|
import {
|
|
7
8
|
GetPreferencesOptions,
|
|
8
9
|
PreferenceOptions,
|
|
@@ -10,7 +11,11 @@ import {
|
|
|
10
11
|
SetPreferencesProperties,
|
|
11
12
|
} from "../preferences/interfaces";
|
|
12
13
|
|
|
13
|
-
import {
|
|
14
|
+
import {
|
|
15
|
+
GetChannelDataInput,
|
|
16
|
+
GetInAppMessagesInput,
|
|
17
|
+
SetChannelDataInput,
|
|
18
|
+
} from "./interfaces";
|
|
14
19
|
|
|
15
20
|
const DEFAULT_PREFERENCE_SET_ID = "default";
|
|
16
21
|
|
|
@@ -100,6 +105,19 @@ class UserClient {
|
|
|
100
105
|
return this.handleResponse<ChannelData<T>>(result);
|
|
101
106
|
}
|
|
102
107
|
|
|
108
|
+
async getInAppMessages<
|
|
109
|
+
TContent extends GenericData = GenericData,
|
|
110
|
+
TData extends GenericData = GenericData,
|
|
111
|
+
>({ channelId, messageType, params }: GetInAppMessagesInput) {
|
|
112
|
+
const result = await this.instance.client().makeRequest({
|
|
113
|
+
method: "GET",
|
|
114
|
+
url: `/v1/users/${this.instance.userId}/in-app-messages/${channelId}/${messageType}`,
|
|
115
|
+
params,
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
return this.handleResponse<InAppMessagesResponse<TContent, TData>>(result);
|
|
119
|
+
}
|
|
120
|
+
|
|
103
121
|
private handleResponse<T>(response: ApiResponse) {
|
|
104
122
|
if (response.statusCode === "error") {
|
|
105
123
|
throw new Error(response.error || response.body);
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { GenericData } from "@knocklabs/types";
|
|
2
2
|
|
|
3
|
+
import { InAppMessagesClientOptions } from "../in-app-messages/types";
|
|
4
|
+
|
|
3
5
|
export interface SetChannelDataInput {
|
|
4
6
|
channelId: string;
|
|
5
7
|
channelData: GenericData;
|
|
@@ -8,3 +10,11 @@ export interface SetChannelDataInput {
|
|
|
8
10
|
export interface GetChannelDataInput {
|
|
9
11
|
channelId: string;
|
|
10
12
|
}
|
|
13
|
+
|
|
14
|
+
export interface GetInAppMessagesInput {
|
|
15
|
+
channelId: string;
|
|
16
|
+
messageType: string;
|
|
17
|
+
params: Omit<InAppMessagesClientOptions, "trigger_data"> & {
|
|
18
|
+
trigger_data: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -12,6 +12,7 @@ export * from "./clients/slack/interfaces";
|
|
|
12
12
|
export * from "./clients/users";
|
|
13
13
|
export * from "./clients/users/interfaces";
|
|
14
14
|
export * from "./clients/messages";
|
|
15
|
+
export * from "./clients/in-app-messages";
|
|
15
16
|
export * from "./clients/messages/interfaces";
|
|
16
17
|
export * from "./networkStatus";
|
|
17
18
|
|