@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.
- package/CHANGELOG.md +12 -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/esm/api.mjs +1 -1
- package/dist/esm/clients/guide/client.mjs +30 -26
- package/dist/esm/clients/guide/client.mjs.map +1 -1
- package/dist/esm/clients/guide/helpers.mjs +65 -57
- package/dist/esm/clients/guide/helpers.mjs.map +1 -1
- package/dist/types/clients/guide/client.d.ts.map +1 -1
- package/dist/types/clients/guide/helpers.d.ts.map +1 -1
- package/dist/types/clients/guide/types.d.ts +2 -1
- package/dist/types/clients/guide/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/clients/guide/client.ts +9 -6
- package/src/clients/guide/helpers.ts +10 -2
- package/src/clients/guide/types.ts +3 -1
|
@@ -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;
|
|
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,
|
|
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
|
|
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":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAO/C,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC;AAEtB,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,aAAa,CAAC,QAAQ,GAAG,GAAG;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,QAAQ,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC;IAC7B,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,6BAA6B;IACrC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC;
|
|
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.
|
|
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.
|
|
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
|
|
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({
|
|
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
|
-
},
|
|
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
|
-
},
|
|
234
|
+
}, predicateDefault);
|
|
227
235
|
};
|
|
@@ -33,7 +33,9 @@ export interface GuideActivationUrlRuleData {
|
|
|
33
33
|
|
|
34
34
|
interface GuideActivationUrlPatternData {
|
|
35
35
|
directive: "allow" | "block";
|
|
36
|
-
|
|
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> {
|