diff --git a/.changeset/yellow-worlds-smile.md b/.changeset/yellow-worlds-smile.md new file mode 100644 index 000000000..9c90cf14e --- /dev/null +++ b/.changeset/yellow-worlds-smile.md @@ -0,0 +1,5 @@ +--- +"@knocklabs/client": patch +--- + +[guides] fix: KnockGuideStep type definition to return a promise from async methods diff --git a/.tool-versions b/.tool-versions index a3955f439..e871cd693 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ -nodejs 22.17.0 +nodejs 24.12.0 yarn 1.22.22 diff --git a/package.json b/package.json index 87252c386..6c08dae8e 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,6 @@ "vitest": "^3.1.1" }, "engines": { - "node": "22.17.0" + "node": ">=24.10.0" } } diff --git a/packages/client/src/clients/guide/client.ts b/packages/client/src/clients/guide/client.ts index 9c089521f..4fa3e4a17 100644 --- a/packages/client/src/clients/guide/client.ts +++ b/packages/client/src/clients/guide/client.ts @@ -952,17 +952,12 @@ export class KnockGuideClient { ...rest, message: { ...message }, markAsSeen() { - // Send a seen event if it has not been previously seen. - if (this.message.seen_at) return; return self.markAsSeen(localGuide, this); }, markAsInteracted({ metadata }: { metadata?: GenericData } = {}) { - // Always send an interaction event through. return self.markAsInteracted(localGuide, this, metadata); }, markAsArchived() { - // Send an archived event if it has not been previously archived. - if (this.message.archived_at) return; return self.markAsArchived(localGuide, this); }, }; diff --git a/packages/client/src/clients/guide/types.ts b/packages/client/src/clients/guide/types.ts index ce4fdeec1..f7112713b 100644 --- a/packages/client/src/clients/guide/types.ts +++ b/packages/client/src/clients/guide/types.ts @@ -166,9 +166,11 @@ export type GuideSocketEvent = export interface KnockGuideStep extends GuideStepData { - markAsSeen: () => void; - markAsInteracted: (params?: { metadata?: GenericData }) => void; - markAsArchived: () => void; + markAsSeen: () => Promise | undefined>; + markAsInteracted: (params?: { + metadata?: GenericData; + }) => Promise | undefined>; + markAsArchived: () => Promise | undefined>; } export interface KnockGuideActivationUrlPattern