@knocklabs/client 0.13.1 → 0.14.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.
@@ -0,0 +1,103 @@
1
+ import { GenericData } from '@knocklabs/types';
2
+ import { Store } from '@tanstack/store';
3
+ import { default as Knock } from '../../knock';
4
+ export declare const guidesApiRootPath: (userId: string | undefined | null) => string;
5
+ interface StepMessageState {
6
+ id: string;
7
+ seen_at: string | null;
8
+ read_at: string | null;
9
+ interacted_at: string | null;
10
+ archived_at: string | null;
11
+ link_clicked_at: string | null;
12
+ }
13
+ interface GuideStepData {
14
+ ref: string;
15
+ schema_key: string;
16
+ schema_semver: string;
17
+ schema_variant_key: string;
18
+ message: StepMessageState;
19
+ content: any;
20
+ }
21
+ interface GuideData {
22
+ __typename: "Guide";
23
+ channel_id: string;
24
+ id: string;
25
+ key: string;
26
+ priority: number;
27
+ type: string;
28
+ semver: string;
29
+ steps: GuideStepData[];
30
+ inserted_at: string;
31
+ updated_at: string;
32
+ }
33
+ export interface KnockGuideStep extends GuideStepData {
34
+ markAsSeen: () => void;
35
+ markAsInteracted: (params?: {
36
+ metadata?: GenericData;
37
+ }) => void;
38
+ markAsArchived: () => void;
39
+ }
40
+ export interface KnockGuide extends GuideData {
41
+ steps: KnockGuideStep[];
42
+ }
43
+ type GetGuidesQueryParams = {
44
+ data?: string;
45
+ tenant?: string;
46
+ type?: string;
47
+ };
48
+ export type GuideEngagementEventBaseParams = {
49
+ message_id: string;
50
+ channel_id: string;
51
+ guide_key: string;
52
+ guide_id: string;
53
+ guide_step_ref: string;
54
+ };
55
+ type QueryKey = string;
56
+ type QueryStatus = {
57
+ status: "loading" | "ok" | "error";
58
+ error?: Error;
59
+ };
60
+ type StoreState = {
61
+ guides: KnockGuide[];
62
+ queries: Record<QueryKey, QueryStatus>;
63
+ };
64
+ type QueryFilterParams = Pick<GetGuidesQueryParams, "type">;
65
+ export type SelectFilterParams = {
66
+ key?: string;
67
+ type?: string;
68
+ };
69
+ export type TargetParams = {
70
+ data?: GenericData | undefined;
71
+ tenant?: string | undefined;
72
+ };
73
+ export declare class KnockGuideClient {
74
+ readonly knock: Knock;
75
+ readonly channelId: string;
76
+ readonly targetParams: TargetParams;
77
+ store: Store<StoreState, (state: StoreState) => StoreState>;
78
+ private socket;
79
+ private socketChannel;
80
+ private socketChannelTopic;
81
+ private socketEventTypes;
82
+ constructor(knock: Knock, channelId: string, targetParams?: TargetParams);
83
+ fetch(opts?: {
84
+ filters?: QueryFilterParams;
85
+ }): Promise<QueryStatus>;
86
+ subscribe(): void;
87
+ unsubscribe(): void;
88
+ private handleSocketEvent;
89
+ select(state: StoreState, filters?: SelectFilterParams): KnockGuide[];
90
+ markAsSeen(guide: GuideData, step: GuideStepData): Promise<KnockGuideStep | undefined>;
91
+ markAsInteracted(guide: GuideData, step: GuideStepData, metadata?: GenericData): Promise<KnockGuideStep | undefined>;
92
+ markAsArchived(guide: GuideData, step: GuideStepData): Promise<KnockGuideStep | undefined>;
93
+ private localCopy;
94
+ private buildQueryParams;
95
+ private formatQueryKey;
96
+ private setStepMessageAttrs;
97
+ private buildEngagementEventBaseParams;
98
+ private addGuide;
99
+ private replaceOrAddGuide;
100
+ private removeGuide;
101
+ }
102
+ export {};
103
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/clients/guide/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { KnockGuideClient } from './client';
2
+ export type { KnockGuide, KnockGuideStep, TargetParams as KnockGuideTargetParams, SelectFilterParams as KnockGuideFilterParams, } from './client';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/clients/guide/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EACV,UAAU,EACV,cAAc,EACd,YAAY,IAAI,sBAAsB,EACtC,kBAAkB,IAAI,sBAAsB,GAC7C,MAAM,UAAU,CAAC"}
@@ -1,6 +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/client';
4
5
  import { GetPreferencesOptions, PreferenceOptions, PreferenceSet, SetPreferencesProperties } from '../preferences/interfaces';
5
6
  import { GetChannelDataInput, SetChannelDataInput } from './interfaces';
6
7
  declare class UserClient {
@@ -13,6 +14,8 @@ declare class UserClient {
13
14
  setPreferences(preferenceSet: SetPreferencesProperties, options?: PreferenceOptions): Promise<PreferenceSet>;
14
15
  getChannelData<T = GenericData>(params: GetChannelDataInput): Promise<ChannelData<T>>;
15
16
  setChannelData<T = GenericData>({ channelId, channelData, }: SetChannelDataInput): Promise<ChannelData<T>>;
17
+ getGuides<P, R>(channelId: string, params: P): Promise<R>;
18
+ markGuideStepAs<P extends GuideEngagementEventBaseParams, R>(status: "seen" | "interacted" | "archived", params: P): Promise<R>;
16
19
  private handleResponse;
17
20
  }
18
21
  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;AAChC,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;IAYtB,OAAO,CAAC,cAAc;CAOvB;AAED,eAAe,UAAU,CAAC"}
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;AAChC,OAAO,EACL,8BAA8B,EAE/B,MAAM,iBAAiB,CAAC;AACzB,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;IAWX,OAAO,CAAC,cAAc;CAOvB;AAED,eAAe,UAAU,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { default as FeedClient, Feed } from './clients/feed';
2
2
  import { default as Knock } from './knock';
3
3
  export * from './interfaces';
4
+ export * from './clients/guide';
4
5
  export * from './clients/feed/types';
5
6
  export * from './clients/feed/interfaces';
6
7
  export * from './clients/objects';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC;AAEhC,eAAe,KAAK,CAAC;AACrB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC;AAEhC,eAAe,KAAK,CAAC;AACrB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knocklabs/client",
3
- "version": "0.13.1",
3
+ "version": "0.14.0",
4
4
  "description": "The clientside library for interacting with Knock",
5
5
  "homepage": "https://github.com/knocklabs/javascript/tree/main/packages/client",
6
6
  "author": "@knocklabs",
@@ -69,8 +69,9 @@
69
69
  "vitest": "^2.1.8"
70
70
  },
71
71
  "dependencies": {
72
- "@babel/runtime": "^7.26.0",
72
+ "@babel/runtime": "^7.27.0",
73
73
  "@knocklabs/types": "^0.1.5",
74
+ "@tanstack/store": "^0.5.5",
74
75
  "@types/phoenix": "^1.6.6",
75
76
  "axios": "^1.8.4",
76
77
  "axios-retry": "^4.5.0",