@knocklabs/client 0.21.7 → 0.21.8
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 +8 -0
- package/dist/cjs/api.js +1 -1
- package/dist/cjs/clients/guide/client.js +1 -1
- package/dist/cjs/clients/guide/client.js.map +1 -1
- package/dist/cjs/clients/guide/helpers.js +1 -1
- package/dist/cjs/clients/guide/helpers.js.map +1 -1
- package/dist/cjs/clients/guide/types.js.map +1 -1
- package/dist/cjs/clients/users/index.js +1 -1
- package/dist/cjs/clients/users/index.js.map +1 -1
- package/dist/esm/api.mjs +1 -1
- package/dist/esm/clients/guide/client.mjs +170 -147
- package/dist/esm/clients/guide/client.mjs.map +1 -1
- package/dist/esm/clients/guide/helpers.mjs +57 -45
- package/dist/esm/clients/guide/helpers.mjs.map +1 -1
- package/dist/esm/clients/guide/types.mjs.map +1 -1
- package/dist/esm/clients/users/index.mjs +13 -5
- package/dist/esm/clients/users/index.mjs.map +1 -1
- package/dist/types/clients/guide/client.d.ts +3 -0
- package/dist/types/clients/guide/client.d.ts.map +1 -1
- package/dist/types/clients/guide/helpers.d.ts +6 -1
- package/dist/types/clients/guide/helpers.d.ts.map +1 -1
- package/dist/types/clients/guide/index.d.ts +1 -0
- package/dist/types/clients/guide/index.d.ts.map +1 -1
- package/dist/types/clients/guide/types.d.ts +9 -0
- package/dist/types/clients/guide/types.d.ts.map +1 -1
- package/dist/types/clients/users/index.d.ts +2 -1
- package/dist/types/clients/users/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/clients/guide/client.ts +60 -5
- package/src/clients/guide/helpers.ts +38 -0
- package/src/clients/guide/index.ts +1 -0
- package/src/clients/guide/types.ts +11 -0
- package/src/clients/users/index.ts +15 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
var h = Object.defineProperty;
|
|
2
2
|
var u = (n, e, t) => e in n ? h(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
|
|
3
|
-
var
|
|
4
|
-
import { guidesApiRootPath as
|
|
3
|
+
var i = (n, e, t) => u(n, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
+
import { guidesApiRootPath as a } from "../guide/client.mjs";
|
|
5
5
|
const r = "default";
|
|
6
6
|
class o {
|
|
7
7
|
constructor(e) {
|
|
8
|
-
|
|
8
|
+
i(this, "instance");
|
|
9
9
|
this.instance = e;
|
|
10
10
|
}
|
|
11
11
|
async get() {
|
|
@@ -74,7 +74,7 @@ class o {
|
|
|
74
74
|
async getGuides(e, t) {
|
|
75
75
|
const s = await this.instance.client().makeRequest({
|
|
76
76
|
method: "GET",
|
|
77
|
-
url: `${
|
|
77
|
+
url: `${a(this.instance.userId)}/${e}`,
|
|
78
78
|
params: t
|
|
79
79
|
});
|
|
80
80
|
return this.handleResponse(s);
|
|
@@ -82,11 +82,19 @@ class o {
|
|
|
82
82
|
async markGuideStepAs(e, t) {
|
|
83
83
|
const s = await this.instance.client().makeRequest({
|
|
84
84
|
method: "PUT",
|
|
85
|
-
url: `${
|
|
85
|
+
url: `${a(this.instance.userId)}/messages/${e}`,
|
|
86
86
|
data: t
|
|
87
87
|
});
|
|
88
88
|
return this.handleResponse(s);
|
|
89
89
|
}
|
|
90
|
+
async resetGuideEngagement(e) {
|
|
91
|
+
const t = await this.instance.client().makeRequest({
|
|
92
|
+
method: "PUT",
|
|
93
|
+
url: `${a(this.instance.userId)}/engagements/reset`,
|
|
94
|
+
data: e
|
|
95
|
+
});
|
|
96
|
+
return this.handleResponse(t);
|
|
97
|
+
}
|
|
90
98
|
handleResponse(e) {
|
|
91
99
|
if (e.statusCode === "error")
|
|
92
100
|
throw new Error(e.error || e.body);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../src/clients/users/index.ts"],"sourcesContent":["import { GenericData } from \"@knocklabs/types\";\n\nimport { ApiResponse } from \"../../api\";\nimport { ChannelData, User } from \"../../interfaces\";\nimport Knock from \"../../knock\";\nimport { guidesApiRootPath } from \"../guide/client\";\nimport {
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../src/clients/users/index.ts"],"sourcesContent":["import { GenericData } from \"@knocklabs/types\";\n\nimport { ApiResponse } from \"../../api\";\nimport { ChannelData, User } from \"../../interfaces\";\nimport Knock from \"../../knock\";\nimport { guidesApiRootPath } from \"../guide/client\";\nimport {\n GuideEngagementEventBaseParams,\n ResetGuideEngagementParams,\n ResetGuideEngagementResponse,\n} from \"../guide/types\";\nimport {\n GetPreferencesOptions,\n PreferenceOptions,\n PreferenceSet,\n SetPreferencesProperties,\n} from \"../preferences/interfaces\";\n\nimport { GetChannelDataInput, SetChannelDataInput } from \"./interfaces\";\n\nconst DEFAULT_PREFERENCE_SET_ID = \"default\";\n\nclass UserClient {\n private instance: Knock;\n\n constructor(instance: Knock) {\n this.instance = instance;\n }\n\n async get() {\n this.instance.failIfNotAuthenticated();\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}`,\n });\n\n return this.handleResponse<User>(result);\n }\n\n async identify(props: GenericData = {}) {\n this.instance.failIfNotAuthenticated();\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}`,\n data: props,\n });\n\n return this.handleResponse<User>(result);\n }\n\n async getAllPreferences() {\n this.instance.failIfNotAuthenticated();\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences`,\n });\n\n return this.handleResponse<PreferenceSet[]>(result);\n }\n\n async getPreferences(\n options: GetPreferencesOptions = {},\n ): Promise<PreferenceSet> {\n this.instance.failIfNotAuthenticated();\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n params: { tenant: options.tenant },\n });\n\n return this.handleResponse<PreferenceSet>(result);\n }\n\n async setPreferences(\n preferenceSet: SetPreferencesProperties,\n options: PreferenceOptions = {},\n ): Promise<PreferenceSet> {\n this.instance.failIfNotAuthenticated();\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n data: preferenceSet,\n });\n\n return this.handleResponse<PreferenceSet>(result);\n }\n\n async getChannelData<T = GenericData>(params: GetChannelDataInput) {\n this.instance.failIfNotAuthenticated();\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/channel_data/${params.channelId}`,\n });\n\n return this.handleResponse<ChannelData<T>>(result);\n }\n\n async setChannelData<T = GenericData>({\n channelId,\n channelData,\n }: SetChannelDataInput) {\n this.instance.failIfNotAuthenticated();\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/channel_data/${channelId}`,\n data: { data: channelData },\n });\n\n return this.handleResponse<ChannelData<T>>(result);\n }\n\n async getGuides<P, R>(channelId: string, params: P) {\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `${guidesApiRootPath(this.instance.userId)}/${channelId}`,\n params,\n });\n\n return this.handleResponse<R>(result);\n }\n\n async markGuideStepAs<P extends GuideEngagementEventBaseParams, R>(\n status: \"seen\" | \"interacted\" | \"archived\",\n params: P,\n ) {\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `${guidesApiRootPath(this.instance.userId)}/messages/${status}`,\n data: params,\n });\n\n return this.handleResponse<R>(result);\n }\n\n async resetGuideEngagement(params: ResetGuideEngagementParams) {\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `${guidesApiRootPath(this.instance.userId)}/engagements/reset`,\n data: params,\n });\n\n return this.handleResponse<ResetGuideEngagementResponse>(result);\n }\n\n private handleResponse<T>(response: ApiResponse) {\n if (response.statusCode === \"error\") {\n throw new Error(response.error || response.body);\n }\n\n return response.body as T;\n }\n}\n\nexport default UserClient;\n"],"names":["DEFAULT_PREFERENCE_SET_ID","UserClient","instance","__publicField","result","props","options","preferenceSetId","preferenceSet","params","channelId","channelData","guidesApiRootPath","status","response"],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@ export declare class KnockGuideClient {
|
|
|
30
30
|
cleanup(): void;
|
|
31
31
|
fetch(opts?: {
|
|
32
32
|
filters?: QueryFilterParams;
|
|
33
|
+
force?: boolean;
|
|
33
34
|
}): Promise<QueryStatus>;
|
|
34
35
|
subscribe(): void;
|
|
35
36
|
private handleChannelJoinError;
|
|
@@ -53,6 +54,7 @@ export declare class KnockGuideClient {
|
|
|
53
54
|
markAsSeen(guide: GuideData, step: GuideStepData): Promise<KnockGuideStep<any> | undefined>;
|
|
54
55
|
markAsInteracted(guide: GuideData, step: GuideStepData, metadata?: GenericData): Promise<KnockGuideStep<any> | undefined>;
|
|
55
56
|
markAsArchived(guide: GuideData, step: GuideStepData): Promise<KnockGuideStep<any> | undefined>;
|
|
57
|
+
resetEngagement(guide: GuideData): Promise<void>;
|
|
56
58
|
private shouldSkipEngagementApi;
|
|
57
59
|
private localCopy;
|
|
58
60
|
private buildQueryParams;
|
|
@@ -67,5 +69,6 @@ export declare class KnockGuideClient {
|
|
|
67
69
|
private checkDebugStateChanged;
|
|
68
70
|
private listenForLocationChangesFromWindow;
|
|
69
71
|
removeLocationChangeEventListeners(): void;
|
|
72
|
+
static getToolbarRunConfigFromUrl(): import('./helpers').ToolbarV2RunConfig;
|
|
70
73
|
}
|
|
71
74
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/clients/guide/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAIxC,OAAO,KAAK,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/clients/guide/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GroupStage, GuideActivationUrlRuleData, GuideData, GuideGroupData, KnockGuideActivationUrlPattern, SelectFilterParams, StoreState } from './types';
|
|
1
|
+
import { GroupStage, GuideActivationUrlRuleData, GuideData, GuideGroupData, KnockGuide, KnockGuideActivationUrlPattern, SelectFilterParams, StoreState } from './types';
|
|
2
2
|
export declare const formatGroupStage: (stage: GroupStage) => string;
|
|
3
3
|
export declare const formatState: (state: StoreState) => string;
|
|
4
4
|
export declare const formatFilters: (filters?: SelectFilterParams) => string;
|
|
@@ -13,4 +13,9 @@ export declare const newUrl: (location: string) => URL | undefined;
|
|
|
13
13
|
export declare const evaluateUrlRule: (url: URL, urlRule: GuideActivationUrlRuleData) => boolean;
|
|
14
14
|
export declare const predicateUrlRules: (url: URL, urlRules: GuideActivationUrlRuleData[]) => boolean | undefined;
|
|
15
15
|
export declare const predicateUrlPatterns: (url: URL, urlPatterns: KnockGuideActivationUrlPattern[]) => boolean | undefined;
|
|
16
|
+
export type ToolbarV2RunConfig = {
|
|
17
|
+
isVisible: boolean;
|
|
18
|
+
focusedGuideKeys?: Record<KnockGuide["key"], true>;
|
|
19
|
+
};
|
|
20
|
+
export declare const getToolbarRunConfigFromUrl: () => ToolbarV2RunConfig;
|
|
16
21
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/clients/guide/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,0BAA0B,EAC1B,SAAS,EACT,cAAc,EACd,8BAA8B,EAC9B,kBAAkB,EAClB,UAAU,EACX,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,gBAAgB,GAAI,OAAO,UAAU,WAEjD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,UAAU,WAE5C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,UAAS,kBAAuB,WAO7D,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,CAAC,EAAE,OAE1D,CAAC;AAUF,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAO3C,eAAO,MAAM,gBAAgB,GAAI,UAAS,SAAS,EAAO,KAUnD,cACN,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,aAAa,cAAc,EAAE,+BAI3D,CAAC;AAEJ,eAAO,MAAM,qBAAqB,GAAI,OAAO,UAAU,YAsBtD,CAAC;AAqCF,eAAO,MAAM,MAAM,GAAI,UAAU,MAAM,oBAMtC,CAAC;AAGF,eAAO,MAAM,eAAe,GAC1B,KAAK,GAAG,EACR,SAAS,0BAA0B,YAmBpC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,KAAK,GAAG,EACR,UAAU,0BAA0B,EAAE,wBA+BvC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,KAAK,GAAG,EACR,aAAa,8BAA8B,EAAE,wBAiC9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/clients/guide/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,0BAA0B,EAC1B,SAAS,EACT,cAAc,EACd,UAAU,EACV,8BAA8B,EAC9B,kBAAkB,EAClB,UAAU,EACX,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,gBAAgB,GAAI,OAAO,UAAU,WAEjD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,UAAU,WAE5C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,UAAS,kBAAuB,WAO7D,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,CAAC,EAAE,OAE1D,CAAC;AAUF,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAO3C,eAAO,MAAM,gBAAgB,GAAI,UAAS,SAAS,EAAO,KAUnD,cACN,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,aAAa,cAAc,EAAE,+BAI3D,CAAC;AAEJ,eAAO,MAAM,qBAAqB,GAAI,OAAO,UAAU,YAsBtD,CAAC;AAqCF,eAAO,MAAM,MAAM,GAAI,UAAU,MAAM,oBAMtC,CAAC;AAGF,eAAO,MAAM,eAAe,GAC1B,KAAK,GAAG,EACR,SAAS,0BAA0B,YAmBpC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,KAAK,GAAG,EACR,UAAU,0BAA0B,EAAE,wBA+BvC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,KAAK,GAAG,EACR,aAAa,8BAA8B,EAAE,wBAiC9C,CAAC;AASF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;CACpD,CAAC;AAEF,eAAO,MAAM,0BAA0B,QAAO,kBAuB7C,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { KnockGuideClient, DEBUG_QUERY_PARAMS, checkActivatable, } from './client';
|
|
2
2
|
export { checkStateIfThrottled } from './helpers';
|
|
3
|
+
export type { ToolbarV2RunConfig } from './helpers';
|
|
3
4
|
export type { KnockGuide, KnockGuideStep, GuideIneligibilityMarker as KnockGuideIneligibilityMarker, TargetParams as KnockGuideTargetParams, SelectFilterParams as KnockGuideFilterParams, SelectGuideOpts as KnockSelectGuideOpts, SelectGuidesOpts as KnockSelectGuidesOpts, StepMessageState as KnockGuideStepMessageState, StoreState as KnockGuideClientStoreState, GroupStage as KnockGuideClientGroupStage, SelectionResult as KnockGuideSelectionResult, } from './types';
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/clients/guide/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,YAAY,EACV,UAAU,EACV,cAAc,EACd,wBAAwB,IAAI,6BAA6B,EACzD,YAAY,IAAI,sBAAsB,EACtC,kBAAkB,IAAI,sBAAsB,EAC5C,eAAe,IAAI,oBAAoB,EACvC,gBAAgB,IAAI,qBAAqB,EACzC,gBAAgB,IAAI,0BAA0B,EAC9C,UAAU,IAAI,0BAA0B,EACxC,UAAU,IAAI,0BAA0B,EACxC,eAAe,IAAI,yBAAyB,GAC7C,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/clients/guide/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,YAAY,EACV,UAAU,EACV,cAAc,EACd,wBAAwB,IAAI,6BAA6B,EACzD,YAAY,IAAI,sBAAsB,EACtC,kBAAkB,IAAI,sBAAsB,EAC5C,eAAe,IAAI,oBAAoB,EACvC,gBAAgB,IAAI,qBAAqB,EACzC,gBAAgB,IAAI,0BAA0B,EAC9C,UAAU,IAAI,0BAA0B,EACxC,UAAU,IAAI,0BAA0B,EACxC,eAAe,IAAI,yBAAyB,GAC7C,MAAM,SAAS,CAAC"}
|
|
@@ -49,6 +49,7 @@ export interface GuideData<TContent = Any> {
|
|
|
49
49
|
activation_url_rules: GuideActivationUrlRuleData[];
|
|
50
50
|
activation_url_patterns: GuideActivationUrlPatternData[];
|
|
51
51
|
bypass_global_group_limit: boolean;
|
|
52
|
+
dashboard_url: string | null;
|
|
52
53
|
inserted_at: string;
|
|
53
54
|
updated_at: string;
|
|
54
55
|
}
|
|
@@ -99,6 +100,13 @@ export type MarkAsArchivedParams = GuideEngagementEventBaseParams & {
|
|
|
99
100
|
export type MarkGuideAsResponse = {
|
|
100
101
|
status: "ok";
|
|
101
102
|
};
|
|
103
|
+
export type ResetGuideEngagementParams = {
|
|
104
|
+
guide_key: string;
|
|
105
|
+
tenant?: string;
|
|
106
|
+
};
|
|
107
|
+
export type ResetGuideEngagementResponse = {
|
|
108
|
+
status: "ok";
|
|
109
|
+
};
|
|
102
110
|
type SocketEventType = "guide.added" | "guide.updated" | "guide.removed" | "guide_group.added" | "guide_group.updated" | "guide.live_preview_updated";
|
|
103
111
|
type SocketEventPayload<E extends SocketEventType, D> = {
|
|
104
112
|
topic: string;
|
|
@@ -141,6 +149,7 @@ export interface KnockGuide<TContent = Any> extends GuideData<TContent> {
|
|
|
141
149
|
steps: KnockGuideStep<TContent>[];
|
|
142
150
|
activation_url_patterns: KnockGuideActivationUrlPattern[];
|
|
143
151
|
getStep: () => KnockGuideStep<TContent> | undefined;
|
|
152
|
+
hasEngagement: () => boolean;
|
|
144
153
|
}
|
|
145
154
|
type QueryKey = string;
|
|
146
155
|
export type QueryStatus = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/clients/guide/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/clients/guide/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { GenericData } from '@knocklabs/types';
|
|
2
2
|
import { ChannelData, User } from '../../interfaces';
|
|
3
3
|
import { default as Knock } from '../../knock';
|
|
4
|
-
import { GuideEngagementEventBaseParams } from '../guide/types';
|
|
4
|
+
import { GuideEngagementEventBaseParams, ResetGuideEngagementParams, ResetGuideEngagementResponse } from '../guide/types';
|
|
5
5
|
import { GetPreferencesOptions, PreferenceOptions, PreferenceSet, SetPreferencesProperties } from '../preferences/interfaces';
|
|
6
6
|
import { GetChannelDataInput, SetChannelDataInput } from './interfaces';
|
|
7
7
|
declare class UserClient {
|
|
@@ -16,6 +16,7 @@ declare class UserClient {
|
|
|
16
16
|
setChannelData<T = GenericData>({ channelId, channelData, }: SetChannelDataInput): Promise<ChannelData<T>>;
|
|
17
17
|
getGuides<P, R>(channelId: string, params: P): Promise<R>;
|
|
18
18
|
markGuideStepAs<P extends GuideEngagementEventBaseParams, R>(status: "seen" | "interacted" | "archived", params: P): Promise<R>;
|
|
19
|
+
resetGuideEngagement(params: ResetGuideEngagementParams): Promise<ResetGuideEngagementResponse>;
|
|
19
20
|
private handleResponse;
|
|
20
21
|
}
|
|
21
22
|
export default UserClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/clients/users/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/clients/users/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,4BAA4B,EAC7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,wBAAwB,EACzB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAIxE,cAAM,UAAU;IACd,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,QAAQ,EAAE,KAAK;IAIrB,GAAG;IAWH,QAAQ,CAAC,KAAK,GAAE,WAAgB;IAYhC,iBAAiB;IAWjB,cAAc,CAClB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,aAAa,CAAC;IAanB,cAAc,CAClB,aAAa,EAAE,wBAAwB,EACvC,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,aAAa,CAAC;IAanB,cAAc,CAAC,CAAC,GAAG,WAAW,EAAE,MAAM,EAAE,mBAAmB;IAW3D,cAAc,CAAC,CAAC,GAAG,WAAW,EAAE,EACpC,SAAS,EACT,WAAW,GACZ,EAAE,mBAAmB;IAYhB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAU5C,eAAe,CAAC,CAAC,SAAS,8BAA8B,EAAE,CAAC,EAC/D,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,EAC1C,MAAM,EAAE,CAAC;IAWL,oBAAoB,CAAC,MAAM,EAAE,0BAA0B;IAU7D,OAAO,CAAC,cAAc;CAOvB;AAED,eAAe,UAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
formatFilters,
|
|
14
14
|
formatGroupStage,
|
|
15
15
|
formatState,
|
|
16
|
+
getToolbarRunConfigFromUrl,
|
|
16
17
|
mockDefaultGroup,
|
|
17
18
|
newUrl,
|
|
18
19
|
predicateUrlPatterns,
|
|
@@ -362,16 +363,16 @@ export class KnockGuideClient {
|
|
|
362
363
|
this.clearCounterInterval();
|
|
363
364
|
}
|
|
364
365
|
|
|
365
|
-
async fetch(opts?: { filters?: QueryFilterParams }) {
|
|
366
|
+
async fetch(opts?: { filters?: QueryFilterParams; force?: boolean }) {
|
|
366
367
|
this.knock.log("[Guide] .fetch");
|
|
367
368
|
this.knock.failIfNotAuthenticated();
|
|
368
369
|
|
|
369
370
|
const queryParams = this.buildQueryParams(opts?.filters);
|
|
370
371
|
const queryKey = this.formatQueryKey(queryParams);
|
|
371
372
|
|
|
372
|
-
// If already fetched before, then noop.
|
|
373
|
+
// If already fetched before, then noop (unless forced).
|
|
373
374
|
const maybeQueryStatus = this.store.state.queries[queryKey];
|
|
374
|
-
if (maybeQueryStatus) {
|
|
375
|
+
if (maybeQueryStatus && !opts?.force) {
|
|
375
376
|
return maybeQueryStatus;
|
|
376
377
|
}
|
|
377
378
|
|
|
@@ -397,6 +398,12 @@ export class KnockGuideClient {
|
|
|
397
398
|
ineligible_guides,
|
|
398
399
|
} = data;
|
|
399
400
|
|
|
401
|
+
// Clear group stage if one exists already before (re)setting the store
|
|
402
|
+
// state.
|
|
403
|
+
if (this.stage) {
|
|
404
|
+
this.clearGroupStage();
|
|
405
|
+
}
|
|
406
|
+
|
|
400
407
|
this.knock.log("[Guide] Loading fetched guides");
|
|
401
408
|
this.store.setState((state) => ({
|
|
402
409
|
...state,
|
|
@@ -594,6 +601,12 @@ export class KnockGuideClient {
|
|
|
594
601
|
|
|
595
602
|
setDebug(debugOpts?: Omit<DebugState, "debugging">) {
|
|
596
603
|
this.knock.log("[Guide] .setDebug()");
|
|
604
|
+
|
|
605
|
+
if (!this.knock.isAuthenticated()) {
|
|
606
|
+
this.knock.log("[Guide] Not authenticated, cannot start debugging");
|
|
607
|
+
return;
|
|
608
|
+
}
|
|
609
|
+
|
|
597
610
|
const shouldRefetch = !this.store.state.debug?.debugging;
|
|
598
611
|
|
|
599
612
|
// Clear the stage before updating the store state to let the next render
|
|
@@ -615,7 +628,7 @@ export class KnockGuideClient {
|
|
|
615
628
|
this.knock.log(
|
|
616
629
|
`[Guide] Start debugging, refetching guides and resubscribing to the websocket channel`,
|
|
617
630
|
);
|
|
618
|
-
this.fetch();
|
|
631
|
+
this.fetch({ force: true });
|
|
619
632
|
this.subscribe();
|
|
620
633
|
}
|
|
621
634
|
}
|
|
@@ -630,11 +643,17 @@ export class KnockGuideClient {
|
|
|
630
643
|
|
|
631
644
|
this.store.setState((state) => ({ ...state, debug: undefined }));
|
|
632
645
|
|
|
646
|
+
if (!this.knock.isAuthenticated()) {
|
|
647
|
+
this.knock.log("[Guide] Not authenticated, will not refetch");
|
|
648
|
+
return;
|
|
649
|
+
}
|
|
650
|
+
|
|
633
651
|
if (shouldRefetch) {
|
|
634
652
|
this.knock.log(
|
|
635
653
|
`[Guide] Stop debugging, refetching guides and resubscribing to the websocket channel`,
|
|
636
654
|
);
|
|
637
|
-
this.fetch();
|
|
655
|
+
this.fetch({ force: true });
|
|
656
|
+
// TODO: Manage (re)subscribe/unsubscribe in V2 rather than here.
|
|
638
657
|
this.subscribe();
|
|
639
658
|
}
|
|
640
659
|
}
|
|
@@ -1101,6 +1120,26 @@ export class KnockGuideClient {
|
|
|
1101
1120
|
return updatedStep;
|
|
1102
1121
|
}
|
|
1103
1122
|
|
|
1123
|
+
async resetEngagement(guide: GuideData) {
|
|
1124
|
+
const target = this.store.state.guides[guide.key];
|
|
1125
|
+
if (!target || !target.hasEngagement()) return;
|
|
1126
|
+
|
|
1127
|
+
this.knock.log(`[Guide] Resetting engagement (Guide key: ${guide.key})`);
|
|
1128
|
+
|
|
1129
|
+
// Note: Bypass the skipEngagementTracking debug setting, so that the user
|
|
1130
|
+
// can reset engagement from the toolbar while debugging.
|
|
1131
|
+
const response = await this.knock.user.resetGuideEngagement({
|
|
1132
|
+
guide_key: guide.key,
|
|
1133
|
+
tenant: this.targetParams.tenant,
|
|
1134
|
+
});
|
|
1135
|
+
|
|
1136
|
+
if (response.status !== "ok") return;
|
|
1137
|
+
|
|
1138
|
+
// Await the refetch so the store has fresh guide state (including
|
|
1139
|
+
// ineligibleGuides) then re-cycle the group stage.
|
|
1140
|
+
await this.fetch({ force: true });
|
|
1141
|
+
}
|
|
1142
|
+
|
|
1104
1143
|
private shouldSkipEngagementApi(): boolean {
|
|
1105
1144
|
return !!this.store.state.debug?.skipEngagementTracking;
|
|
1106
1145
|
}
|
|
@@ -1128,9 +1167,21 @@ export class KnockGuideClient {
|
|
|
1128
1167
|
|
|
1129
1168
|
return this.steps.find((s) => !s.message.archived_at);
|
|
1130
1169
|
},
|
|
1170
|
+
// Check whether any of its steps have an engagement timestamp.
|
|
1171
|
+
hasEngagement() {
|
|
1172
|
+
return this.steps.some(
|
|
1173
|
+
(step) =>
|
|
1174
|
+
step.message.seen_at ||
|
|
1175
|
+
step.message.read_at ||
|
|
1176
|
+
step.message.interacted_at ||
|
|
1177
|
+
step.message.archived_at ||
|
|
1178
|
+
step.message.link_clicked_at,
|
|
1179
|
+
);
|
|
1180
|
+
},
|
|
1131
1181
|
} as KnockGuide;
|
|
1132
1182
|
|
|
1133
1183
|
localGuide.getStep = localGuide.getStep.bind(localGuide);
|
|
1184
|
+
localGuide.hasEngagement = localGuide.hasEngagement.bind(localGuide);
|
|
1134
1185
|
|
|
1135
1186
|
localGuide.steps = remoteGuide.steps.map(({ message, ...rest }) => {
|
|
1136
1187
|
const localStep = {
|
|
@@ -1442,4 +1493,8 @@ export class KnockGuideClient {
|
|
|
1442
1493
|
this.replaceStateFn = undefined;
|
|
1443
1494
|
}
|
|
1444
1495
|
}
|
|
1496
|
+
|
|
1497
|
+
static getToolbarRunConfigFromUrl() {
|
|
1498
|
+
return getToolbarRunConfigFromUrl();
|
|
1499
|
+
}
|
|
1445
1500
|
}
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
GuideActivationUrlRuleData,
|
|
4
4
|
GuideData,
|
|
5
5
|
GuideGroupData,
|
|
6
|
+
KnockGuide,
|
|
6
7
|
KnockGuideActivationUrlPattern,
|
|
7
8
|
SelectFilterParams,
|
|
8
9
|
StoreState,
|
|
@@ -225,3 +226,40 @@ export const predicateUrlPatterns = (
|
|
|
225
226
|
}
|
|
226
227
|
}, predicateDefault);
|
|
227
228
|
};
|
|
229
|
+
|
|
230
|
+
// Use this param to start Toolbar v2 and enter into a debugging session when
|
|
231
|
+
// it is present and set to true.
|
|
232
|
+
const TOOLBAR_QUERY_PARAM = "knock_guide_toolbar";
|
|
233
|
+
|
|
234
|
+
// Optional, when present pin/focus on this guide.
|
|
235
|
+
const GUIDE_KEY_PARAM = "focused_guide_key";
|
|
236
|
+
|
|
237
|
+
export type ToolbarV2RunConfig = {
|
|
238
|
+
isVisible: boolean;
|
|
239
|
+
focusedGuideKeys?: Record<KnockGuide["key"], true>;
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
export const getToolbarRunConfigFromUrl = (): ToolbarV2RunConfig => {
|
|
243
|
+
const fallback = { isVisible: false };
|
|
244
|
+
|
|
245
|
+
if (typeof window === "undefined" || !window.location) {
|
|
246
|
+
return fallback;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
const urlSearchParams = new URLSearchParams(window.location.search);
|
|
250
|
+
const toolbarParamValue = urlSearchParams.get(TOOLBAR_QUERY_PARAM);
|
|
251
|
+
const guideKeyParamValue = urlSearchParams.get(GUIDE_KEY_PARAM);
|
|
252
|
+
|
|
253
|
+
if (toolbarParamValue === null) {
|
|
254
|
+
return fallback;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
const config: ToolbarV2RunConfig = {
|
|
258
|
+
isVisible: toolbarParamValue === "true",
|
|
259
|
+
};
|
|
260
|
+
if (guideKeyParamValue) {
|
|
261
|
+
config.focusedGuideKeys = { [guideKeyParamValue]: true };
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
return config;
|
|
265
|
+
};
|
|
@@ -72,6 +72,7 @@ export interface GuideData<TContent = Any> {
|
|
|
72
72
|
activation_url_rules: GuideActivationUrlRuleData[];
|
|
73
73
|
activation_url_patterns: GuideActivationUrlPatternData[];
|
|
74
74
|
bypass_global_group_limit: boolean;
|
|
75
|
+
dashboard_url: string | null;
|
|
75
76
|
inserted_at: string;
|
|
76
77
|
updated_at: string;
|
|
77
78
|
}
|
|
@@ -142,6 +143,15 @@ export type MarkGuideAsResponse = {
|
|
|
142
143
|
status: "ok";
|
|
143
144
|
};
|
|
144
145
|
|
|
146
|
+
export type ResetGuideEngagementParams = {
|
|
147
|
+
guide_key: string;
|
|
148
|
+
tenant?: string;
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
export type ResetGuideEngagementResponse = {
|
|
152
|
+
status: "ok";
|
|
153
|
+
};
|
|
154
|
+
|
|
145
155
|
//
|
|
146
156
|
// Socket events
|
|
147
157
|
//
|
|
@@ -220,6 +230,7 @@ export interface KnockGuide<TContent = Any> extends GuideData<TContent> {
|
|
|
220
230
|
steps: KnockGuideStep<TContent>[];
|
|
221
231
|
activation_url_patterns: KnockGuideActivationUrlPattern[];
|
|
222
232
|
getStep: () => KnockGuideStep<TContent> | undefined;
|
|
233
|
+
hasEngagement: () => boolean;
|
|
223
234
|
}
|
|
224
235
|
|
|
225
236
|
type QueryKey = string;
|
|
@@ -4,7 +4,11 @@ import { ApiResponse } from "../../api";
|
|
|
4
4
|
import { ChannelData, User } from "../../interfaces";
|
|
5
5
|
import Knock from "../../knock";
|
|
6
6
|
import { guidesApiRootPath } from "../guide/client";
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
GuideEngagementEventBaseParams,
|
|
9
|
+
ResetGuideEngagementParams,
|
|
10
|
+
ResetGuideEngagementResponse,
|
|
11
|
+
} from "../guide/types";
|
|
8
12
|
import {
|
|
9
13
|
GetPreferencesOptions,
|
|
10
14
|
PreferenceOptions,
|
|
@@ -137,6 +141,16 @@ class UserClient {
|
|
|
137
141
|
return this.handleResponse<R>(result);
|
|
138
142
|
}
|
|
139
143
|
|
|
144
|
+
async resetGuideEngagement(params: ResetGuideEngagementParams) {
|
|
145
|
+
const result = await this.instance.client().makeRequest({
|
|
146
|
+
method: "PUT",
|
|
147
|
+
url: `${guidesApiRootPath(this.instance.userId)}/engagements/reset`,
|
|
148
|
+
data: params,
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
return this.handleResponse<ResetGuideEngagementResponse>(result);
|
|
152
|
+
}
|
|
153
|
+
|
|
140
154
|
private handleResponse<T>(response: ApiResponse) {
|
|
141
155
|
if (response.statusCode === "error") {
|
|
142
156
|
throw new Error(response.error || response.body);
|