@knocklabs/client 0.20.2 → 0.20.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.mjs","sources":["../../../../src/clients/guide/helpers.ts"],"sourcesContent":["import {\n GroupStage,\n GuideActivationUrlRuleData,\n GuideData,\n GuideGroupData,\n KnockGuide,\n KnockGuideActivationUrlPattern,\n SelectFilterParams,\n StoreState,\n} from \"./types\";\n\n// Extends the map class to allow having metadata on it, which is used to record\n// the guide group context for the selection result (though currently only a\n// default global group is supported).\nexport class SelectionResult<K = number, V = KnockGuide> extends Map<K, V> {\n metadata: { guideGroup: GuideGroupData } | undefined;\n\n constructor() {\n super();\n }\n}\n\nexport const formatGroupStage = (stage: GroupStage) => {\n return `status=${stage.status}, resolved=${stage.resolved}`;\n};\n\nexport const formatState = (state: StoreState) => {\n return `loc=${state.location}`;\n};\n\nexport const formatFilters = (filters: SelectFilterParams = {}) => {\n return [\n filters.key && `key=${filters.key}`,\n filters.type && `type=${filters.type}`,\n ]\n .filter((x) => x)\n .join(\", \");\n};\n\nexport const byKey = <T extends { key: string }>(items: T[]) => {\n return items.reduce((acc, item) => ({ ...acc, [item.key]: item }), {});\n};\n\nconst sortGuides = <T extends GuideData>(guides: T[]) => {\n return [...guides].sort(\n (a, b) =>\n new Date(a.inserted_at).getTime() - new Date(b.inserted_at).getTime(),\n );\n};\n\n// Default global guide group key.\nexport const DEFAULT_GROUP_KEY = \"default\";\n\n// Prefixed with a special char $ to distinguish from an actual default group.\nconst MOCK_DEFAULT_GROUP_KEY = \"$default\";\n\n// Build a notional default group to fall back on in case there is none, only\n// for safety as there should always be a default guide group created.\nexport const mockDefaultGroup = (entries: GuideData[] = []) => {\n const now = new Date();\n\n return {\n __typename: \"GuideGroup\",\n key: MOCK_DEFAULT_GROUP_KEY,\n display_sequence: sortGuides(entries).map((g) => g.key),\n display_interval: null,\n inserted_at: now.toISOString(),\n updated_at: now.toISOString(),\n } as GuideGroupData;\n};\n\nexport const findDefaultGroup = (guideGroups: GuideGroupData[]) =>\n guideGroups.find(\n (group) =>\n group.key === DEFAULT_GROUP_KEY || group.key === MOCK_DEFAULT_GROUP_KEY,\n );\n\nexport const checkStateIfThrottled = (state: StoreState) => {\n const defaultGroup = findDefaultGroup(state.guideGroups);\n const throttleWindowStartedAt =\n state.guideGroupDisplayLogs[DEFAULT_GROUP_KEY];\n\n if (\n defaultGroup &&\n defaultGroup.display_interval &&\n throttleWindowStartedAt\n ) {\n return checkTimeIfThrottled(\n throttleWindowStartedAt,\n defaultGroup.display_interval,\n );\n }\n\n // Fall back to false, though this should never happen.\n return false;\n};\n\n// Checks whether we are currently throttled (inside a \"throttle window\").\n// A throttle window opens when a user dismisses (archives) a guide, and lasts\n// for the configured display interval of the guide group used (currently only\n// the default global group).\nconst checkTimeIfThrottled = (\n throttleWindowStartedAtTs: string,\n windowDurationInSeconds: number,\n) => {\n // 1. Parse the given timestamp string into a Date object.\n // Date.parse() handles ISO 8601 strings correctly and returns milliseconds\n // since epoch. This inherently handles timezones by converting everything to\n // a universal time representation (UTC).\n const throttleWindowStartDate = new Date(throttleWindowStartedAtTs);\n\n // Check if the given throttle window start timestamp string was valid, and\n // if not disregard.\n if (isNaN(throttleWindowStartDate.getTime())) {\n return false;\n }\n\n // 2. Calculate the throttle window end time in milliseconds by adding the\n // duration to the throttle window start time.\n const throttleWindowEndInMilliseconds =\n throttleWindowStartDate.getTime() + windowDurationInSeconds * 1000;\n\n // 3. Get the current timestamp in milliseconds since epoch.\n const currentTimeInMilliseconds = new Date().getTime();\n\n // 4. Compare the current timestamp with the calculated future timestamp.\n // Both are in milliseconds since epoch (UTC), so direct comparison is\n // accurate regardless of local timezones.\n return currentTimeInMilliseconds <= throttleWindowEndInMilliseconds;\n};\n\n// Safely parse and build a new URL object.\nexport const newUrl = (location: string) => {\n try {\n return new URL(location);\n } catch {\n return undefined;\n }\n};\n\n// Evaluates whether the given location url satisfies the url rule.\nexport const evaluateUrlRule = (\n url: URL,\n urlRule: GuideActivationUrlRuleData,\n) => {\n if (urlRule.variable === \"pathname\") {\n if (urlRule.operator === \"equal_to\") {\n const argument = urlRule.argument.startsWith(\"/\")\n ? urlRule.argument\n : `/${urlRule.argument}`;\n\n return argument === url.pathname;\n }\n\n if (urlRule.operator === \"contains\") {\n return url.pathname.includes(urlRule.argument);\n }\n\n return false;\n }\n\n return false;\n};\n\nexport const predicateUrlRules = (\n url: URL,\n urlRules: GuideActivationUrlRuleData[],\n) => {\n return urlRules.reduce<boolean | undefined>((acc, urlRule) => {\n // Any matched block rule prevails so no need to evaluate further\n // as soon as there is one.\n if (acc === false) return false;\n\n // At this point we either have a matched allow rule (acc is true),\n // or no matched rule found yet (acc is undefined).\n\n switch (urlRule.directive) {\n case \"allow\": {\n // No need to evaluate more allow rules once we matched one\n // since any matched allowed rule means allow.\n if (acc === true) return true;\n\n const matched = evaluateUrlRule(url, urlRule);\n return matched ? true : undefined;\n }\n\n case \"block\": {\n // Always test block rules (unless already matched to block)\n // because they'd prevail over matched allow rules.\n const matched = evaluateUrlRule(url, urlRule);\n return matched ? false : acc;\n }\n }\n }, undefined);\n};\n\nexport const predicateUrlPatterns = (\n url: URL,\n urlPatterns: KnockGuideActivationUrlPattern[],\n) => {\n return urlPatterns.reduce<boolean | undefined>((acc, urlPattern) => {\n // Any matched block rule prevails so no need to evaluate further\n // as soon as there is one.\n if (acc === false) return false;\n\n // At this point we either have a matched allow rule (acc is true),\n // or no matched rule found yet (acc is undefined).\n\n switch (urlPattern.directive) {\n case \"allow\": {\n // No need to evaluate more allow rules once we matched one\n // since any matched allowed rule means allow.\n if (acc === true) return true;\n\n const matched = urlPattern.pattern.test(url);\n return matched ? true : undefined;\n }\n\n case \"block\": {\n // Always test block rules (unless already matched to block)\n // because they'd prevail over matched allow rules.\n const matched = urlPattern.pattern.test(url);\n return matched ? false : acc;\n }\n }\n }, undefined);\n};\n"],"names":["SelectionResult","__publicField","formatGroupStage","stage","formatState","state","formatFilters","filters","x","byKey","items","acc","item","sortGuides","guides","a","b","DEFAULT_GROUP_KEY","MOCK_DEFAULT_GROUP_KEY","mockDefaultGroup","entries","now","g","findDefaultGroup","guideGroups","group","checkStateIfThrottled","defaultGroup","throttleWindowStartedAt","checkTimeIfThrottled","throttleWindowStartedAtTs","windowDurationInSeconds","throttleWindowStartDate","throttleWindowEndInMilliseconds","newUrl","location","evaluateUrlRule","url","urlRule","predicateUrlRules","urlRules","predicateUrlPatterns","urlPatterns","urlPattern"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.mjs","sources":["../../../../src/clients/guide/helpers.ts"],"sourcesContent":["import {\n GroupStage,\n GuideActivationUrlRuleData,\n GuideData,\n GuideGroupData,\n KnockGuide,\n KnockGuideActivationUrlPattern,\n SelectFilterParams,\n StoreState,\n} from \"./types\";\n\n// Extends the map class to allow having metadata on it, which is used to record\n// the guide group context for the selection result (though currently only a\n// default global group is supported).\nexport class SelectionResult<K = number, V = KnockGuide> extends Map<K, V> {\n metadata: { guideGroup: GuideGroupData } | undefined;\n\n constructor() {\n super();\n }\n}\n\nexport const formatGroupStage = (stage: GroupStage) => {\n return `status=${stage.status}, resolved=${stage.resolved}`;\n};\n\nexport const formatState = (state: StoreState) => {\n return `loc=${state.location}`;\n};\n\nexport const formatFilters = (filters: SelectFilterParams = {}) => {\n return [\n filters.key && `key=${filters.key}`,\n filters.type && `type=${filters.type}`,\n ]\n .filter((x) => x)\n .join(\", \");\n};\n\nexport const byKey = <T extends { key: string }>(items: T[]) => {\n return items.reduce((acc, item) => ({ ...acc, [item.key]: item }), {});\n};\n\nconst sortGuides = <T extends GuideData>(guides: T[]) => {\n return [...guides].sort(\n (a, b) =>\n new Date(a.inserted_at).getTime() - new Date(b.inserted_at).getTime(),\n );\n};\n\n// Default global guide group key.\nexport const DEFAULT_GROUP_KEY = \"default\";\n\n// Prefixed with a special char $ to distinguish from an actual default group.\nconst MOCK_DEFAULT_GROUP_KEY = \"$default\";\n\n// Build a notional default group to fall back on in case there is none, only\n// for safety as there should always be a default guide group created.\nexport const mockDefaultGroup = (entries: GuideData[] = []) => {\n const now = new Date();\n\n return {\n __typename: \"GuideGroup\",\n key: MOCK_DEFAULT_GROUP_KEY,\n display_sequence: sortGuides(entries).map((g) => g.key),\n display_interval: null,\n inserted_at: now.toISOString(),\n updated_at: now.toISOString(),\n } as GuideGroupData;\n};\n\nexport const findDefaultGroup = (guideGroups: GuideGroupData[]) =>\n guideGroups.find(\n (group) =>\n group.key === DEFAULT_GROUP_KEY || group.key === MOCK_DEFAULT_GROUP_KEY,\n );\n\nexport const checkStateIfThrottled = (state: StoreState) => {\n const defaultGroup = findDefaultGroup(state.guideGroups);\n const throttleWindowStartedAt =\n state.guideGroupDisplayLogs[DEFAULT_GROUP_KEY];\n\n if (\n defaultGroup &&\n defaultGroup.display_interval &&\n throttleWindowStartedAt\n ) {\n return checkTimeIfThrottled(\n throttleWindowStartedAt,\n defaultGroup.display_interval,\n );\n }\n\n // Fall back to false, though this should never happen.\n return false;\n};\n\n// Checks whether we are currently throttled (inside a \"throttle window\").\n// A throttle window opens when a user dismisses (archives) a guide, and lasts\n// for the configured display interval of the guide group used (currently only\n// the default global group).\nconst checkTimeIfThrottled = (\n throttleWindowStartedAtTs: string,\n windowDurationInSeconds: number,\n) => {\n // 1. Parse the given timestamp string into a Date object.\n // Date.parse() handles ISO 8601 strings correctly and returns milliseconds\n // since epoch. This inherently handles timezones by converting everything to\n // a universal time representation (UTC).\n const throttleWindowStartDate = new Date(throttleWindowStartedAtTs);\n\n // Check if the given throttle window start timestamp string was valid, and\n // if not disregard.\n if (isNaN(throttleWindowStartDate.getTime())) {\n return false;\n }\n\n // 2. Calculate the throttle window end time in milliseconds by adding the\n // duration to the throttle window start time.\n const throttleWindowEndInMilliseconds =\n throttleWindowStartDate.getTime() + windowDurationInSeconds * 1000;\n\n // 3. Get the current timestamp in milliseconds since epoch.\n const currentTimeInMilliseconds = new Date().getTime();\n\n // 4. Compare the current timestamp with the calculated future timestamp.\n // Both are in milliseconds since epoch (UTC), so direct comparison is\n // accurate regardless of local timezones.\n return currentTimeInMilliseconds <= throttleWindowEndInMilliseconds;\n};\n\n// Safely parse and build a new URL object.\nexport const newUrl = (location: string) => {\n try {\n return new URL(location);\n } catch {\n return undefined;\n }\n};\n\n// Evaluates whether the given location url satisfies the url rule.\nexport const evaluateUrlRule = (\n url: URL,\n urlRule: GuideActivationUrlRuleData,\n) => {\n if (urlRule.variable === \"pathname\") {\n if (urlRule.operator === \"equal_to\") {\n const argument = urlRule.argument.startsWith(\"/\")\n ? urlRule.argument\n : `/${urlRule.argument}`;\n\n return argument === url.pathname;\n }\n\n if (urlRule.operator === \"contains\") {\n return url.pathname.includes(urlRule.argument);\n }\n\n return false;\n }\n\n return false;\n};\n\nexport const predicateUrlRules = (\n url: URL,\n urlRules: GuideActivationUrlRuleData[],\n) => {\n const hasBlockRulesOnly = urlRules.every((r) => r.directive === \"block\");\n const predicateDefault = hasBlockRulesOnly ? true : undefined;\n\n return urlRules.reduce<boolean | undefined>((acc, urlRule) => {\n // Any matched block rule prevails so no need to evaluate further\n // as soon as there is one.\n if (acc === false) return false;\n\n // At this point we either have a matched allow rule (acc is true),\n // or no matched rule found yet (acc is undefined).\n\n switch (urlRule.directive) {\n case \"allow\": {\n // No need to evaluate more allow rules once we matched one\n // since any matched allowed rule means allow.\n if (acc === true) return true;\n\n const matched = evaluateUrlRule(url, urlRule);\n return matched ? true : undefined;\n }\n\n case \"block\": {\n // Always test block rules (unless already matched to block)\n // because they'd prevail over matched allow rules.\n const matched = evaluateUrlRule(url, urlRule);\n return matched ? false : acc;\n }\n }\n }, predicateDefault);\n};\n\nexport const predicateUrlPatterns = (\n url: URL,\n urlPatterns: KnockGuideActivationUrlPattern[],\n) => {\n const hasBlockPatternsOnly = urlPatterns.every(\n (r) => r.directive === \"block\",\n );\n const predicateDefault = hasBlockPatternsOnly ? true : undefined;\n\n return urlPatterns.reduce<boolean | undefined>((acc, urlPattern) => {\n // Any matched block rule prevails so no need to evaluate further\n // as soon as there is one.\n if (acc === false) return false;\n\n // At this point we either have a matched allow rule (acc is true),\n // or no matched rule found yet (acc is undefined).\n\n switch (urlPattern.directive) {\n case \"allow\": {\n // No need to evaluate more allow rules once we matched one\n // since any matched allowed rule means allow.\n if (acc === true) return true;\n\n const matched = urlPattern.pattern.test(url);\n return matched ? true : undefined;\n }\n\n case \"block\": {\n // Always test block rules (unless already matched to block)\n // because they'd prevail over matched allow rules.\n const matched = urlPattern.pattern.test(url);\n return matched ? false : acc;\n }\n }\n }, predicateDefault);\n};\n"],"names":["SelectionResult","__publicField","formatGroupStage","stage","formatState","state","formatFilters","filters","x","byKey","items","acc","item","sortGuides","guides","a","b","DEFAULT_GROUP_KEY","MOCK_DEFAULT_GROUP_KEY","mockDefaultGroup","entries","now","g","findDefaultGroup","guideGroups","group","checkStateIfThrottled","defaultGroup","throttleWindowStartedAt","checkTimeIfThrottled","throttleWindowStartedAtTs","windowDurationInSeconds","throttleWindowStartDate","throttleWindowEndInMilliseconds","newUrl","location","evaluateUrlRule","url","urlRule","predicateUrlRules","urlRules","predicateDefault","predicateUrlPatterns","urlPatterns","urlPattern"],"mappings":"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"}
@@ -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;AAgBhC,OAAO,EACL,GAAG,EACH,eAAe,EAMf,SAAS,EAMT,aAAa,EAEb,UAAU,EACV,cAAc,EAKd,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAEhB,UAAU,EACV,YAAY,EACb,MAAM,SAAS,CAAC;AAcjB,eAAO,MAAM,kBAAkB;;;CAG9B,CAAC;AAWF,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,GAAG,SAAS,GAAG,IAAI,WACrC,CAAC;AAyK/B,qBAAa,gBAAgB;IA6BzB,QAAQ,CAAC,KAAK,EAAE,KAAK;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,QAAQ,CAAC,YAAY,EAAE,YAAY;IACnC,QAAQ,CAAC,OAAO,EAAE,eAAe;IA/B5B,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,UAAU,CAAC,CAAC;IAGnE,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAOtB;IACF,OAAO,CAAC,mBAAmB,CAAK;IAGhC,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,cAAc,CAAsC;IAK5D,OAAO,CAAC,KAAK,CAAyB;IAEtC,OAAO,CAAC,iBAAiB,CAA6C;gBAG3D,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,MAAM,EACjB,YAAY,GAAE,YAAiB,EAC/B,OAAO,GAAE,eAAoB;IAyCxC,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,oBAAoB;IAO5B,OAAO;IAOD,KAAK,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,iBAAiB,CAAA;KAAE;IAkDlD,SAAS;IAuDT,OAAO,CAAC,sBAAsB;IAc9B,WAAW;IAcX,OAAO,CAAC,iBAAiB;IA2BzB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,GAAE,OAAO,CAAC,UAAU,CAAM;IAsBpE,aAAa;IAuCb,YAAY,CAAC,CAAC,GAAG,GAAG,EAClB,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,kBAAuB,EAChC,IAAI,GAAE,gBAAqB,GAC1B,UAAU,CAAC,CAAC,CAAC,EAAE;IA6BlB,WAAW,CAAC,CAAC,GAAG,GAAG,EACjB,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,kBAAuB,EAChC,IAAI,GAAE,eAAoB,GACzB,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS;IAmG5B,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,sBAAsB;IAuC9B,OAAO,CAAC,qBAAqB;IA0B7B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,aAAa;IAoBf,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa;IA0BhD,gBAAgB,CACpB,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,aAAa,EACnB,QAAQ,CAAC,EAAE,WAAW;IA0BlB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa;IA6B1D,OAAO,CAAC,SAAS;IAuDjB,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,mBAAmB;IAgD3B,OAAO,CAAC,8BAA8B;IActC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,sBAAsB;IAiC9B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,oBAAoB,CA6B1B;IAIF,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,kCAAkC;IAyC1C,kCAAkC;CAgBnC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/clients/guide/client.ts"],"names":[],"mappings":"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"}
@@ -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,UAAU,EACV,8BAA8B,EAC9B,kBAAkB,EAClB,UAAU,EACX,MAAM,SAAS,CAAC;AAKjB,qBAAa,eAAe,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,UAAU,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACxE,QAAQ,EAAE;QAAE,UAAU,EAAE,cAAc,CAAA;KAAE,GAAG,SAAS,CAAC;;CAKtD;AAED,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,YAkBtD,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,wBA4BvC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,KAAK,GAAG,EACR,aAAa,8BAA8B,EAAE,wBA4B9C,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;AAKjB,qBAAa,eAAe,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,UAAU,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACxE,QAAQ,EAAE;QAAE,UAAU,EAAE,cAAc,CAAA;KAAE,GAAG,SAAS,CAAC;;CAKtD;AAED,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,YAkBtD,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"}
@@ -23,7 +23,8 @@ export interface GuideActivationUrlRuleData {
23
23
  }
24
24
  interface GuideActivationUrlPatternData {
25
25
  directive: "allow" | "block";
26
- pathname: string;
26
+ pathname?: string;
27
+ search?: string;
27
28
  }
28
29
  export interface GuideData<TContent = Any> {
29
30
  __typename: "Guide";
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knocklabs/client",
3
- "version": "0.20.2",
3
+ "version": "0.20.4",
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",
@@ -68,7 +68,7 @@
68
68
  "vitest": "^3.1.1"
69
69
  },
70
70
  "dependencies": {
71
- "@babel/runtime": "^7.27.1",
71
+ "@babel/runtime": "^7.28.6",
72
72
  "@knocklabs/types": "^0.1.5",
73
73
  "@tanstack/store": "^0.7.2",
74
74
  "@types/phoenix": "^1.6.6",
@@ -83,7 +83,7 @@ export const guidesApiRootPath = (userId: string | undefined | null) =>
83
83
  // Detect debug params from URL or local storage
84
84
  const detectDebugParams = (): DebugState => {
85
85
  const win = checkForWindow();
86
- if (!win) {
86
+ if (!win || !win.location) {
87
87
  return { forcedGuideKey: null, previewSessionId: null };
88
88
  }
89
89
 
@@ -287,7 +287,7 @@ export class KnockGuideClient {
287
287
  } = options;
288
288
  const win = checkForWindow();
289
289
 
290
- const location = trackLocationFromWindow ? win?.location.href : undefined;
290
+ const location = trackLocationFromWindow ? win?.location?.href : undefined;
291
291
 
292
292
  const debug = detectDebugParams();
293
293
 
@@ -552,7 +552,7 @@ export class KnockGuideClient {
552
552
 
553
553
  // Remove URL query params if present
554
554
  // Only update the URL if params need to be cleared to avoid unnecessary navigations
555
- if (win) {
555
+ if (win?.location) {
556
556
  const url = new URL(win.location.href);
557
557
  if (
558
558
  url.searchParams.has(DEBUG_QUERY_PARAMS.GUIDE_KEY) ||
@@ -975,7 +975,10 @@ export class KnockGuideClient {
975
975
  remoteGuide.activation_url_patterns.map((rule) => {
976
976
  return {
977
977
  ...rule,
978
- pattern: new URLPattern({ pathname: rule.pathname }),
978
+ pattern: new URLPattern({
979
+ pathname: rule.pathname ?? undefined,
980
+ search: rule.search ?? undefined,
981
+ }),
979
982
  };
980
983
  });
981
984
 
@@ -1192,7 +1195,7 @@ export class KnockGuideClient {
1192
1195
 
1193
1196
  private listenForLocationChangesFromWindow() {
1194
1197
  const win = checkForWindow();
1195
- if (win?.history) {
1198
+ if (win?.history && win?.addEventListener) {
1196
1199
  // 1. Listen for browser back/forward button clicks.
1197
1200
  win.addEventListener("popstate", this.handleLocationChange);
1198
1201
 
@@ -1233,7 +1236,7 @@ export class KnockGuideClient {
1233
1236
 
1234
1237
  removeLocationChangeEventListeners() {
1235
1238
  const win = checkForWindow();
1236
- if (!win?.history) return;
1239
+ if (!win?.history || !win?.removeEventListener) return;
1237
1240
 
1238
1241
  win.removeEventListener("popstate", this.handleLocationChange);
1239
1242
  win.removeEventListener("hashchange", this.handleLocationChange);
@@ -166,6 +166,9 @@ export const predicateUrlRules = (
166
166
  url: URL,
167
167
  urlRules: GuideActivationUrlRuleData[],
168
168
  ) => {
169
+ const hasBlockRulesOnly = urlRules.every((r) => r.directive === "block");
170
+ const predicateDefault = hasBlockRulesOnly ? true : undefined;
171
+
169
172
  return urlRules.reduce<boolean | undefined>((acc, urlRule) => {
170
173
  // Any matched block rule prevails so no need to evaluate further
171
174
  // as soon as there is one.
@@ -191,13 +194,18 @@ export const predicateUrlRules = (
191
194
  return matched ? false : acc;
192
195
  }
193
196
  }
194
- }, undefined);
197
+ }, predicateDefault);
195
198
  };
196
199
 
197
200
  export const predicateUrlPatterns = (
198
201
  url: URL,
199
202
  urlPatterns: KnockGuideActivationUrlPattern[],
200
203
  ) => {
204
+ const hasBlockPatternsOnly = urlPatterns.every(
205
+ (r) => r.directive === "block",
206
+ );
207
+ const predicateDefault = hasBlockPatternsOnly ? true : undefined;
208
+
201
209
  return urlPatterns.reduce<boolean | undefined>((acc, urlPattern) => {
202
210
  // Any matched block rule prevails so no need to evaluate further
203
211
  // as soon as there is one.
@@ -223,5 +231,5 @@ export const predicateUrlPatterns = (
223
231
  return matched ? false : acc;
224
232
  }
225
233
  }
226
- }, undefined);
234
+ }, predicateDefault);
227
235
  };
@@ -33,7 +33,9 @@ export interface GuideActivationUrlRuleData {
33
33
 
34
34
  interface GuideActivationUrlPatternData {
35
35
  directive: "allow" | "block";
36
- pathname: string;
36
+ // At least one part should be present.
37
+ pathname?: string;
38
+ search?: string;
37
39
  }
38
40
 
39
41
  export interface GuideData<TContent = Any> {