@brainfish-ai/components 0.20.5 → 0.21.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.
Files changed (52) hide show
  1. package/dist/badge.d.ts +1 -1
  2. package/dist/chat-search.d.ts +12 -1
  3. package/dist/convos.d.ts +1 -1
  4. package/dist/esm/chunks/{ChatSearch.Bad4C07E.js → ChatSearch.CNS7ZOgA.js} +13 -3
  5. package/dist/esm/chunks/ChatSearch.CNS7ZOgA.js.map +1 -0
  6. package/dist/esm/chunks/FormattedMessage.ieoe4jPf.js.map +1 -1
  7. package/dist/esm/chunks/{chart.DGCX9VIn.js → chart.CTzWtshH.js} +40 -61
  8. package/dist/esm/chunks/chart.CTzWtshH.js.map +1 -0
  9. package/dist/esm/chunks/combobox.DNYCWyub.js.map +1 -1
  10. package/dist/esm/chunks/font-picker.DX1mER3H.js.map +1 -1
  11. package/dist/esm/chunks/hooks.CKojclfe.js.map +1 -1
  12. package/dist/esm/chunks/layout.C3eMxnqI.js.map +1 -1
  13. package/dist/esm/chunks/review-list.jCfkezEr.js +72 -0
  14. package/dist/esm/chunks/review-list.jCfkezEr.js.map +1 -0
  15. package/dist/esm/chunks/status-badge.DkPNh30S.js +952 -0
  16. package/dist/esm/chunks/status-badge.DkPNh30S.js.map +1 -0
  17. package/dist/esm/components/chart-area-linear.js +1 -1
  18. package/dist/esm/components/chart-radial-stacked.js +1 -1
  19. package/dist/esm/components/chat-search.js +1 -1
  20. package/dist/esm/components/convos.js +7 -31
  21. package/dist/esm/components/convos.js.map +1 -1
  22. package/dist/esm/components/ui/alert-dialog.js +22 -54
  23. package/dist/esm/components/ui/alert-dialog.js.map +1 -1
  24. package/dist/esm/components/ui/alert.js +47 -64
  25. package/dist/esm/components/ui/alert.js.map +1 -1
  26. package/dist/esm/components/ui/badge.js +1 -1
  27. package/dist/esm/components/ui/badge.js.map +1 -1
  28. package/dist/esm/components/ui/calendar.js +1 -6
  29. package/dist/esm/components/ui/calendar.js.map +1 -1
  30. package/dist/esm/components/ui/command.js +19 -42
  31. package/dist/esm/components/ui/command.js.map +1 -1
  32. package/dist/esm/components/ui/dialog.js +13 -40
  33. package/dist/esm/components/ui/dialog.js.map +1 -1
  34. package/dist/esm/components/ui/dropdown-menu.js +5 -25
  35. package/dist/esm/components/ui/dropdown-menu.js.map +1 -1
  36. package/dist/esm/components/ui/item.js +8 -46
  37. package/dist/esm/components/ui/item.js.map +1 -1
  38. package/dist/esm/components/ui/sheet.js +17 -53
  39. package/dist/esm/components/ui/sheet.js.map +1 -1
  40. package/dist/esm/global.css +1 -1
  41. package/dist/esm/index.js +2 -1
  42. package/dist/esm/index.js.map +1 -1
  43. package/dist/esm/scenes/knowledge-review/review-list.js +2 -0
  44. package/dist/esm/scenes/knowledge-review/review-list.js.map +1 -0
  45. package/dist/index.d.ts +65 -11
  46. package/dist/item.d.ts +9 -9
  47. package/dist/review-list.d.ts +47 -0
  48. package/dist/scenes/knowledge-review/review-list.d.ts +2 -0
  49. package/dist/stats.html +1 -1
  50. package/package.json +9 -17
  51. package/dist/esm/chunks/ChatSearch.Bad4C07E.js.map +0 -1
  52. package/dist/esm/chunks/chart.DGCX9VIn.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatSearch.CNS7ZOgA.js","sources":["../../../src/components/chat-search/Suggestions.tsx","../../../../../node_modules/ajv/dist/compile/codegen/code.js","../../../../../node_modules/ajv/dist/compile/codegen/scope.js","../../../../../node_modules/ajv/dist/compile/codegen/index.js","../../../../../node_modules/ajv/dist/compile/util.js","../../../../../node_modules/ajv/dist/compile/names.js","../../../../../node_modules/ajv/dist/compile/errors.js","../../../../../node_modules/ajv/dist/compile/validate/boolSchema.js","../../../../../node_modules/ajv/dist/compile/rules.js","../../../../../node_modules/ajv/dist/compile/validate/applicability.js","../../../../../node_modules/ajv/dist/compile/validate/dataType.js","../../../../../node_modules/ajv/dist/compile/validate/defaults.js","../../../../../node_modules/ajv/dist/vocabularies/code.js","../../../../../node_modules/ajv/dist/compile/validate/keyword.js","../../../../../node_modules/ajv/dist/compile/validate/subschema.js","../../../../../node_modules/fast-deep-equal/index.js","../../../../../node_modules/json-schema-traverse/index.js","../../../../../node_modules/ajv/dist/compile/resolve.js","../../../../../node_modules/ajv/dist/compile/validate/index.js","../../../../../node_modules/ajv-errors/dist/index.js","../../../../../node_modules/@hookform/resolvers/ajv/dist/ajv.mjs","../../../src/components/chat-search/blocks/ActionInputForm.tsx","../../../src/components/chat-search/blocks/ActionButtons.tsx","../../../src/components/chat-search/blocks/utils.ts","../../../src/components/chat-search/hooks/useAnswerList.ts","../../../src/components/chat-search/hooks/useConversationId.ts","../../../src/components/chat-search/ChatSearchContext.tsx","../../../src/components/chat-search/blocks/MarkdownText.tsx","../../../src/components/chat-search/AnswerBlock.tsx","../../../src/components/chat-search/types.ts","../../../src/components/chat-search/NextBestActions.tsx","../../../src/components/chat-search/helpers/nextBestActions.ts","../../../src/components/chat-search/AnswerActions.tsx","../../../src/components/chat-search/hooks/useIsChatSearchDirty.ts","../../../src/components/chat-search/hooks/useScrollManager.ts","../../../src/components/chat-search/hooks/useConversationLoader.ts","../../../src/components/chat-search/hooks/useSubscriptionManager.ts","../../../src/components/chat-search/hooks/useIncludePage.ts","../../../src/components/chat-search/Answer.tsx","../../../src/components/chat-search/FollowUpQuestions.tsx","../../../src/components/chat-search/TimelineNavigation.tsx","../../../src/components/chat-search/ScrollToBottomArrow.tsx","../../../src/components/chat-search/IncludePageToggle.tsx","../../../src/lib/feature-flags.tsx","../../../src/components/chat-search/PrimarySearch.tsx","../../../src/components/chat-search/FollowUpSearchBar.tsx","../../../src/components/chat-search/Header.tsx","../../../src/components/chat-search/text-config.ts","../../../src/components/chat-search/helpers/buildConversationContext.ts","../../../src/components/chat-search/helpers/excuteClientAction.ts","../../../src/components/chat-search/helpers/cancelStreamReader.ts","../../../src/components/chat-search/LoadingConversation.tsx","../../../src/components/chat-search/ChatSearch.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../ui/tooltip';\nimport { Button } from '../ui/button';\nimport { Suggestion } from './types';\n\ninterface SuggestionsProps {\n suggestions: Suggestion[];\n onQuestionClick: (suggestion: Suggestion) => void;\n title?: string;\n}\n\nexport function Suggestions({ suggestions, onQuestionClick, title = 'Suggested questions' }: SuggestionsProps) {\n if (!suggestions || suggestions.length === 0) return null;\n\n return (\n <div className=\"w-full p-3 md:p-0\" data-name=\"Suggestions\">\n <h3 className=\"text-base font-medium mb-4 text-foreground\">{title}</h3>\n <div className=\"flex flex-wrap gap-2\">\n {suggestions.map((suggestion) => (\n <Button\n key={suggestion.id}\n onClick={() => onQuestionClick(suggestion)}\n variant=\"outline\"\n className=\"border-border font-normal whitespace-normal h-auto text-left\"\n >\n {suggestion.messageCount !== undefined && (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <span className=\"bg-gray-100 text-gray-600 px-2 py-0.5 rounded-full text-xs min-w-[20px] border flex items-center justify-center border-border\">\n {suggestion.messageCount}\n </span>\n </TooltipTrigger>\n <TooltipContent>\n <p>{suggestion.messageCount} messages in this conversation</p>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )}\n <span className=\"\">{suggestion.question}</span>\n </Button>\n ))}\n </div>\n </div>\n );\n}\n\nexport default Suggestions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [strs[0]];\n let i = 0;\n while (i < args.length) {\n addCodeArg(code, args[i]);\n code.push(strs[++i]);\n }\n return new _Code(code);\n}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [safeStringify(strs[0])];\n let i = 0;\n while (i < args.length) {\n expr.push(plus);\n addCodeArg(expr, args[i]);\n expr.push(plus, safeStringify(strs[++i]));\n }\n optimize(expr);\n return new _Code(expr);\n}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\n let i = 1;\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1]);\n if (res !== undefined) {\n expr.splice(i - 1, 3, res);\n continue;\n }\n expr[i++] = \"+\";\n }\n i++;\n }\n}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n return new _Code(`${key}`);\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i];\n if (n.optimizeNames(names, constants))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n return this.nodes; // else is ignored here\n let e = this.else;\n if (e) {\n const ns = e.optimizeNodes();\n e = this.else = Array.isArray(ns) ? new Else(ns) : ns;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\n const name = this._extScope.value(prefixOrName, value);\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());\n vs.add(name);\n return name;\n }\n getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n (0, code_1.addCodeArg)(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n this.var(name, (0, code_1._) `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);\n }\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const node = new Try();\n this._blockNode(node);\n this.code(tryBody);\n if (catchCode) {\n const error = this.name(\"e\");\n this._currNode = node.catch = new Catch(error);\n catchCode(error);\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally();\n this.code(finallyCode);\n }\n return this._endBlockNode(Catch, Finally);\n }\n // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const toClose = this._nodes.length - len;\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);\n }\n this._nodes.length = len;\n return this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\n const n = this._currNode;\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop();\n return this;\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`);\n }\n _elseNode(node) {\n const n = this._currNode;\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"');\n }\n this._currNode = n.else = node;\n return this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strictSchema)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return (0, codegen_1._) `${schema}`;\n }\n return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, (0, codegen_1._) `${to} || {}`);\n setEvaluated(gen, to, from);\n }\n }),\n mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? (0, codegen_1._) `\"/\" + ${dataProp}`\n : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"./codegen\");\nconst names = {\n // validation function arguments\n data: new codegen_1.Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new codegen_1.Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new codegen_1.Name(\"instancePath\"),\n parentData: new codegen_1.Name(\"parentData\"),\n parentDataProperty: new codegen_1.Name(\"parentDataProperty\"),\n rootData: new codegen_1.Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new codegen_1.Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new codegen_1.Name(\"vErrors\"), // null or array of validation errors\n errors: new codegen_1.Name(\"errors\"), // counter of validation errors\n this: new codegen_1.Name(\"this\"),\n // \"globals\"\n self: new codegen_1.Name(\"self\"),\n scope: new codegen_1.Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new codegen_1.Name(\"json\"),\n jsonPos: new codegen_1.Name(\"jsonPos\"),\n jsonLen: new codegen_1.Name(\"jsonLen\"),\n jsonPart: new codegen_1.Name(\"jsonPart\"),\n};\nexports.default = names;\n//# sourceMappingURL=names.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst util_1 = require(\"./util\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n message: ({ keyword }) => (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n gen.assign((0, codegen_1._) `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n const { createErrors } = cxt.it;\n if (createErrors === false)\n return (0, codegen_1._) `{}`;\n return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n const { gen, it } = cxt;\n const keyValues = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ];\n extraErrorProps(cxt, error, keyValues);\n return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n const instPath = instancePath\n ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n : errorPath;\n return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n if (schemaPath) {\n schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n }\n return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n const { keyword, data, schemaValue, it } = cxt;\n const { opts, propertyName, topSchemaRef, schemaPath } = it;\n keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n const { gen, schema, validateName } = it;\n if (schema === false) {\n falseSchemaError(it, false);\n }\n else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(names_1.default.data);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, null);\n gen.return(true);\n }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n const { gen, schema } = it;\n if (schema === false) {\n gen.var(valid, false); // TODO var\n falseSchemaError(it);\n }\n else {\n gen.var(valid, true); // TODO var\n }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n const { gen, data } = it;\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n };\n (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n const groups = {\n number: { type: \"number\", rules: [] },\n string: { type: \"string\", rules: [] },\n array: { type: \"array\", rules: [] },\n object: { type: \"object\", rules: [] },\n };\n return {\n types: { ...groups, integer: true, boolean: true, null: true },\n rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],\n post: { rules: [] },\n all: {},\n keywords: {},\n };\n}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\n const { properties, items } = it.schema;\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default);\n }\n }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n if (compositeRule) {\n (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = (0, codegen_1._) `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\n const { gen, keyword, schema, parentSchema, it } = cxt;\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it);\n const schemaRef = useKeyword(gen, keyword, macroSchema);\n if (it.opts.validateSchema !== false)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsyncKeyword(it, def);\n const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;\n const validateRef = useKeyword(gen, keyword, validate);\n const valid = gen.let(\"valid\");\n cxt.block$data(valid, validateKeyword);\n cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n (0, errors_1.extendErrors)(cxt);\n }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")));\n}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\");\n }\n const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = void 0;\nconst util_1 = require(\"./util\");\nconst equal = require(\"fast-deep-equal\");\nconst traverse = require(\"json-schema-traverse\");\n// TODO refactor to use keyword definitions\nconst SIMPLE_INLINED = new Set([\n \"type\",\n \"format\",\n \"pattern\",\n \"maxLength\",\n \"minLength\",\n \"maxProperties\",\n \"minProperties\",\n \"maxItems\",\n \"minItems\",\n \"maximum\",\n \"minimum\",\n \"uniqueItems\",\n \"multipleOf\",\n \"required\",\n \"enum\",\n \"const\",\n]);\nfunction inlineRef(schema, limit = true) {\n if (typeof schema == \"boolean\")\n return true;\n if (limit === true)\n return !hasRef(schema);\n if (!limit)\n return false;\n return countKeys(schema) <= limit;\n}\nexports.inlineRef = inlineRef;\nconst REF_KEYWORDS = new Set([\n \"$ref\",\n \"$recursiveRef\",\n \"$recursiveAnchor\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n]);\nfunction hasRef(schema) {\n for (const key in schema) {\n if (REF_KEYWORDS.has(key))\n return true;\n const sch = schema[key];\n if (Array.isArray(sch) && sch.some(hasRef))\n return true;\n if (typeof sch == \"object\" && hasRef(sch))\n return true;\n }\n return false;\n}\nfunction countKeys(schema) {\n let count = 0;\n for (const key in schema) {\n if (key === \"$ref\")\n return Infinity;\n count++;\n if (SIMPLE_INLINED.has(key))\n continue;\n if (typeof schema[key] == \"object\") {\n (0, util_1.eachItem)(schema[key], (sch) => (count += countKeys(sch)));\n }\n if (count === Infinity)\n return Infinity;\n }\n return count;\n}\nfunction getFullPath(resolver, id = \"\", normalize) {\n if (normalize !== false)\n id = normalizeId(id);\n const p = resolver.parse(id);\n return _getFullPath(resolver, p);\n}\nexports.getFullPath = getFullPath;\nfunction _getFullPath(resolver, p) {\n const serialized = resolver.serialize(p);\n return serialized.split(\"#\")[0] + \"#\";\n}\nexports._getFullPath = _getFullPath;\nconst TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n}\nexports.normalizeId = normalizeId;\nfunction resolveUrl(resolver, baseId, id) {\n id = normalizeId(id);\n return resolver.resolve(baseId, id);\n}\nexports.resolveUrl = resolveUrl;\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i;\nfunction getSchemaRefs(schema, baseId) {\n if (typeof schema == \"boolean\")\n return {};\n const { schemaId, uriResolver } = this.opts;\n const schId = normalizeId(schema[schemaId] || baseId);\n const baseIds = { \"\": schId };\n const pathPrefix = getFullPath(uriResolver, schId, false);\n const localRefs = {};\n const schemaRefs = new Set();\n traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined)\n return;\n const fullPath = pathPrefix + jsonPtr;\n let innerBaseId = baseIds[parentJsonPtr];\n if (typeof sch[schemaId] == \"string\")\n innerBaseId = addRef.call(this, sch[schemaId]);\n addAnchor.call(this, sch.$anchor);\n addAnchor.call(this, sch.$dynamicAnchor);\n baseIds[jsonPtr] = innerBaseId;\n function addRef(ref) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve;\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref);\n if (schemaRefs.has(ref))\n throw ambiguos(ref);\n schemaRefs.add(ref);\n let schOrRef = this.refs[ref];\n if (typeof schOrRef == \"string\")\n schOrRef = this.refs[schOrRef];\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref);\n }\n else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref);\n localRefs[ref] = sch;\n }\n else {\n this.refs[ref] = fullPath;\n }\n }\n return ref;\n }\n function addAnchor(anchor) {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor))\n throw new Error(`invalid anchor \"${anchor}\"`);\n addRef.call(this, `#${anchor}`);\n }\n }\n });\n return localRefs;\n function checkAmbiguosRef(sch1, sch2, ref) {\n if (sch2 !== undefined && !equal(sch1, sch2))\n throw ambiguos(ref);\n }\n function ambiguos(ref) {\n return new Error(`reference \"${ref}\" resolves to more than one schema`);\n }\n}\nexports.getSchemaRefs = getSchemaRefs;\n//# sourceMappingURL=resolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst ajv_1 = require(\"ajv\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst code_1 = require(\"ajv/dist/compile/codegen/code\");\nconst validate_1 = require(\"ajv/dist/compile/validate\");\nconst errors_1 = require(\"ajv/dist/compile/errors\");\nconst names_1 = require(\"ajv/dist/compile/names\");\nconst keyword = \"errorMessage\";\nconst used = new ajv_1.Name(\"emUsed\");\nconst KEYWORD_PROPERTY_PARAMS = {\n required: \"missingProperty\",\n dependencies: \"property\",\n dependentRequired: \"property\",\n};\nconst INTERPOLATION = /\\$\\{[^}]+\\}/;\nconst INTERPOLATION_REPLACE = /\\$\\{([^}]+)\\}/g;\nconst EMPTY_STR = /^\"\"\\s*\\+\\s*|\\s*\\+\\s*\"\"$/g;\nfunction errorMessage(options) {\n return {\n keyword,\n schemaType: [\"string\", \"object\"],\n post: true,\n code(cxt) {\n const { gen, data, schema, schemaValue, it } = cxt;\n if (it.createErrors === false)\n return;\n const sch = schema;\n const instancePath = codegen_1.strConcat(names_1.default.instancePath, it.errorPath);\n gen.if(ajv_1._ `${names_1.default.errors} > 0`, () => {\n if (typeof sch == \"object\") {\n const [kwdPropErrors, kwdErrors] = keywordErrorsConfig(sch);\n if (kwdErrors)\n processKeywordErrors(kwdErrors);\n if (kwdPropErrors)\n processKeywordPropErrors(kwdPropErrors);\n processChildErrors(childErrorsConfig(sch));\n }\n const schMessage = typeof sch == \"string\" ? sch : sch._;\n if (schMessage)\n processAllErrors(schMessage);\n if (!options.keepErrors)\n removeUsedErrors();\n });\n function childErrorsConfig({ properties, items }) {\n const errors = {};\n if (properties) {\n errors.props = {};\n for (const p in properties)\n errors.props[p] = [];\n }\n if (items) {\n errors.items = {};\n for (let i = 0; i < items.length; i++)\n errors.items[i] = [];\n }\n return errors;\n }\n function keywordErrorsConfig(emSchema) {\n let propErrors;\n let errors;\n for (const k in emSchema) {\n if (k === \"properties\" || k === \"items\")\n continue;\n const kwdSch = emSchema[k];\n if (typeof kwdSch == \"object\") {\n propErrors || (propErrors = {});\n const errMap = (propErrors[k] = {});\n for (const p in kwdSch)\n errMap[p] = [];\n }\n else {\n errors || (errors = {});\n errors[k] = [];\n }\n }\n return [propErrors, errors];\n }\n function processKeywordErrors(kwdErrors) {\n const kwdErrs = gen.const(\"emErrors\", ajv_1.stringify(kwdErrors));\n const templates = gen.const(\"templates\", getTemplatesCode(kwdErrors, schema));\n gen.forOf(\"err\", names_1.default.vErrors, (err) => gen.if(matchKeywordError(err, kwdErrs), () => gen.code(ajv_1._ `${kwdErrs}[${err}.keyword].push(${err})`).assign(ajv_1._ `${err}.${used}`, true)));\n const { singleError } = options;\n if (singleError) {\n const message = gen.let(\"message\", ajv_1._ `\"\"`);\n const paramsErrors = gen.let(\"paramsErrors\", ajv_1._ `[]`);\n loopErrors((key) => {\n gen.if(message, () => gen.code(ajv_1._ `${message} += ${typeof singleError == \"string\" ? singleError : \";\"}`));\n gen.code(ajv_1._ `${message} += ${errMessage(key)}`);\n gen.assign(paramsErrors, ajv_1._ `${paramsErrors}.concat(${kwdErrs}[${key}])`);\n });\n errors_1.reportError(cxt, { message, params: ajv_1._ `{errors: ${paramsErrors}}` });\n }\n else {\n loopErrors((key) => errors_1.reportError(cxt, {\n message: errMessage(key),\n params: ajv_1._ `{errors: ${kwdErrs}[${key}]}`,\n }));\n }\n function loopErrors(body) {\n gen.forIn(\"key\", kwdErrs, (key) => gen.if(ajv_1._ `${kwdErrs}[${key}].length`, () => body(key)));\n }\n function errMessage(key) {\n return ajv_1._ `${key} in ${templates} ? ${templates}[${key}]() : ${schemaValue}[${key}]`;\n }\n }\n function processKeywordPropErrors(kwdPropErrors) {\n const kwdErrs = gen.const(\"emErrors\", ajv_1.stringify(kwdPropErrors));\n const templatesCode = [];\n for (const k in kwdPropErrors) {\n templatesCode.push([\n k,\n getTemplatesCode(kwdPropErrors[k], schema[k]),\n ]);\n }\n const templates = gen.const(\"templates\", gen.object(...templatesCode));\n const kwdPropParams = gen.scopeValue(\"obj\", {\n ref: KEYWORD_PROPERTY_PARAMS,\n code: ajv_1.stringify(KEYWORD_PROPERTY_PARAMS),\n });\n const propParam = gen.let(\"emPropParams\");\n const paramsErrors = gen.let(\"emParamsErrors\");\n gen.forOf(\"err\", names_1.default.vErrors, (err) => gen.if(matchKeywordError(err, kwdErrs), () => {\n gen.assign(propParam, ajv_1._ `${kwdPropParams}[${err}.keyword]`);\n gen.assign(paramsErrors, ajv_1._ `${kwdErrs}[${err}.keyword][${err}.params[${propParam}]]`);\n gen.if(paramsErrors, () => gen.code(ajv_1._ `${paramsErrors}.push(${err})`).assign(ajv_1._ `${err}.${used}`, true));\n }));\n gen.forIn(\"key\", kwdErrs, (key) => gen.forIn(\"keyProp\", ajv_1._ `${kwdErrs}[${key}]`, (keyProp) => {\n gen.assign(paramsErrors, ajv_1._ `${kwdErrs}[${key}][${keyProp}]`);\n gen.if(ajv_1._ `${paramsErrors}.length`, () => {\n const tmpl = gen.const(\"tmpl\", ajv_1._ `${templates}[${key}] && ${templates}[${key}][${keyProp}]`);\n errors_1.reportError(cxt, {\n message: ajv_1._ `${tmpl} ? ${tmpl}() : ${schemaValue}[${key}][${keyProp}]`,\n params: ajv_1._ `{errors: ${paramsErrors}}`,\n });\n });\n }));\n }\n function processChildErrors(childErrors) {\n const { props, items } = childErrors;\n if (!props && !items)\n return;\n const isObj = ajv_1._ `typeof ${data} == \"object\"`;\n const isArr = ajv_1._ `Array.isArray(${data})`;\n const childErrs = gen.let(\"emErrors\");\n let childKwd;\n let childProp;\n const templates = gen.let(\"templates\");\n if (props && items) {\n childKwd = gen.let(\"emChildKwd\");\n gen.if(isObj);\n gen.if(isArr, () => {\n init(items, schema.items);\n gen.assign(childKwd, ajv_1.str `items`);\n }, () => {\n init(props, schema.properties);\n gen.assign(childKwd, ajv_1.str `properties`);\n });\n childProp = ajv_1._ `[${childKwd}]`;\n }\n else if (items) {\n gen.if(isArr);\n init(items, schema.items);\n childProp = ajv_1._ `.items`;\n }\n else if (props) {\n gen.if(codegen_1.and(isObj, codegen_1.not(isArr)));\n init(props, schema.properties);\n childProp = ajv_1._ `.properties`;\n }\n gen.forOf(\"err\", names_1.default.vErrors, (err) => ifMatchesChildError(err, childErrs, (child) => gen.code(ajv_1._ `${childErrs}[${child}].push(${err})`).assign(ajv_1._ `${err}.${used}`, true)));\n gen.forIn(\"key\", childErrs, (key) => gen.if(ajv_1._ `${childErrs}[${key}].length`, () => {\n errors_1.reportError(cxt, {\n message: ajv_1._ `${key} in ${templates} ? ${templates}[${key}]() : ${schemaValue}${childProp}[${key}]`,\n params: ajv_1._ `{errors: ${childErrs}[${key}]}`,\n });\n gen.assign(ajv_1._ `${names_1.default.vErrors}[${names_1.default.errors}-1].instancePath`, ajv_1._ `${instancePath} + \"/\" + ${key}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`);\n }));\n gen.endIf();\n function init(children, msgs) {\n gen.assign(childErrs, ajv_1.stringify(children));\n gen.assign(templates, getTemplatesCode(children, msgs));\n }\n }\n function processAllErrors(schMessage) {\n const errs = gen.const(\"emErrs\", ajv_1._ `[]`);\n gen.forOf(\"err\", names_1.default.vErrors, (err) => gen.if(matchAnyError(err), () => gen.code(ajv_1._ `${errs}.push(${err})`).assign(ajv_1._ `${err}.${used}`, true)));\n gen.if(ajv_1._ `${errs}.length`, () => errors_1.reportError(cxt, {\n message: templateExpr(schMessage),\n params: ajv_1._ `{errors: ${errs}}`,\n }));\n }\n function removeUsedErrors() {\n const errs = gen.const(\"emErrs\", ajv_1._ `[]`);\n gen.forOf(\"err\", names_1.default.vErrors, (err) => gen.if(ajv_1._ `!${err}.${used}`, () => gen.code(ajv_1._ `${errs}.push(${err})`)));\n gen.assign(names_1.default.vErrors, errs).assign(names_1.default.errors, ajv_1._ `${errs}.length`);\n }\n function matchKeywordError(err, kwdErrs) {\n return codegen_1.and(ajv_1._ `${err}.keyword !== ${keyword}`, ajv_1._ `!${err}.${used}`, ajv_1._ `${err}.instancePath === ${instancePath}`, ajv_1._ `${err}.keyword in ${kwdErrs}`, \n // TODO match the end of the string?\n ajv_1._ `${err}.schemaPath.indexOf(${it.errSchemaPath}) === 0`, ajv_1._ `/^\\\\/[^\\\\/]*$/.test(${err}.schemaPath.slice(${it.errSchemaPath.length}))`);\n }\n function ifMatchesChildError(err, childErrs, thenBody) {\n gen.if(codegen_1.and(ajv_1._ `${err}.keyword !== ${keyword}`, ajv_1._ `!${err}.${used}`, ajv_1._ `${err}.instancePath.indexOf(${instancePath}) === 0`), () => {\n const childRegex = gen.scopeValue(\"pattern\", {\n ref: /^\\/([^/]*)(?:\\/|$)/,\n code: ajv_1._ `new RegExp(\"^\\\\\\/([^/]*)(?:\\\\\\/|$)\")`,\n });\n const matches = gen.const(\"emMatches\", ajv_1._ `${childRegex}.exec(${err}.instancePath.slice(${instancePath}.length))`);\n const child = gen.const(\"emChild\", ajv_1._ `${matches} && ${matches}[1].replace(/~1/g, \"/\").replace(/~0/g, \"~\")`);\n gen.if(ajv_1._ `${child} !== undefined && ${child} in ${childErrs}`, () => thenBody(child));\n });\n }\n function matchAnyError(err) {\n return codegen_1.and(ajv_1._ `${err}.keyword !== ${keyword}`, ajv_1._ `!${err}.${used}`, codegen_1.or(ajv_1._ `${err}.instancePath === ${instancePath}`, codegen_1.and(ajv_1._ `${err}.instancePath.indexOf(${instancePath}) === 0`, ajv_1._ `${err}.instancePath[${instancePath}.length] === \"/\"`)), ajv_1._ `${err}.schemaPath.indexOf(${it.errSchemaPath}) === 0`, ajv_1._ `${err}.schemaPath[${it.errSchemaPath}.length] === \"/\"`);\n }\n function getTemplatesCode(keys, msgs) {\n const templatesCode = [];\n for (const k in keys) {\n const msg = msgs[k];\n if (INTERPOLATION.test(msg))\n templatesCode.push([k, templateFunc(msg)]);\n }\n return gen.object(...templatesCode);\n }\n function templateExpr(msg) {\n if (!INTERPOLATION.test(msg))\n return ajv_1.stringify(msg);\n return new code_1._Code(code_1.safeStringify(msg)\n .replace(INTERPOLATION_REPLACE, (_s, ptr) => `\" + JSON.stringify(${validate_1.getData(ptr, it)}) + \"`)\n .replace(EMPTY_STR, \"\"));\n }\n function templateFunc(msg) {\n return ajv_1._ `function(){return ${templateExpr(msg)}}`;\n }\n },\n metaSchema: {\n anyOf: [\n { type: \"string\" },\n {\n type: \"object\",\n properties: {\n properties: { $ref: \"#/$defs/stringMap\" },\n items: { $ref: \"#/$defs/stringList\" },\n required: { $ref: \"#/$defs/stringOrMap\" },\n dependencies: { $ref: \"#/$defs/stringOrMap\" },\n },\n additionalProperties: { type: \"string\" },\n },\n ],\n $defs: {\n stringMap: {\n type: \"object\",\n additionalProperties: { type: \"string\" },\n },\n stringOrMap: {\n anyOf: [{ type: \"string\" }, { $ref: \"#/$defs/stringMap\" }],\n },\n stringList: { type: \"array\", items: { type: \"string\" } },\n },\n },\n };\n}\nconst ajvErrors = (ajv, options = {}) => {\n if (!ajv.opts.allErrors)\n throw new Error(\"ajv-errors: Ajv option allErrors must be true\");\n if (ajv.opts.jsPropertySyntax) {\n throw new Error(\"ajv-errors: ajv option jsPropertySyntax is not supported\");\n }\n return ajv.addKeyword(errorMessage(options));\n};\nexports.default = ajvErrors;\nmodule.exports = ajvErrors;\nmodule.exports.default = ajvErrors;\n//# sourceMappingURL=index.js.map","import{validateFieldsNatively as r,toNestErrors as e}from\"@hookform/resolvers\";import o from\"ajv\";import a from\"ajv-errors\";import{appendErrors as s}from\"react-hook-form\";var t=function(r,e){for(var o={},a=function(r){\"required\"===r.keyword&&(r.instancePath+=\"/\"+r.params.missingProperty);var a=r.instancePath.substring(1).replace(/\\//g,\".\");if(o[a]||(o[a]={message:r.message,type:r.keyword}),e){var t=o[a].types,i=t&&t[r.keyword];o[a]=s(a,e,o,r.keyword,i?[].concat(i,r.message||\"\"):r.message)}},t=function(){var e=r[i];\"errorMessage\"===e.keyword?e.params.errors.forEach(function(r){r.message=e.message,a(r)}):a(e)},i=0;i<r.length;i+=1)t();return o},i=function(s,i,n){return void 0===n&&(n={}),function(m,c,v){try{var l=new o(Object.assign({},{allErrors:!0,validateSchema:!0},i));a(l);var u=l.compile(Object.assign({$async:n&&\"async\"===n.mode},s)),f=u(m);return v.shouldUseNativeValidation&&r({},v),Promise.resolve(f?{values:m,errors:{}}:{values:{},errors:e(t(u.errors,!v.shouldUseNativeValidation&&\"all\"===v.criteriaMode),v)})}catch(r){return Promise.reject(r)}}};export{i as ajvResolver};\n//# sourceMappingURL=ajv.module.js.map\n","import React from 'react';\nimport { useForm, Controller } from 'react-hook-form';\nimport { ajvResolver } from '@hookform/resolvers/ajv';\nimport { XCircle } from '@phosphor-icons/react';\n\nimport type { ActionInputFormBlock, ActionInputs, ActionInputsSchema } from '../types';\n\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport { Label } from '@/components/ui/label';\nimport { Textarea } from '@/components/ui/textarea';\nimport { SimpleSelect } from '@/components/select';\nimport { cn } from '@/lib/utils';\nimport { DatePicker } from '@/components/date-picker';\n\nexport interface ActionInputFormBlockProps {\n block: ActionInputFormBlock;\n}\n\n/**\n * Patches the schema for AJV resolver to correctly validate required string fields.\n *\n * This function addresses a limitation in AJV validation:\n * By default, AJV only checks if a field exists but doesn't consider empty strings invalid.\n * For form validation, we need to ensure required string fields are non-empty.\n * This function adds `minLength: 1` to all required string fields that don't already\n * have a minLength constraint, ensuring empty strings fail validation.\n * see https://github.com/react-hook-form/resolvers/blob/master/README.md#ajv\n *\n * @param schema - The original JSON schema to enhance\n * @returns A new schema with minLength constraints added to required string fields\n */\nexport function patchSchemaForAjvResolver(schema: ActionInputsSchema): ActionInputsSchema {\n // Use structuredClone for proper deep copying of all data types\n const newSchema = structuredClone(schema);\n\n newSchema.errorMessage = 'This field is required';\n\n for (const [key, property] of Object.entries((newSchema.properties ?? {}) as Record<string, any>)) {\n if (newSchema.required?.includes(key) && property.type === 'string') {\n property.minLength = property.minLength || 1;\n property.errorMessage = property.errorMessage || {\n minLength: 'This field is required',\n };\n }\n if (property.type === 'number') {\n property.errorMessage = property.errorMessage || {\n type: 'Please enter a valid number',\n };\n }\n }\n\n return newSchema;\n}\n\nexport function ActionInputFormBlock({ block }: ActionInputFormBlockProps) {\n const formSchema = React.useMemo(() => {\n return patchSchemaForAjvResolver(block.schema);\n }, [block.schema]);\n\n const { inputs = [], initialValues, state } = block;\n\n const isReady = state === 'ready';\n const isProcessing = state === 'processing';\n const isCompleted = state === 'completed';\n\n const defaultValues = Object.entries(initialValues).reduce((acc, [key, value]) => {\n if (typeof value === 'string' && value.trim() === '') {\n return acc;\n }\n acc[key] = value;\n\n return acc;\n }, {} as ActionInputs);\n\n const {\n register,\n control,\n handleSubmit,\n formState: { errors },\n } = useForm<ActionInputs>({\n defaultValues,\n resolver: ajvResolver(formSchema, {\n removeAdditional: true,\n }),\n });\n\n const onSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n if (block.onSubmit) {\n void handleSubmit(block.onSubmit)(e);\n }\n\n return false;\n };\n\n const formInputs = inputs.map((input) => {\n const { name, required, schema: inputSchema, ui } = input;\n const labelText = `${inputSchema.title ?? name}${required ? '*' : ''}`;\n const description = inputSchema.description;\n const error = errors[name];\n\n const errorMessage = error?.message;\n\n let descriptionText: React.ReactNode = description ? String(description) : null;\n\n if (error) {\n // if there is a description, show it and the error message in italic\n descriptionText = description ? (\n <>\n {description} - <span className=\"italic\">{errorMessage}</span>\n </>\n ) : (\n // if there is no description, just show the error message\n errorMessage\n );\n }\n\n const inputType = ui?.type || 'text';\n const registerOptions = {\n valueAsNumber: inputType === 'number' ? true : undefined,\n };\n\n return (\n <div key={name} className=\"py-2 flex flex-col gap-2\">\n <Label htmlFor={name}>{labelText}</Label>\n {inputType === 'datepicker' ? (\n <Controller\n control={control}\n name={name}\n render={({ field }) => (\n <DatePicker\n date={field.value && typeof field.value === 'string' ? new Date(field.value) : undefined}\n setDate={(date) => {\n if (date) {\n field.onChange(date.toISOString());\n } else {\n field.onChange(undefined);\n }\n }}\n className={cn('!bg-transparent', { 'border-red-600': !!error })}\n />\n )}\n />\n ) : inputType === 'textarea' ? (\n <Textarea\n disabled={!isReady}\n rows={2}\n maxLength={10000}\n className={cn('!bg-transparent', { 'border-red-600': !!error })}\n {...register(name, registerOptions)}\n aria-invalid={!!error}\n aria-required={required}\n />\n ) : inputType === 'select' ? (\n <Controller\n control={control}\n name={name}\n render={({ field }) => (\n <SimpleSelect\n options={\n inputSchema.oneOf?.map((option) => ({\n label: option.title,\n value: option.const,\n })) ?? []\n }\n className={cn('!bg-transparent', { 'border-red-600': !!error })}\n value={field.value as string}\n onChange={(value) => field.onChange(value)}\n />\n )}\n />\n ) : (\n <Input\n type={inputType}\n disabled={!isReady}\n className={cn({ 'border-red-600': !!error })}\n {...register(name, registerOptions)}\n aria-invalid={!!error}\n aria-required={required}\n />\n )}\n {descriptionText && (\n <span\n className={cn('flex text-sm leading-6 font-medium gap-1.5 items-center', {\n 'text-red-600 dark:text-white': !!error,\n })}\n >\n {error && <XCircle weight=\"fill\" size={20} className=\"inline-block align-middle text-red-600\" />}\n <span>{descriptionText}</span>\n </span>\n )}\n </div>\n );\n });\n\n return (\n <div className=\"relative\">\n <form className=\"flex flex-col justify-stretch\" onSubmit={onSubmit}>\n {formInputs}\n <div className=\"mt-4\">\n <Button type=\"submit\" variant=\"dark\" disabled={!isReady} className=\"w-full rounded-s\">\n {isReady && 'Submit'}\n {isProcessing && 'Processing...'}\n {isCompleted && 'Completed'}\n </Button>\n </div>\n </form>\n </div>\n );\n}\n","import type { ActionButtonsBlock as ActionButtonsBlockType } from '../types';\n\nexport function ActionButtonsBlock({ block: _block }: { block: ActionButtonsBlockType }) {\n return null;\n}\n\nexport default ActionButtonsBlock;\n","import { createId } from '@paralleldrive/cuid2';\n\nimport {\n ActionButtonsBlock,\n ActionInputFormBlock,\n ActionInputs,\n ActionInput,\n AnswerBlock,\n MarkdownTextBlock,\n ActionInputsSchema,\n} from '../types';\n\nexport const markdownTextBlock = ({ text = '' }: { text?: string } = {}): MarkdownTextBlock => ({\n id: createId(),\n type: 'markdown-text',\n text,\n});\n\nexport const actionInputFormBlock = ({\n actionId,\n initialValues,\n onSubmit,\n inputs,\n schema,\n}: {\n actionId: string;\n initialValues: ActionInputs;\n onSubmit: (inputs: ActionInputs) => void;\n inputs: ActionInput[];\n schema: ActionInputsSchema;\n}): ActionInputFormBlock => ({\n id: createId(),\n type: 'action-input-form',\n state: 'ready',\n actionId,\n initialValues,\n onSubmit,\n inputs,\n schema,\n});\n\nexport const actionButtonsBlock = (): ActionButtonsBlock => ({\n id: createId(),\n type: 'action-buttons',\n});\n\nexport const isMarkdownTextBlock = (block: AnswerBlock): block is MarkdownTextBlock => {\n return block.type === 'markdown-text';\n};\n\nexport const blocksToPlainText = (blocks: AnswerBlock[]): string =>\n blocks\n .filter(isMarkdownTextBlock)\n .map((block) => block.text)\n .join('\\n\\n---\\n\\n');\n\nexport const isActionInputFormBlock = (block: AnswerBlock): block is ActionInputFormBlock => {\n return block.type === 'action-input-form';\n};\n\nexport const isActionButtonsBlock = (block: AnswerBlock): block is ActionButtonsBlock => {\n return block.type === 'action-buttons';\n};\n","import { createId } from '@paralleldrive/cuid2';\nimport { WritableDraft } from 'immer';\nimport { ImmerReducer, useImmerReducer } from 'use-immer';\n\nimport { actionButtonsBlock, actionInputFormBlock, isActionInputFormBlock, isMarkdownTextBlock, markdownTextBlock } from '../blocks/utils';\nimport { ActionInputs, ActionInput, ActionType, Answer, AnswerBlock, FeedbackResponse, JSONSchema, SearchResult } from '../types';\n\n// Action types\nexport const AnswersActions = {\n SET_ANSWERS: 'answers/set_answers',\n CLEAR_ALL: 'answers/clear_all',\n APPEND_NEW_ANSWER: 'answers/create_empty_answer',\n APPEND_BLOCK: 'answers/append_block',\n APPEND_ANSWER_CHUNK: 'answers/append_stream_chunk',\n SET_SEARCH_RESULTS: 'answers/update_search_results',\n SET_FOLLOW_UP_QUESTIONS: 'answers/set_follow_up_questions',\n COMPLETE_ANSWER: 'answers/finish_streaming',\n SET_ANSWER_ERROR: 'answers/set_error_state',\n SET_USER_FEEDBACK: 'answers/set_user_feedback',\n CLEAR_USER_FEEDBACK: 'answers/clear_user_feedback',\n MARK_AS_UNCERTAIN: 'answers/mark_as_uncertain',\n NO_ARTICLES_FOUND: 'answers/no_articles_found',\n // action flow\n GET_ACTION_INPUTS: 'answers/request_action_inputs',\n INVOKE_ACTION: 'answers/invoke_action',\n ADD_ACTION_BUTTONS: 'answers/add_action_buttons',\n} as const;\n\n// Action type definitions\ntype SetAnswers = {\n type: typeof AnswersActions.SET_ANSWERS;\n payload: {\n answers: Answer[];\n };\n};\n\ntype ClearAll = {\n type: typeof AnswersActions.CLEAR_ALL;\n};\n\ntype AppendNewAnswer = {\n type: typeof AnswersActions.APPEND_NEW_ANSWER;\n payload: {\n id?: string;\n query: string;\n };\n};\n\ntype SetSearchResults = {\n type: typeof AnswersActions.SET_SEARCH_RESULTS;\n payload: {\n searchQueryId: string;\n results: SearchResult[];\n index?: number;\n state?: Answer['state'];\n };\n};\n\ntype AppendAnswerChunk = {\n type: typeof AnswersActions.APPEND_ANSWER_CHUNK;\n payload: {\n text: string;\n index?: number;\n };\n};\n\ntype SetAnswerError = {\n type: typeof AnswersActions.SET_ANSWER_ERROR;\n payload: {\n error: string;\n index?: number;\n };\n};\n\ntype SetUserFeedback = {\n type: typeof AnswersActions.SET_USER_FEEDBACK;\n payload: {\n feedback: FeedbackResponse;\n index?: number;\n };\n};\n\ntype ClearUserFeedback = {\n type: typeof AnswersActions.CLEAR_USER_FEEDBACK;\n payload: {\n index?: number;\n };\n};\n\ntype SetFollowUpQuestions = {\n type: typeof AnswersActions.SET_FOLLOW_UP_QUESTIONS;\n payload: {\n questions: string[];\n index?: number;\n };\n};\n\ntype AppendBlock = {\n type: typeof AnswersActions.APPEND_BLOCK;\n payload: {\n block: AnswerBlock;\n index?: number;\n };\n};\n\ntype CompleteAnswer = {\n type: typeof AnswersActions.COMPLETE_ANSWER;\n payload: {\n index?: number;\n };\n};\n\ntype MarkAsUncertain = {\n type: typeof AnswersActions.MARK_AS_UNCERTAIN;\n payload: {\n uncertaintyText: string;\n index?: number;\n };\n};\n\ntype GetActionInputs = {\n type: typeof AnswersActions.GET_ACTION_INPUTS;\n payload: {\n searchIntentId: string;\n actionId: string;\n inputs: ActionInput[];\n schema: JSONSchema<ActionInputs>;\n initialValues: ActionInputs;\n onSubmit: (parameters: ActionInputs) => void;\n index?: number;\n };\n};\n\ntype AddActionButtons = {\n type: typeof AnswersActions.ADD_ACTION_BUTTONS;\n payload: {\n searchIntentId: string;\n actions: Array<{\n id: string;\n type: string;\n action: {\n version: string;\n options: {\n title?: string;\n [key: string]: any;\n };\n };\n }>;\n index?: number;\n };\n};\n\ntype InvokeAction = {\n type: typeof AnswersActions.INVOKE_ACTION;\n payload: {\n index?: number;\n };\n};\n\ntype NoArticlesFound = {\n type: typeof AnswersActions.NO_ARTICLES_FOUND;\n payload: {\n index?: number;\n };\n};\n\nexport type AnswerListAction =\n | SetAnswers\n | ClearAll\n | AppendNewAnswer\n | SetSearchResults\n | AppendAnswerChunk\n | SetAnswerError\n | SetUserFeedback\n | ClearUserFeedback\n | SetFollowUpQuestions\n | AppendBlock\n | CompleteAnswer\n | MarkAsUncertain\n | InvokeAction\n | GetActionInputs\n | AddActionButtons\n | NoArticlesFound;\n\n// Action creators\nexport const setAnswers = ({ answers }: { answers: Answer[] }): SetAnswers => ({\n type: AnswersActions.SET_ANSWERS,\n payload: { answers },\n});\n\nexport const clearAll = (): ClearAll => ({\n type: AnswersActions.CLEAR_ALL,\n});\n\nexport const appendNewAnswer = ({ id, query }: { id?: string; query: string }): AppendNewAnswer => ({\n type: AnswersActions.APPEND_NEW_ANSWER,\n payload: { id, query },\n});\n\nexport const setSearchResults = ({\n searchQueryId,\n results,\n index,\n state,\n}: {\n searchQueryId: string;\n results: SearchResult[];\n index?: number;\n state?: Answer['state'];\n}): SetSearchResults => ({\n type: AnswersActions.SET_SEARCH_RESULTS,\n payload: {\n searchQueryId,\n results,\n index,\n state,\n },\n});\n\nexport const appendAnswerChunk = ({ text, index }: { text: string; index?: number }): AppendAnswerChunk => ({\n type: AnswersActions.APPEND_ANSWER_CHUNK,\n payload: {\n text,\n index,\n },\n});\n\nexport const setAnswerError = ({ error, index }: { error: string; index?: number }): SetAnswerError => ({\n type: AnswersActions.SET_ANSWER_ERROR,\n payload: {\n error,\n index,\n },\n});\n\nexport const setUserFeedback = ({ feedback, index }: { feedback: FeedbackResponse; index?: number }): SetUserFeedback => ({\n type: AnswersActions.SET_USER_FEEDBACK,\n payload: {\n feedback,\n index,\n },\n});\n\nexport const clearUserFeedback = ({ index }: { index?: number } = {}): ClearUserFeedback => ({\n type: AnswersActions.CLEAR_USER_FEEDBACK,\n payload: {\n index,\n },\n});\n\nexport const setFollowUpQuestions = ({ questions, index }: { questions: string[]; index?: number }): SetFollowUpQuestions => ({\n type: AnswersActions.SET_FOLLOW_UP_QUESTIONS,\n payload: {\n questions,\n index,\n },\n});\n\nexport const appendBlock = ({ block, index }: { block: AnswerBlock; index?: number }): AppendBlock => ({\n type: AnswersActions.APPEND_BLOCK,\n payload: {\n block,\n index,\n },\n});\n\nexport const completeAnswer = ({ index }: { index?: number } = {}): CompleteAnswer => ({\n type: AnswersActions.COMPLETE_ANSWER,\n payload: {\n index,\n },\n});\n\nexport const markAsUncertain = ({ uncertaintyText, index }: { uncertaintyText: string; index?: number }): MarkAsUncertain => ({\n type: AnswersActions.MARK_AS_UNCERTAIN,\n payload: {\n uncertaintyText,\n index,\n },\n});\n\nexport const invokeAction = ({ index }: { index?: number } = {}): InvokeAction => ({\n type: AnswersActions.INVOKE_ACTION,\n payload: {\n index,\n },\n});\n\nexport const noArticlesFound = ({ index }: { index?: number } = {}): NoArticlesFound => ({\n type: AnswersActions.NO_ARTICLES_FOUND,\n payload: {\n index,\n },\n});\n\nexport const getActionInputs = ({\n searchIntentId,\n actionId,\n inputs,\n schema,\n initialValues,\n onSubmit,\n index,\n}: {\n searchIntentId: string;\n actionId: string;\n inputs: ActionInput[];\n schema: JSONSchema<ActionInputs>;\n initialValues: ActionInputs;\n onSubmit: (parameters: ActionInputs) => void;\n index?: number;\n}): GetActionInputs => ({\n type: AnswersActions.GET_ACTION_INPUTS,\n payload: {\n searchIntentId,\n actionId,\n inputs,\n schema,\n initialValues,\n onSubmit,\n index,\n },\n});\n\nexport const addActionButtons = ({\n searchIntentId,\n actions,\n index,\n}: {\n searchIntentId: string;\n actions: Array<{\n id: string;\n type: string;\n action: {\n version: string;\n options: {\n title?: string;\n [key: string]: any;\n };\n };\n }>;\n index?: number;\n}): AddActionButtons => ({\n type: AnswersActions.ADD_ACTION_BUTTONS,\n payload: {\n searchIntentId,\n actions,\n index,\n },\n});\n\nconst getTargetAnswer = (draft: WritableDraft<Answer>[], index?: number) => {\n return draft.at(index ?? -1);\n};\n\nconst getLastTextBlock = (answer: Answer) => {\n const textBlocks = answer.blocks.filter(isMarkdownTextBlock);\n const lastTextBlock = textBlocks.at(-1);\n\n return lastTextBlock;\n};\n\nconst initialState: Answer[] = [];\n\nconst reducer: ImmerReducer<Answer[], AnswerListAction> = (draft, action) => {\n switch (action.type) {\n // Answer List Management\n case AnswersActions.SET_ANSWERS: {\n draft.length = 0;\n // @ts-expect-error\n draft.push(...action.payload.answers);\n\n return;\n }\n\n case AnswersActions.CLEAR_ALL: {\n draft.length = 0;\n\n return;\n }\n\n // Answer Generation Flow\n case AnswersActions.APPEND_NEW_ANSWER: {\n draft.push({\n id: 'pending-' + createId(),\n state: 'fetching-search-results',\n question: action.payload.query,\n blocks: [markdownTextBlock()],\n isUncertain: false,\n });\n\n return;\n }\n\n case AnswersActions.SET_SEARCH_RESULTS: {\n const answer = getTargetAnswer(draft, action.payload.index);\n if (answer) {\n answer.searchQueryId = action.payload.searchQueryId;\n answer.searchResults = action.payload.results;\n answer.state = action.payload.state || 'fetching-stream';\n }\n\n return;\n }\n\n case AnswersActions.APPEND_ANSWER_CHUNK: {\n const answer = getTargetAnswer(draft, action.payload.index);\n const block = answer && getLastTextBlock(answer);\n\n if (answer && !answer.isUncertain && block && isMarkdownTextBlock(block)) {\n answer.state = 'streaming';\n block.text += action.payload.text;\n }\n\n return;\n }\n\n case AnswersActions.SET_ANSWER_ERROR: {\n const answer = getTargetAnswer(draft, action.payload.index ?? -1);\n const block = answer && getLastTextBlock(answer);\n if (block && isMarkdownTextBlock(block)) {\n block.text = action.payload.error; // Replace loading text with error message\n answer.state = 'completed'; // Mark as completed so UI doesn't show loading state\n answer.hasError = true; // Flag to indicate this answer has an error\n }\n\n return;\n }\n\n case AnswersActions.APPEND_BLOCK: {\n const answer = getTargetAnswer(draft, action.payload.index);\n if (answer) {\n // @ts-expect-error\n answer.blocks.push(action.payload.block);\n }\n\n return;\n }\n\n case AnswersActions.COMPLETE_ANSWER: {\n const answer = getTargetAnswer(draft, action.payload.index);\n if (answer) {\n // Mark as completed regardless of current state to ensure loading states end\n // This handles errors during fetching-search-results, fetching-stream, or streaming\n const shouldComplete =\n answer.state === 'streaming' || answer.state === 'fetching-search-results' || answer.state === 'fetching-stream';\n if (shouldComplete) {\n answer.state = 'completed';\n }\n }\n\n return;\n }\n\n case AnswersActions.MARK_AS_UNCERTAIN: {\n const answer = getTargetAnswer(draft, action.payload.index);\n const block = answer && getLastTextBlock(answer);\n if (answer && block && isMarkdownTextBlock(block)) {\n answer.isUncertain = true;\n block.text = action.payload.uncertaintyText;\n }\n\n return;\n }\n\n case AnswersActions.SET_USER_FEEDBACK: {\n const answer = getTargetAnswer(draft, action.payload.index);\n if (answer) {\n answer.feedback = action.payload.feedback;\n }\n\n return;\n }\n\n case AnswersActions.CLEAR_USER_FEEDBACK: {\n const answer = getTargetAnswer(draft, action.payload.index);\n if (answer) {\n delete answer.feedback;\n }\n\n return;\n }\n\n case AnswersActions.GET_ACTION_INPUTS: {\n const answer = getTargetAnswer(draft, action.payload.index);\n if (answer) {\n answer.state = 'getting-action-inputs';\n answer.searchIntentId = action.payload.searchIntentId;\n answer.blocks.push(\n // @ts-expect-error\n actionInputFormBlock({\n actionId: action.payload.actionId,\n schema: action.payload.schema,\n initialValues: action.payload.initialValues,\n onSubmit: action.payload.onSubmit,\n inputs: action.payload.inputs,\n }),\n );\n }\n\n return;\n }\n\n case AnswersActions.ADD_ACTION_BUTTONS: {\n const answer = getTargetAnswer(draft, action.payload.index);\n if (answer) {\n answer.searchIntentId = action.payload.searchIntentId;\n // Cast the actions array to ActionType to match the expected type\n answer.actions = action.payload.actions.map((action) => ({\n ...action,\n type: action.type as ActionType,\n }));\n answer.blocks.push(actionButtonsBlock());\n }\n\n return;\n }\n\n case AnswersActions.INVOKE_ACTION: {\n const answer = getTargetAnswer(draft, action.payload.index);\n const blockIndex = answer?.blocks.findIndex(isActionInputFormBlock);\n\n if (answer && blockIndex) {\n // replace the action input form block with a markdown text block\n answer.state = 'fetching-stream';\n answer.blocks.splice(blockIndex, 1, markdownTextBlock());\n }\n\n return;\n }\n\n case AnswersActions.SET_FOLLOW_UP_QUESTIONS: {\n const answer = getTargetAnswer(draft, action.payload.index);\n if (answer) {\n answer.followUpQuestions = action.payload.questions;\n }\n\n return;\n }\n\n case AnswersActions.NO_ARTICLES_FOUND: {\n const answer = getTargetAnswer(draft, action.payload.index);\n const block = answer && getLastTextBlock(answer);\n if (block && isMarkdownTextBlock(block)) {\n block.text += 'No articles found.';\n }\n // Mark the answer as completed when no articles are found\n if (answer) {\n answer.state = 'completed';\n }\n\n return;\n }\n\n default: {\n throw new Error(`Answer List Reducer: unknown action type '${(action as AnswerListAction).type}'`);\n }\n }\n};\n\nexport const useAnswerList = () => {\n return useImmerReducer(reducer, initialState);\n};\n","import { useCallback, useState } from 'react';\nimport { useSearchParam } from 'react-use';\n\nconst CONVERSATION_PARAM = 'conversation';\n\nexport const useConversationId = (searchPath?: string) => {\n const conversationId = useSearchParam(CONVERSATION_PARAM);\n\n // Unfortunately, the search param is not updated when the url is changed in Next.js\n // As a workaround, we use a local state to store the conversation id\n // and update the url when the local state changes\n // https://github.com/vercel/next.js/discussions/18072\n // https://github.com/vercel/next.js/discussions/70779\n const [_conversationId, _setConversationId] = useState(conversationId ?? undefined);\n\n const setConversationId = useCallback(\n (id: string) => {\n const url = new URL(window.location.href);\n if (searchPath) {\n url.pathname = searchPath;\n }\n if (id) {\n url.searchParams.set(CONVERSATION_PARAM, id);\n } else {\n url.searchParams.delete(CONVERSATION_PARAM);\n }\n const newUrl = url.toString();\n window.history.replaceState({ ...window.history.state, newUrl, url: newUrl }, '', newUrl);\n _setConversationId(id);\n },\n [searchPath],\n );\n\n const clearConversationId = useCallback(() => {\n const url = new URL(window.location.href);\n url.searchParams.delete(CONVERSATION_PARAM);\n const newUrl = url.toString();\n window.history.replaceState({ ...window.history.state, newUrl, url: newUrl }, '', newUrl);\n _setConversationId(undefined);\n }, []);\n\n return { conversationId: _conversationId, setConversationId, clearConversationId };\n};\n","import React, { createContext, useContext, useState, useMemo, type ReactNode } from 'react';\n\nimport type { Answer } from './types';\nimport { useAnswerList, AnswerListAction } from './hooks/useAnswerList';\nimport { useConversationId } from './hooks/useConversationId';\n\ninterface ChatSearchContextProps {\n query: string;\n setQuery: React.Dispatch<React.SetStateAction<string>>;\n queryId: string;\n setQueryId: React.Dispatch<React.SetStateAction<string>>;\n followUpQuery: string;\n setFollowUpQuery: React.Dispatch<React.SetStateAction<string>>;\n isSearching: boolean;\n setIsSearching: React.Dispatch<React.SetStateAction<boolean>>;\n showResults: boolean;\n setShowResults: React.Dispatch<React.SetStateAction<boolean>>;\n answers: Answer[];\n answerListDispatch: React.Dispatch<AnswerListAction>;\n activeAnswerIndex: number;\n setActiveAnswerIndex: React.Dispatch<React.SetStateAction<number>>;\n conversationId: string | undefined;\n setConversationId: (id: string) => void;\n clearConversationId: () => void;\n isLoadingConversation: boolean;\n setIsLoadingConversation: React.Dispatch<React.SetStateAction<boolean>>;\n loadError: string;\n setLoadError: React.Dispatch<React.SetStateAction<string>>;\n showMobileCloseWidgetButton: boolean;\n setShowMobileCloseWidgetButton: React.Dispatch<React.SetStateAction<boolean>>;\n contentTypeEndpoint?: string;\n}\n\nconst ChatSearchContext = createContext<ChatSearchContextProps | undefined>(undefined);\n\nexport const ChatSearchProvider: React.FC<{\n children: ReactNode;\n searchPath?: string;\n contentTypeEndpoint?: string;\n}> = ({ children, searchPath, contentTypeEndpoint }) => {\n const [query, setQuery] = useState('');\n const [queryId, setQueryId] = useState('');\n const [followUpQuery, setFollowUpQuery] = useState('');\n const [isSearching, setIsSearching] = useState(false);\n const [showResults, setShowResults] = useState(false);\n const [answers, answerListDispatch] = useAnswerList();\n const [activeAnswerIndex, setActiveAnswerIndex] = useState(0);\n const [isLoadingConversation, setIsLoadingConversation] = useState(false);\n const [loadError, setLoadError] = useState<string>('');\n const [showMobileCloseWidgetButton, setShowMobileCloseWidgetButton] = useState(false);\n\n const { conversationId, setConversationId, clearConversationId } = useConversationId(searchPath);\n\n // Memoize the context value to prevent unnecessary re-renders of components that consume the context\n const contextValue = useMemo(\n () => ({\n query,\n setQuery,\n queryId,\n setQueryId,\n followUpQuery,\n setFollowUpQuery,\n isSearching,\n setIsSearching,\n showResults,\n setShowResults,\n answers,\n answerListDispatch,\n activeAnswerIndex,\n setActiveAnswerIndex,\n conversationId,\n setConversationId,\n clearConversationId,\n isLoadingConversation,\n setIsLoadingConversation,\n loadError,\n setLoadError,\n showMobileCloseWidgetButton,\n setShowMobileCloseWidgetButton,\n contentTypeEndpoint,\n }),\n [\n query,\n queryId,\n followUpQuery,\n isSearching,\n showResults,\n answers,\n answerListDispatch,\n activeAnswerIndex,\n conversationId,\n setConversationId,\n clearConversationId,\n isLoadingConversation,\n loadError,\n showMobileCloseWidgetButton,\n contentTypeEndpoint,\n ],\n );\n\n return <ChatSearchContext.Provider value={contextValue}>{children}</ChatSearchContext.Provider>;\n};\n\nexport const useChatSearch = () => {\n const context = useContext(ChatSearchContext);\n if (!context) {\n throw new Error('useChatSearch must be used within a ChatSearchProvider');\n }\n\n return context;\n};\n","import React from 'react';\n\nimport type { MarkdownTextBlock, RedirectRule, AnswerState } from '../types';\nimport { useChatSearch } from '../ChatSearchContext';\n\nimport { FormattedMessage } from '@/components/markdown/FormattedMessage';\n\nexport interface MarkdownTextBlockProps {\n block: MarkdownTextBlock;\n redirectRules?: RedirectRule[];\n state: AnswerState;\n}\n\nexport function MarkdownTextBlock({ block, redirectRules, state }: MarkdownTextBlockProps) {\n const { contentTypeEndpoint } = useChatSearch();\n\n if (!block.text || block.text.trim() === '') {\n return (\n <div className=\"w-full py-4\">\n <div className=\"space-y-4\">\n <div className=\"space-y-3\">\n <div className=\"h-4 rounded w-3/4 shimmer\" />\n <div className=\"h-4 rounded w-full shimmer\" />\n <div className=\"h-4 rounded w-5/6 shimmer\" />\n </div>\n </div>\n </div>\n );\n }\n\n const { text } = block;\n\n return (\n <div className=\"w-full\">\n <div className=\"prose prose-sm max-w-none text-foreground\">\n <FormattedMessage\n message={{\n content: text,\n }}\n redirectRules={redirectRules}\n isStreaming={state === 'streaming'}\n contentTypeEndpoint={contentTypeEndpoint}\n />\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nimport { ActionInputFormBlock } from './blocks/ActionInputForm';\nimport { ActionButtonsBlock } from './blocks/ActionButtons';\nimport { MarkdownTextBlock } from './blocks/MarkdownText';\nimport type { AnswerBlock, AnswerState, RedirectRule } from './types';\n\nexport interface AnswerBlockProps {\n block: AnswerBlock;\n redirectRules?: RedirectRule[];\n state: AnswerState;\n}\n\nexport function AnswerBlock({ block, redirectRules, state }: AnswerBlockProps) {\n switch (block.type) {\n case 'markdown-text':\n return <MarkdownTextBlock block={block} redirectRules={redirectRules} state={state} />;\n case 'action-buttons':\n return <ActionButtonsBlock block={block} />;\n case 'action-input-form':\n return <ActionInputFormBlock block={block} />;\n default:\n return null;\n }\n}\n","import type { JSONSchemaType } from 'ajv';\n\nimport type { FeatureFlags } from '@/lib/feature-flags';\n\nexport type JSONSchema<T> = JSONSchemaType<T>;\n\nexport interface TextConfig {\n headerText?: string;\n searchPlaceholder?: string;\n attachImageText?: string;\n allDocumentsText?: string;\n loadingSearchText?: string;\n loadingAnswerText?: string;\n errorText?: string;\n followUpPlaceholder?: string;\n positiveAnswerText?: string;\n negativeAnswerText?: string;\n suggestionsTitle?: string;\n uncertaintyFallbackText?: Record<string, string>;\n}\n\nexport enum ActionType {\n CallPhone = 'call_phone',\n OpenUrl = 'open_url',\n SendEmail = 'send_email',\n RunCallback = 'run_callback',\n LaunchIntercomChat = 'launch_intercom_chat',\n LaunchZendeskChat = 'launch_zendesk_chat',\n LaunchZendeskMessenger = 'launch_zendesk_messenger',\n LaunchFreshdesk = 'launch_freshdesk',\n LaunchSupportTicketForm = 'launch_support_ticket_form',\n}\n\n// UI feedback type\nexport type FeedbackResponse = 'accept' | 'reject';\n\n// API feedback type\nexport type APIFeedbackResponse = 'positive' | 'negative';\n\n/**\n * Defines a URL redirect rule with pattern matching\n * @example { source: '/knowledge/:id/:path', destination: '/knowledge/test/:path' }\n */\nexport type RedirectRule = {\n source: string; // Pattern with parameters like '/knowledge/:id/:path'\n destination: string; // Destination with parameter placeholders like '/knowledge/test/:path'\n};\n\nexport type MarkdownTextBlock = {\n id: string;\n type: 'markdown-text';\n text: string;\n};\n\nexport type ActionButtonsBlock = {\n id: string;\n type: 'action-buttons';\n};\n\nexport type ActionInputFormBlock = {\n id: string;\n type: 'action-input-form';\n state: 'ready' | 'processing' | 'completed';\n actionId: string;\n initialValues: ActionInputs;\n schema: ActionInputsSchema;\n onSubmit?: (inputs: ActionInputs) => void;\n inputs: ActionInput[];\n};\n\nexport type ActionInput = {\n name: string;\n required: boolean;\n schema: {\n type: string;\n title: string;\n description: string;\n oneOf?: {\n const: string;\n title: string;\n }[];\n };\n type: string;\n ui: {\n type: string;\n };\n};\nexport type AnswerBlock = MarkdownTextBlock | ActionButtonsBlock | ActionInputFormBlock;\n\nexport type CreateAnswerBlock = Omit<MarkdownTextBlock, 'id'> | Omit<ActionButtonsBlock, 'id'> | Omit<ActionInputFormBlock, 'id'>;\n\nexport type AnswerState = 'fetching-search-results' | 'fetching-stream' | 'streaming' | 'getting-action-inputs' | 'completed';\n\nexport type ConversationMessage = {\n question: string;\n answer: string;\n};\n\nexport type ConversationContext = {\n conversationId?: string;\n messages: ConversationMessage[];\n};\n\nexport type ActionClick = {\n action: NextBestAction;\n searchQueryId: string;\n query: string;\n answer: string;\n success?: boolean;\n};\n\nexport type Action = {\n id: string;\n type: ActionType;\n action: {\n version: string;\n options: {\n title?: string;\n [key: string]: any;\n };\n };\n};\n\nexport interface Answer {\n id: string;\n state: AnswerState;\n question: string;\n blocks: AnswerBlock[];\n searchResults?: SearchResult[];\n followUpQuestions?: string[];\n searchQueryId?: string;\n feedback?: FeedbackResponse;\n isUncertain?: boolean;\n uncertaintyLanguage?: string | null;\n uncertaintyFallbackText?: string;\n searchIntentId?: string;\n actions?: Action[];\n hasError?: boolean;\n}\n\nexport type ActionInputValue = string | number | boolean | null;\n\nexport type ActionInputs = Record<string, ActionInputValue>;\n\nexport type ActionInputsSchema = JSONSchemaType<ActionInputs>;\n\nexport type AnswerStreamRequest =\n | {\n type: 'generate-for-query';\n searchQueryId: string;\n conversationId?: string;\n profileId?: string;\n context?: { type: 'text'; text: string }[];\n }\n | {\n type: 'invoke-action';\n searchIntentId: string;\n actionId: string;\n parameters: ActionInputs;\n conversationId?: string;\n profileId?: string;\n }\n | {\n type: 'client-execution-result';\n searchIntentId: string;\n actionId: string;\n results: ClientExecutionResult;\n conversationId?: string;\n searchQueryId: string;\n profileId?: string;\n };\n\nexport type ClientExecutionResult = {\n success: boolean;\n data?: Record<string, any>;\n reason?: string;\n};\n\nexport interface SearchResult {\n id: string;\n title: string;\n url: string;\n}\n\nexport interface SearchResponse {\n results: SearchResult[];\n searchQueryId: string;\n isAgenticResponse?: boolean;\n}\n\nexport interface FollowUpQuestionsResponse {\n questions: string[];\n}\n\nexport interface Collection {\n id: string;\n name: string;\n siteEnabled?: boolean;\n}\n\nexport interface Suggestion {\n id: string;\n question: string;\n conversationId?: string;\n messageCount?: number;\n}\n\nexport interface ChatSearchProps {\n suggestions?: Suggestion[];\n collections?: Array<Collection>;\n selectedCollectionId?: string;\n onCollectionChange?: (collectionId: string) => void;\n selectedRegion?: string;\n onRegionChange?: (region: string) => void;\n apiKey?: string;\n fetchRegionConfig?: (apiKey: string, region: string) => Promise<{ settings?: { collections?: Collection[] } } | null>;\n searchEndpoint: string;\n answerEndpoint: string;\n answerStreamEndpoint: string;\n feedbackEndpoint?: string;\n feedbackReasonEndpoint?: string;\n loadConversationEndpoint?: string;\n followUpQuestionsEndpoint?: string;\n autocompleteEndpoint?: string;\n contentTypeEndpoint?: string;\n disableFollowUpQuestions?: boolean;\n disableImageAttachment?: boolean;\n disableFeedback?: boolean;\n disclaimer?: string;\n offset?: number;\n headers?: Record<string, string>;\n textConfig?: TextConfig;\n searchPath?: string;\n className?: string;\n onToggleSizeButtonClick?: () => void;\n trackEvent?: (eventName: string, data?: Record<string, any>) => void;\n featureFlags?: FeatureFlags;\n onCloseWidget?: () => void;\n isWidgetMode?: boolean;\n nextBestActions?: NextBestAction[];\n bodyActionButtons?: NextBestAction[];\n onNextBestActionClick?: ({\n action,\n searchQueryId,\n query,\n answer,\n conversation,\n }: {\n action: NextBestAction;\n searchQueryId: string;\n query: string;\n answer: string;\n conversation?: ConversationContext;\n }) => void;\n userData?: Record<string, unknown> | null;\n redirectRules?: RedirectRule[];\n secretAttributes?: string;\n allowedRegions?: string[];\n style?: React.CSSProperties;\n isAgentAssist?: boolean;\n isSearchWidget?: boolean;\n hideCitations?: boolean;\n}\n\nexport interface ChatSearchState {\n showResults: boolean;\n answers: Answer[];\n isLoading: boolean;\n error?: string;\n}\n\ntype TextChunk = {\n type: 'answer-text-chunk';\n content: string;\n};\n\ntype GetActionInputs = {\n type: 'get-action-inputs';\n schema: ActionInputsSchema;\n values: Record<string, string | number | boolean | null>;\n searchIntentId: string;\n actionId: string;\n inputs: ActionInput[];\n actionType: string;\n actionKey: string;\n};\n\nexport type ActionButtons = {\n type: 'action-buttons';\n actions: Array<{\n id: string;\n type: string;\n action: {\n version: string;\n options: {\n title?: string;\n phoneNumber?: string;\n to?: string;\n [key: string]: any;\n };\n };\n }>;\n searchIntentId: string;\n};\n\nexport type Citations = {\n type: 'citations';\n data: SearchResult[];\n};\n\nexport type AnswerStreamEvent = TextChunk | GetActionInputs | ActionButtons | Citations;\n\ntype UrlString = string & { __url: never };\n\nconst isUrlString = (value: string): value is UrlString => {\n const urlRegExp = /^(https?|ftp):\\/\\/[^\\s/$.?#].[^\\s]*$/i;\n\n return urlRegExp.test(value);\n};\n\nexport const validateUrlString = (value: string): UrlString => {\n if (!isUrlString(value)) {\n throw new Error(`Invalid URL: ${value}`);\n }\n\n return value as UrlString;\n};\n\nexport enum NextBestActionType {\n Link = 'link',\n Email = 'email',\n Phone = 'phone',\n Callback = 'callback',\n Function = 'function',\n ZendeskChat = 'zendesk_chat',\n ZendeskMessenger = 'zendesk_messenger',\n IntercomChat = 'intercom_chat',\n Freshdesk = 'freshdesk',\n}\n\nexport type NextBestAction = {\n id?: string;\n label: string;\n type: NextBestActionType;\n icon?: string | UrlString;\n value: any;\n};\n\nexport type SearchQueryAttribute = string | number | boolean | null;\n\nexport type SearchQueryAttributes = Record<string, SearchQueryAttribute>;\n","import React from 'react';\nimport { motion } from 'framer-motion';\n\nimport { NextBestAction, NextBestActionType } from './types';\nimport { MemoizedIcon } from '../ui/icon';\nimport { Button } from '../ui/button';\nimport { addPopupWidgetUtm } from '../../lib/addUtmParams';\n\nconst MotionButton = motion(Button);\n\n// Helper to close Brainfish widget before launching third-party widgets\nconst closeBrainfishWidget = () => {\n if (window.Brainfish?.HelpWidget?.close) {\n window.Brainfish.HelpWidget.close();\n }\n};\n\n// Reusable action button component for widget integrations\nconst ActionButton: React.FC<{\n icon?: string;\n label: string;\n index: number;\n onClick: () => void;\n showArrowOut?: boolean;\n asChild?: boolean;\n children?: React.ReactNode;\n}> = ({ icon, label, index, onClick, showArrowOut = false, asChild = false, children }) => (\n <MotionButton\n initial={{ opacity: 0, x: -20 }}\n animate={{ opacity: 1, x: 0 }}\n transition={{ delay: index * 0.1 }}\n className=\"w-full text-left h-12 text-base [&_svg]:size-6\"\n variant=\"ghost\"\n onClick={onClick}\n asChild={asChild}\n >\n {asChild ? (\n children\n ) : (\n <>\n {icon && <MemoizedIcon iconName={icon} />}\n <span className=\"flex-grow\">{label}</span>\n {showArrowOut && <MemoizedIcon iconName=\"ArrowSquareOut\" />}\n </>\n )}\n </MotionButton>\n);\n\n// Reusable action link component for email, link, phone\nconst ActionLink: React.FC<{\n href: string;\n icon?: string;\n label: string;\n index: number;\n onClick: () => void;\n}> = ({ href, icon, label, index, onClick }) => (\n <ActionButton icon={icon} label={label} index={index} onClick={onClick} asChild>\n <a href={href} target=\"_blank\" rel=\"noopener noreferrer\">\n {icon && <MemoizedIcon iconName={icon} />}\n <span className=\"flex-grow\">{label}</span>\n <MemoizedIcon iconName=\"ArrowSquareOut\" />\n </a>\n </ActionButton>\n);\n\ninterface NextBestActionsProps {\n nextBestActions: NextBestAction[];\n onActionClick: (action: NextBestAction, success?: boolean) => void;\n}\n\nconst NextBestActions: React.FC<NextBestActionsProps> = ({ nextBestActions, onActionClick }) => {\n if (!nextBestActions.length) return null;\n\n return (\n <motion.div\n initial={{ opacity: 0, y: 20 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -20 }}\n className=\"w-full\"\n >\n <div className=\"rounded-lg overflow-hidden bg-card border divide-y divide-dark-300\">\n {nextBestActions.map((action, index) => {\n const handleClick = (success?: boolean) => {\n onActionClick(action, success);\n };\n\n // create an key for each action based on label and index\n const key = `${action.label}-${index}`.replace(/\\s+/g, '-');\n\n switch (action.type) {\n case NextBestActionType.Email:\n return (\n <ActionLink\n key={key}\n href={`mailto:${action.value}`}\n icon={action.icon}\n label={action.label}\n index={index}\n onClick={() => handleClick()}\n />\n );\n\n case NextBestActionType.Link:\n return (\n <ActionLink\n key={key}\n href={addPopupWidgetUtm(action.value)}\n icon={action.icon}\n label={action.label}\n index={index}\n onClick={() => handleClick()}\n />\n );\n\n case NextBestActionType.Phone:\n return (\n <ActionLink\n key={key}\n href={`tel:${action.value}`}\n icon={action.icon}\n label={action.label}\n index={index}\n onClick={() => handleClick()}\n />\n );\n\n case NextBestActionType.ZendeskChat:\n return (\n <ActionButton\n key={key}\n icon={action.icon}\n label={action.label}\n index={index}\n onClick={() => {\n // Zendesk Chat (Classic) uses webWidget namespace\n if (window.zE) {\n closeBrainfishWidget();\n window.zE('webWidget', 'open');\n handleClick(true);\n } else {\n console.error(\n \"Zendesk Chat is not loaded. Make sure you've included the Zendesk Chat script in your website.\",\n );\n handleClick(false);\n }\n }}\n />\n );\n\n case NextBestActionType.ZendeskMessenger:\n return (\n <ActionButton\n key={key}\n icon={action.icon}\n label={action.label}\n index={index}\n onClick={() => {\n // Zendesk Messenger uses messenger namespace\n if (window.zE) {\n closeBrainfishWidget();\n window.zE('messenger', 'open');\n handleClick(true);\n } else {\n console.error(\n \"Zendesk Messenger is not loaded. Make sure you've included the Zendesk Messenger script in your website.\",\n );\n handleClick(false);\n }\n }}\n />\n );\n\n case NextBestActionType.IntercomChat:\n return (\n <ActionButton\n key={key}\n icon={action.icon}\n label={action.label}\n index={index}\n onClick={() => {\n if (window.Intercom) {\n closeBrainfishWidget();\n window.Intercom('show');\n handleClick(true);\n } else {\n console.error(\n \"Intercom is not loaded. Make sure you've included the Intercom script in your website.\",\n );\n handleClick(false);\n }\n }}\n />\n );\n\n case NextBestActionType.Freshdesk:\n return (\n <ActionButton\n key={key}\n icon={action.icon}\n label={action.label}\n index={index}\n onClick={() => {\n if (window.fcWidget) {\n closeBrainfishWidget();\n setTimeout(() => {\n window.fcWidget!.open();\n window.fcWidget!.show();\n }, 300);\n handleClick(true);\n } else {\n console.error(\n \"Freshdesk is not loaded. Make sure you've included the Freshdesk script in your website.\",\n );\n handleClick(false);\n }\n }}\n />\n );\n\n default:\n return (\n <ActionButton\n key={key}\n icon=\"ArrowCircleRight\"\n label={action.label}\n index={index}\n onClick={() => handleClick()}\n showArrowOut={true}\n />\n );\n }\n })}\n </div>\n </motion.div>\n );\n};\n\nexport { NextBestActions };\n","import { ActionType, NextBestActionType, type Action } from '../types';\n\n// Action mapping function\nexport const getActionMapping = (action: Action) => {\n // Single mapping object for both type and icon\n const actionMapping: Record<\n string,\n {\n type: NextBestActionType;\n icon: string;\n getValue: (action: any) => string;\n getLabel: (action: any) => string;\n }\n > = {\n [ActionType.CallPhone]: {\n type: NextBestActionType.Phone,\n icon: 'Phone',\n getValue: (a) => a.action?.options?.phoneNumber || a.id,\n getLabel: (a) => a.action?.options?.title || a.type,\n },\n [ActionType.SendEmail]: {\n type: NextBestActionType.Email,\n icon: 'EnvelopeSimple',\n getValue: (a) => a.action?.options?.to || a.id,\n getLabel: (a) => a.action?.options?.title || a.type,\n },\n [ActionType.OpenUrl]: {\n type: NextBestActionType.Link,\n icon: 'Link',\n getValue: (a) => a.action?.options?.url || a.id,\n getLabel: (a) => a.action?.options?.title || a.type,\n },\n [ActionType.RunCallback]: {\n type: NextBestActionType.Callback,\n icon: 'Sparkle',\n getValue: (a) => {\n // Return action metadata as JSON string\n return JSON.stringify({\n actionId: a.id,\n searchIntentId: a.searchIntentId,\n });\n },\n getLabel: (a) => a.action?.options?.title || 'Run Action',\n },\n [ActionType.LaunchZendeskChat]: {\n type: NextBestActionType.ZendeskChat,\n icon: 'ChatCircleDots',\n getValue: (a) => a.action?.options?.embedKey || a.id,\n getLabel: (a) => a.action?.options?.title || 'Chat with us',\n },\n [ActionType.LaunchZendeskMessenger]: {\n type: NextBestActionType.ZendeskMessenger,\n icon: 'ChatCircleDots',\n getValue: (a) => a.action?.options?.embedKey || a.id,\n getLabel: (a) => a.action?.options?.title || 'Chat with us',\n },\n [ActionType.LaunchIntercomChat]: {\n type: NextBestActionType.IntercomChat,\n icon: 'ChatCircleDots',\n getValue: (a) => a.action?.options?.appId || a.id,\n getLabel: (a) => a.action?.options?.title || 'Chat with us',\n },\n [ActionType.LaunchFreshdesk]: {\n type: NextBestActionType.Freshdesk,\n icon: 'ChatCircleDots',\n getValue: (a) => a.action?.options?.token || a.id,\n getLabel: (a) => a.action?.options?.title || 'Chat with us',\n },\n [ActionType.LaunchSupportTicketForm]: {\n type: NextBestActionType.Link,\n icon: 'Notepad',\n getValue: (a) => a.action?.options?.formUrl || a.id,\n getLabel: (a) => a.action?.options?.title || 'Submit a ticket',\n },\n };\n\n // Use the mapping with a default fallback\n const mapping = actionMapping[action.type] || {\n type: NextBestActionType.Link,\n icon: 'Link',\n getValue: (a) => a.action?.options?.url || a.id,\n getLabel: (a) => a.action?.options?.title || a.type,\n };\n\n return mapping;\n};\n","import React, { useState } from 'react';\n\nimport { Action } from './types';\nimport { NextBestAction } from './types';\nimport type { ActionClick } from './types';\nimport { NextBestActions } from './NextBestActions';\nimport { getActionMapping } from './helpers/nextBestActions';\n\n// AnswerActions component to handle different actions sources\ninterface AnswerActionsProps {\n actions?: Action[];\n nextBestActions?: NextBestAction[];\n isLastAnswer?: boolean;\n handleActionClick?: (action: ActionClick) => void;\n searchQueryId: string;\n searchIntentId?: string;\n question: string;\n answer: string;\n}\n\nconst AnswerActions: React.FC<AnswerActionsProps> = ({\n actions,\n nextBestActions,\n isLastAnswer,\n handleActionClick,\n searchQueryId,\n searchIntentId,\n question,\n answer,\n}) => {\n const hasActions = actions && actions.length > 0;\n const hasNextBestActions = nextBestActions && isLastAnswer && nextBestActions.length > 0;\n\n const [showAnswerActions] = useState(hasActions || hasNextBestActions);\n\n if (!showAnswerActions) {\n return null;\n }\n\n // Actions from the actions prop coming from intent match\n let mappedActions: NextBestAction[] = [];\n\n if (hasActions) {\n mappedActions = actions.map((action) => {\n // Attach searchIntentId to the action before mapping\n const actionWithIntent = {\n ...action,\n searchIntentId,\n };\n\n const mapping = getActionMapping(actionWithIntent);\n\n return {\n id: action.id,\n label: mapping.getLabel(actionWithIntent),\n type: mapping.type,\n icon: mapping.icon,\n value: mapping.getValue(actionWithIntent),\n };\n });\n }\n\n // Actions from the nextBestActions prop for default actions\n // only display actions if there are actions and it's the last answer\n if (hasNextBestActions) {\n // filter out nextBestActions that have the same type as the already mapped actions.\n // this is to avoid duplicate action types. eg. both the action and the next best action are \"open_url\"\n const filteredNextBestActions = nextBestActions.filter(\n (action) => !mappedActions.some((mappedAction) => mappedAction.type === action.type),\n );\n mappedActions = mappedActions.concat(filteredNextBestActions);\n }\n\n return (\n <div className=\"p-4\">\n <NextBestActions\n nextBestActions={mappedActions}\n onActionClick={(action: NextBestAction, success?: boolean) => {\n if (action) {\n handleActionClick?.({\n action,\n searchQueryId: searchQueryId || '',\n query: question,\n answer,\n success,\n });\n }\n }}\n />\n </div>\n );\n};\n\nexport default AnswerActions;\n","import { useChatSearch } from '../ChatSearchContext';\n\nexport const useIsChatSearchDirty = () => {\n const { showResults, answers } = useChatSearch();\n\n const isDirty = Boolean(showResults || answers.length > 0);\n\n return isDirty;\n};\n","import { RefObject } from 'react';\n\nexport const useScrollManager = (\n answerRefs: RefObject<(HTMLDivElement | null)[]>,\n containerRef: RefObject<HTMLDivElement | null>,\n bottomRef?: RefObject<HTMLDivElement | null>,\n) => {\n const scrollToLastAnswer = () => {\n requestAnimationFrame(() => {\n const lastAnswer = answerRefs.current?.[answerRefs.current.length - 1];\n const container = containerRef.current;\n if (lastAnswer && container) {\n const rect = lastAnswer.getBoundingClientRect();\n const containerRect = container.getBoundingClientRect();\n const targetScroll = container.scrollTop + (rect.top - containerRect.top) - 80;\n container.scrollTo({ top: targetScroll, behavior: 'smooth' });\n }\n });\n };\n\n const scrollToAnswer = (index: number) => {\n requestAnimationFrame(() => {\n const answer = answerRefs.current?.[index];\n const container = containerRef.current;\n if (answer && container) {\n const rect = answer.getBoundingClientRect();\n const containerRect = container.getBoundingClientRect();\n const targetScroll = container.scrollTop + (rect.top - containerRect.top) - 80;\n container.scrollTo({ top: targetScroll, behavior: 'smooth' });\n }\n });\n };\n\n const scrollToBottom = () => {\n setTimeout(() => {\n if (bottomRef?.current && containerRef.current) {\n bottomRef.current.scrollIntoView({ behavior: 'smooth', block: 'end' });\n }\n }, 200);\n };\n\n return { scrollToLastAnswer, scrollToAnswer, scrollToBottom };\n};\n","import { useCallback } from 'react';\nimport { useEffectOnce } from 'react-use';\n\nimport { useChatSearch } from '../ChatSearchContext';\nimport type { TextConfig } from '../text-config';\nimport { clearAll, setAnswers } from './useAnswerList';\nimport { markdownTextBlock } from '../blocks/utils';\nimport { Answer } from '../types';\n\nimport { isAnswerUncertain } from '@/lib/utils';\nimport { loadConversation } from '@/lib/api';\n\ninterface UseLoadConversationProps {\n loadConversationEndpoint: string | undefined;\n headers?: Record<string, string>;\n mergedTextConfig: TextConfig;\n}\n\n/**\n * Hook to load a conversation by ID.\n * @param loadConversationEndpoint - The endpoint to use to load the conversation.\n * @param headers - The headers to use when loading the conversation.\n * @param mergedTextConfig - The text configuration to use.\n * @returns The function to load a conversation by ID.\n */\nexport const useConversationLoader = ({ loadConversationEndpoint, headers, mergedTextConfig }: UseLoadConversationProps) => {\n const {\n setIsLoadingConversation,\n setShowResults,\n answerListDispatch,\n conversationId,\n setConversationId,\n clearConversationId,\n setLoadError,\n } = useChatSearch();\n\n const loadConversationById = useCallback(\n (conversationId: string) => {\n if (!loadConversationEndpoint) {\n return;\n }\n\n setIsLoadingConversation(true);\n setIsLoadingConversation(true);\n setShowResults(true);\n\n const controller = new AbortController();\n\n loadConversation({\n endpoint: loadConversationEndpoint,\n conversationId,\n headers,\n signal: controller.signal,\n })\n .then(({ data }) => {\n const answers = data.map((query): Answer => {\n return {\n id: query.searchQueryId,\n state: 'completed',\n question: query.question,\n isUncertain: isAnswerUncertain(query.answer).uncertain,\n searchQueryId: query.searchQueryId,\n searchIntentId: query.searchIntentId,\n blocks: query.answer.split('---').map((text) =>\n markdownTextBlock({\n text: text.trim(),\n }),\n ),\n };\n });\n answerListDispatch(setAnswers({ answers }));\n setShowResults(true);\n })\n .catch((error) => {\n console.error('Error loading conversation:', error);\n answerListDispatch(clearAll());\n clearConversationId();\n setShowResults(false);\n setLoadError(\n mergedTextConfig.errorText || 'Sorry, we were unable to process the request right now. Please try again in a moment.',\n );\n })\n .finally(() => {\n setIsLoadingConversation(false);\n });\n\n return () => controller.abort('Conversation loader aborted');\n },\n [\n loadConversationEndpoint,\n setIsLoadingConversation,\n setShowResults,\n headers,\n answerListDispatch,\n setConversationId,\n setLoadError,\n mergedTextConfig.errorText,\n ],\n );\n\n useEffectOnce(() => {\n let cancel: (() => void) | undefined;\n if (conversationId) {\n // eslint-disable-next-line no-console\n console.log('loading conversation', conversationId);\n cancel = loadConversationById(conversationId);\n }\n\n return () => cancel?.();\n });\n\n return { loadConversationById };\n};\n","import { useRef, useEffect } from 'react';\n\nimport { useChatSearch } from '../ChatSearchContext';\nimport type { ChatSearchState } from '../types';\n\nexport const useSubscriptionManager = () => {\n const stateSubscribersRef = useRef<((state: ChatSearchState) => void)[]>([]);\n const { showResults, answers, isLoadingConversation, loadError } = useChatSearch();\n\n // Notify subscribers whenever the state changes\n useEffect(() => {\n const state: ChatSearchState = {\n showResults,\n answers,\n isLoading: isLoadingConversation,\n error: loadError,\n };\n\n stateSubscribersRef.current.forEach((callback) => callback(state));\n }, [showResults, answers, isLoadingConversation, loadError]);\n\n // Function to add a new subscriber\n const subscribeToStateChanges = (callback: (state: ChatSearchState) => void) => {\n stateSubscribersRef.current.push(callback);\n // Notify the new subscriber with the initial state\n callback({\n showResults,\n answers,\n isLoading: isLoadingConversation,\n error: loadError,\n });\n\n // Return an unsubscribe function\n return () => {\n stateSubscribersRef.current = stateSubscribersRef.current.filter((cb) => cb !== callback);\n };\n };\n\n return { subscribeToStateChanges };\n};\n","import { useState, useEffect, useCallback } from 'react';\n\nimport type { PagePermissionResponse, PageContentResponse, IncludePageStateMessage } from '../types/messages';\n\nimport { createConversationId } from '@/lib/api';\n\ninterface UseIncludePageProps {\n isAgentAssist?: boolean;\n apiKey: string;\n trackEvent?: (eventName: string, data: Record<string, any>) => void;\n}\n\n/**\n * Hook to manage \"include page\" toggle functionality for agent assist mode.\n * Handles permission requests, page content fetching, and state management.\n */\nexport const useIncludePage = ({ isAgentAssist, apiKey, trackEvent }: UseIncludePageProps) => {\n const [includePageEnabled, setIncludePageEnabled] = useState(false);\n const [includePageLoading, setIncludePageLoading] = useState(false);\n const [includePageDisabled, setIncludePageDisabled] = useState(false);\n\n /**\n * Sends a message to the parent window and waits for a response with matching requestId\n */\n const sendMessageToParent = useCallback(\n <T>(message: object, timeout: number = 5000): Promise<T> => {\n return new Promise((resolve, reject) => {\n const requestId = createConversationId();\n /* eslint-disable-next-line prefer-const */\n let timeoutId: ReturnType<typeof setTimeout>;\n\n const handler = (event: MessageEvent) => {\n if (event.data.requestId === requestId) {\n clearTimeout(timeoutId);\n window.removeEventListener('message', handler);\n resolve(event.data as T);\n }\n };\n\n timeoutId = setTimeout(() => {\n window.removeEventListener('message', handler);\n reject(new Error('Request timeout'));\n }, timeout);\n\n window.addEventListener('message', handler);\n window.parent.postMessage({ ...message, requestId, widgetKey: apiKey }, '*');\n });\n },\n [apiKey],\n );\n\n /**\n * Handles toggling the include page feature on/off\n */\n const handleIncludePageToggle = useCallback(\n async (enabled: boolean) => {\n setIncludePageLoading(true);\n\n try {\n if (enabled) {\n // Request permissions immediately when turning ON\n const response = await sendMessageToParent<PagePermissionResponse>({\n type: 'REQUEST_PAGE_PERMISSION',\n });\n\n if (!response.granted) {\n trackEvent?.('Include Page Permission Denied', {});\n throw new Error('Permission denied');\n }\n\n // Notify parent to update storage when turning ON\n window.parent.postMessage(\n {\n type: 'UPDATE_PAGE_TOGGLE_STATE',\n enabled: true,\n widgetKey: apiKey,\n },\n '*',\n );\n\n trackEvent?.('Include Page Enabled', {});\n setIncludePageEnabled(true);\n } else {\n // Notify parent to update storage when turning OFF\n window.parent.postMessage(\n {\n type: 'UPDATE_PAGE_TOGGLE_STATE',\n enabled: false,\n widgetKey: apiKey,\n },\n '*',\n );\n\n trackEvent?.('Include Page Disabled', {});\n setIncludePageEnabled(false);\n }\n } catch (error) {\n console.error('Failed to toggle include page:', error);\n setIncludePageEnabled(false);\n } finally {\n setIncludePageLoading(false);\n }\n },\n [apiKey, sendMessageToParent, trackEvent],\n );\n\n /**\n * Fetches page content from the Chrome extension\n */\n const fetchPageContext = useCallback(\n async (conversationId?: string, searchQuery?: string) => {\n if (!includePageEnabled || !isAgentAssist || includePageDisabled) {\n return undefined;\n }\n\n try {\n setIncludePageLoading(true);\n const response = await sendMessageToParent<PageContentResponse>(\n {\n type: 'REQUEST_PAGE_CONTENT',\n },\n 5000,\n );\n\n if (response.success && response.content) {\n trackEvent?.('Page Content Included', {\n conversationId,\n searchQuery,\n contentLength: response.content.length,\n });\n\n return [\n {\n type: 'text' as const,\n text: `I am currently viewing this web page:\\n\\n${response.content}`,\n },\n ];\n }\n\n return undefined;\n } catch (error) {\n console.error('Failed to fetch page content:', error);\n trackEvent?.('Page Content Fetch Failed', { conversationId, searchQuery });\n\n return undefined;\n } finally {\n setIncludePageLoading(false);\n }\n },\n [includePageEnabled, isAgentAssist, includePageDisabled, sendMessageToParent, trackEvent],\n );\n\n // Listen for include page state changes from parent (for tab switching)\n useEffect(() => {\n if (!isAgentAssist) return;\n\n const handleMessage = (event: MessageEvent) => {\n const data = event.data as IncludePageStateMessage;\n if (data.type === 'INCLUDE_PAGE_STATE') {\n setIncludePageEnabled(data.enabled || false);\n setIncludePageDisabled(data.disabled || false);\n }\n };\n\n window.addEventListener('message', handleMessage);\n\n return () => window.removeEventListener('message', handleMessage);\n }, [isAgentAssist]);\n\n return {\n includePageEnabled,\n includePageLoading,\n includePageDisabled,\n handleIncludePageToggle,\n fetchPageContext,\n };\n};\n","import React, { useState } from 'react';\nimport { Copy, CaretDown, Check, ArrowSquareOut } from '@phosphor-icons/react';\n\nimport { Button } from '../ui/button';\nimport { addPopupWidgetUtm } from '../../lib/addUtmParams';\nimport type {\n SearchResult,\n FeedbackResponse,\n AnswerBlock as AnswerBlockType,\n AnswerState,\n RedirectRule,\n Action,\n NextBestAction,\n ActionClick,\n} from './types';\nimport { AnswerBlock } from './AnswerBlock';\nimport { blocksToPlainText } from './blocks/utils';\nimport AnswerActions from './AnswerActions';\n\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible';\nimport { Feedback } from '@/components/feedback';\nimport { GeneratingStar } from '@/components/generating-star';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { cn } from '@/lib/utils';\n\ninterface AnswerProps {\n index: number;\n blocks?: AnswerBlockType[];\n state?: AnswerState;\n question: string;\n searchResults?: SearchResult[];\n searchQueryId?: string;\n hideCitations?: boolean;\n feedback?: FeedbackResponse;\n onFeedback?: (response: FeedbackResponse) => void;\n disableFeedback?: boolean;\n textConfig?: {\n positiveAnswerText?: string;\n negativeAnswerText?: string;\n loadingSearchText?: string;\n loadingAnswerText?: string;\n uncertaintyFallbackText?: Record<string, string>;\n };\n searchIntentId?: string;\n redirectRules?: RedirectRule[];\n actions?: Action[];\n handleActionClick?: (action: ActionClick) => void;\n nextBestActions?: NextBestAction[];\n isLastAnswer?: boolean;\n onFeedbackReasonSubmit?: (reason: string) => void;\n hasError?: boolean;\n}\n\nexport function Answer({\n index,\n blocks = [],\n question,\n searchResults,\n state = 'completed',\n searchQueryId,\n searchIntentId,\n hideCitations = false,\n feedback,\n onFeedback,\n disableFeedback = false,\n textConfig = {},\n redirectRules,\n actions,\n handleActionClick,\n nextBestActions,\n isLastAnswer,\n onFeedbackReasonSubmit,\n hasError = false,\n}: AnswerProps) {\n const [isCopied, setIsCopied] = useState(false);\n const [isExpanded, setIsExpanded] = useState(false);\n\n const answer = blocksToPlainText(blocks);\n\n const isFetching = state === 'fetching-search-results' || state === 'fetching-stream';\n const isFetchingInitialAnswer = isFetching && blocks.length === 1;\n const isFetchingSearchResults = state === 'fetching-search-results';\n const isIdle = state === 'getting-action-inputs' || state === 'completed';\n const isCompleted = state === 'completed';\n const showError = hasError && isCompleted;\n\n const handleCopy = async () => {\n try {\n // Attempt to use the Clipboard API\n await navigator.clipboard.writeText(answer);\n } catch (err) {\n console.warn('Clipboard API failed, using fallback:', err);\n\n // Fallback for environments where clipboard API is not available\n const textArea = document.createElement('textarea');\n textArea.value = answer;\n textArea.style.position = 'fixed'; // Avoid scrolling to bottom\n textArea.style.opacity = '0'; // Make it invisible\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n\n try {\n document.execCommand('copy');\n } catch (fallbackErr) {\n console.error('Fallback: Oops, unable to copy', fallbackErr);\n }\n\n document.body.removeChild(textArea);\n }\n\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 2000);\n };\n\n const handleFeedback = (response: FeedbackResponse) => {\n if (onFeedback && searchQueryId) {\n onFeedback(response);\n }\n };\n\n return (\n <div\n className=\"rounded-lg relative mx-auto overflow-hidden bg-card border border-primary\"\n data-name=\"SearchResults\"\n data-index={index}\n >\n <div className=\"px-4 pt-4 pb-2\">\n <div className=\"flex items-start justify-between gap-2 min-h-9\">\n <div className=\"flex gap-1\">\n <GeneratingStar loading={!isIdle} />\n <h2 className=\"leading-normal font-semibold m-0 text-foreground self-center text-lg\">{question}</h2>\n </div>\n {isCompleted && !showError && (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" onClick={() => void handleCopy()} className=\"-mt-1 flex-shrink-0\">\n {isCopied ? (\n <Check className=\"text-feedback-positive\" weight=\"bold\" />\n ) : (\n <Copy className=\"text-secondary-foreground\" weight=\"bold\" />\n )}\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n <p>{isCopied ? 'Copied!' : 'Copy'}</p>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )}\n </div>\n </div>\n\n {isFetchingInitialAnswer && (\n <div className=\"px-4 pt-0 pb-2\">\n <p className=\"text-sm text-muted-foreground\">\n {isFetchingSearchResults ? textConfig.loadingSearchText : textConfig.loadingAnswerText}\n </p>\n </div>\n )}\n\n <div className=\"flex flex-col\">\n {blocks?.map((block, i) => (\n <div\n key={i}\n className={cn(\n 'px-4 pt-0 pb-2 border-b last:border-b-0 border-dashed',\n showError && 'text-muted-foreground',\n )}\n >\n <AnswerBlock block={block} redirectRules={redirectRules} state={state} />\n </div>\n ))}\n </div>\n\n {/* Next Best Actions */}\n {isCompleted && !showError && (\n <AnswerActions\n actions={actions}\n nextBestActions={nextBestActions}\n isLastAnswer={isLastAnswer}\n handleActionClick={handleActionClick}\n searchQueryId={searchQueryId || ''}\n searchIntentId={searchIntentId}\n question={question}\n answer={answer}\n />\n )}\n\n {isCompleted && !disableFeedback && !showError && (\n <div className=\"p-4 pt-0\">\n <Feedback\n feedback={feedback}\n onFeedback={handleFeedback}\n textConfig={textConfig}\n disabled={disableFeedback}\n feedbackReasonLength={500}\n feedbackReasonPlaceholder=\"What could we have done better? Your feedback is valuable to us...\"\n onFeedbackReasonSubmit={onFeedbackReasonSubmit}\n feedbackReasonThankYouText=\"Thank you for your feedback!\"\n />\n </div>\n )}\n\n {!hideCitations && searchResults && searchResults.length > 0 && (\n <div className=\"overflow-hidden bg-card border-dashed border-0 border-t-2\">\n <Collapsible open={isExpanded} onOpenChange={setIsExpanded} className=\"w-full\">\n <div>\n <CollapsibleTrigger asChild>\n <Button variant=\"secondary\" className=\"w-full justify-between h-11\" data-name=\"RelatedSources\">\n <div className=\"flex items-center gap-2\">\n <span className=\"font-medium truncate text-base\">Sources</span>\n </div>\n <CaretDown\n className={`size-4 flex-shrink-0 transition-transform duration-200 text-secondary-foreground ${\n isExpanded ? 'rotate-180' : ''\n }`}\n weight=\"bold\"\n />\n <span className=\"sr-only\">Toggle</span>\n </Button>\n </CollapsibleTrigger>\n </div>\n <CollapsibleContent className=\"divide-y divide-dark-300 overflow-hidden CollapsibleContent\">\n {searchResults.map((result) => (\n <a\n key={result.id}\n href={addPopupWidgetUtm(result.url)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex items-center gap-2 p-3 transition-colors duration-200 hover:bg-accent bg-card text-foreground\"\n >\n <span className=\"flex-grow truncate\">{result.title}</span>\n <ArrowSquareOut className=\"size-4 flex-shrink-0 text-secondary-foreground\" weight=\"bold\" />\n </a>\n ))}\n </CollapsibleContent>\n </Collapsible>\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport { motion } from 'framer-motion';\nimport { CaretRight } from '@phosphor-icons/react';\n\nimport { Button } from '../ui/button';\n\nconst MotionButton = motion(Button);\n\ninterface FollowUpQuestionsProps {\n questions: string[];\n onQuestionClick: (question: string) => void;\n}\n\nexport function FollowUpQuestions({ questions, onQuestionClick }: FollowUpQuestionsProps) {\n if (!questions.length) return null;\n\n return (\n <motion.div\n initial={{ opacity: 0, y: 20 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -20 }}\n className=\"w-full\"\n >\n <div className=\"rounded-lg overflow-hidden bg-card border\">\n <h3 className=\"px-4 py-3 border-b border-b-dark-300 font-bold\">Follow-up questions</h3>\n\n {questions.map((question, index) => {\n if (index < 3) {\n return (\n <MotionButton\n key={index}\n initial={{ opacity: 0, x: -20 }}\n animate={{ opacity: 1, x: 0 }}\n transition={{ delay: index * 0.1 }}\n onClick={() => onQuestionClick(question)}\n variant=\"ghost\"\n className=\"w-full text-left\"\n >\n <span className=\"flex-grow\">{question}</span>\n <CaretRight className=\"\" weight=\"bold\" />\n </MotionButton>\n );\n }\n\n return null;\n })}\n </div>\n </motion.div>\n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { ArrowsVertical } from '@phosphor-icons/react';\nimport { motion, AnimatePresence } from 'framer-motion';\n\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { cn } from '@/lib/utils';\n\ninterface TimelineNavigationProps {\n questions: string[];\n activeIndex: number;\n onNavigate: (index: number) => void;\n offset: number;\n}\n\nexport function TimelineNavigation({ questions, activeIndex, onNavigate, offset }: TimelineNavigationProps) {\n const [prevActiveIndex, setPrevActiveIndex] = useState(activeIndex);\n\n useEffect(() => {\n setPrevActiveIndex(activeIndex);\n }, [activeIndex]);\n\n // Show 2 items before and after the active item\n const VISIBLE_ITEMS_EACH_SIDE = 2;\n const totalItems = questions.length;\n\n const getVisibleIndexes = () => {\n const indexes: (number | 'ellipsis')[] = [];\n let lastAddedIndex: number | null = null;\n\n const addIndex = (index: number) => {\n if (lastAddedIndex !== null && index - lastAddedIndex > 1) {\n indexes.push('ellipsis');\n }\n indexes.push(index);\n lastAddedIndex = index;\n };\n\n // Always show first item\n addIndex(0);\n\n // Show items around active index\n for (\n let i = Math.max(1, activeIndex - VISIBLE_ITEMS_EACH_SIDE);\n i <= Math.min(totalItems - 2, activeIndex + VISIBLE_ITEMS_EACH_SIDE);\n i++\n ) {\n addIndex(i);\n }\n\n // Always show last item if we have more than one item\n if (totalItems > 1) {\n addIndex(totalItems - 1);\n }\n\n return indexes;\n };\n\n const visibleIndexes = getVisibleIndexes();\n\n return (\n <nav\n aria-label=\"Question timeline navigation\"\n className=\"fixed left-4 top-1/2 -translate-y-1/2 z-40 flex flex-col gap-3\"\n style={{ ...(offset ? { left: `${offset}px` } : {}) } as React.CSSProperties}\n >\n <motion.div\n className=\"flex flex-col items-center space-y-3\"\n role=\"list\"\n initial={false}\n animate={{ y: 0 }}\n transition={{ type: 'spring', stiffness: 300, damping: 30 }}\n >\n <AnimatePresence>\n {visibleIndexes.map((indexOrEllipsis, arrayIndex) => {\n if (indexOrEllipsis === 'ellipsis') {\n return (\n <motion.div\n key={`ellipsis-${arrayIndex}`}\n className=\"h-8 flex items-center justify-center\"\n aria-hidden=\"true\"\n initial={{ opacity: 0, y: prevActiveIndex > activeIndex ? -20 : 20 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: prevActiveIndex > activeIndex ? 20 : -20 }}\n transition={{ duration: 0.2 }}\n >\n <ArrowsVertical className=\"size-4 text-foreground\" />\n </motion.div>\n );\n }\n\n const index = indexOrEllipsis;\n const question = questions[index];\n\n return (\n <motion.div\n key={index}\n className=\"relative group isolate\"\n role=\"listitem\"\n initial={{ opacity: 0, y: prevActiveIndex > activeIndex ? -20 : 20 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: prevActiveIndex > activeIndex ? 20 : -20 }}\n transition={{ duration: 0.2 }}\n layout\n >\n <TooltipProvider delayDuration={100}>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n onClick={() => onNavigate(index)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n onNavigate(index);\n }\n }}\n className={cn(\n 'flex items-center justify-center size-8 rounded-full transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 hover:opacity-90 cursor-pointer ring-primary ',\n index === activeIndex ? 'bg-primary text-primary-foreground' : 'bg-stone-300 text-zinc-800',\n )}\n aria-label={`Navigate to question ${index + 1}: ${question}`}\n aria-current={index === activeIndex ? 'step' : undefined}\n >\n {index + 1}\n </button>\n </TooltipTrigger>\n <TooltipContent\n side=\"right\"\n sideOffset={8}\n className=\"max-w-[300px] bg-card text-card-foreground border-foreground/35\"\n >\n <p className=\"break-words leading-relaxed\">{question}</p>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n </motion.div>\n );\n })}\n </AnimatePresence>\n </motion.div>\n </nav>\n );\n}\n","import { ArrowDown } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { Button } from '@/components/ui/button';\n\ninterface ScrollToBottomArrowProps {\n onClick: () => void;\n}\n\nexport function ScrollToBottomArrow({ onClick }: ScrollToBottomArrowProps) {\n return (\n <Button\n size=\"icon\"\n variant=\"secondary\"\n className=\"fixed bottom-20 right-4 rounded-full transition-opacity duration-300 border-border shadow-md\"\n onClick={onClick}\n >\n <ArrowDown className=\"size-5\" />\n </Button>\n );\n}\n","import React from 'react';\n\nimport { Switch } from '@/components/ui/switch';\n\ninterface IncludePageToggleProps {\n value: boolean;\n loading: boolean;\n disabled: boolean;\n onToggle: (enabled: boolean) => Promise<void>;\n}\n\nexport function IncludePageToggle({ value, loading, disabled, onToggle }: IncludePageToggleProps) {\n return (\n <div className=\"flex items-center gap-2\">\n <Switch id=\"include-page\" checked={value} onCheckedChange={onToggle} disabled={loading || disabled} />\n <label htmlFor=\"include-page\" className=\"text-sm text-foreground flex items-center gap-2\">\n Include page\n {loading && <div className=\"animate-spin rounded-full size-3 border-2 border-t-transparent border-primary\" />}\n </label>\n </div>\n );\n}\n","import React, { createContext, useContext, ReactNode } from 'react';\n\nexport type FeatureFlags = { [key: string]: boolean | string | number };\n\nconst FeatureFlagContext = createContext<FeatureFlags | undefined>(undefined);\n\nexport function FeatureFlagProvider({ children, flags }: { children: ReactNode; flags: FeatureFlags | undefined }) {\n return <FeatureFlagContext.Provider value={flags ?? {}}>{children}</FeatureFlagContext.Provider>;\n}\n\nexport function useBooleanFlagValue(flagKey: string, defaultValue: boolean): boolean {\n const flags = useContext(FeatureFlagContext);\n\n if (!flags) {\n console.warn(`useBooleanFlagValue(\"${flagKey}\") used outside of FeatureFlagProvider. Returning default value.`);\n\n return defaultValue;\n }\n\n const value = flags[flagKey];\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return Boolean(value);\n}\n","import React, { useRef, useEffect, useState } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { MagnifyingGlass, Image, X, ArrowRight, CaretRight, Globe, LockSimple } from '@phosphor-icons/react';\nimport { getCountry } from 'countries-and-timezones';\n\nimport { Button } from '../ui/button';\nimport { Collection, Suggestion } from './types';\nimport { IncludePageToggle } from './IncludePageToggle';\n\nimport { Combobox } from '@/components/combobox';\nimport { TwoLevelCombobox } from '@/components/two-level-combobox';\nimport { ComboboxItem } from '@/components/combobox';\nimport { cn } from '@/lib/utils';\nimport { useBooleanFlagValue } from '@/lib/feature-flags';\n\nexport const PrimarySearch = React.forwardRef<\n HTMLTextAreaElement,\n {\n query: string;\n onQueryChange: (query: string) => void;\n onSearch: () => void;\n textConfig: {\n searchPlaceholder?: string;\n attachImageText?: string;\n allDocumentsText?: string;\n };\n collections?: Collection[];\n currentCollectionId?: string;\n onCollectionChange?: (collectionId: string) => void;\n allowedRegions?: string[];\n currentRegion?: string;\n onRegionChange?: (region: string) => void;\n apiKey?: string;\n fetchRegionConfig?: (\n apiKey: string,\n region: string,\n ) => Promise<{ settings?: { collections?: Collection[] } } | null>;\n disableImageAttachment?: boolean;\n attachedImages?: { file: File; preview: string }[];\n onImageUpload?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n onRemoveImage?: (index: number) => void;\n isSearching?: boolean;\n autocompleteSuggestions?: Suggestion[];\n onAutocompleteSuggestionSelect?: (suggestion: Suggestion) => void;\n isAgentAssist?: boolean;\n includePageEnabled?: boolean;\n includePageLoading?: boolean;\n includePageDisabled?: boolean;\n onIncludePageToggle?: (enabled: boolean) => Promise<void>;\n }\n>(\n (\n {\n query,\n onQueryChange,\n onSearch,\n textConfig,\n collections = [],\n currentCollectionId,\n onCollectionChange,\n allowedRegions = [],\n onRegionChange,\n apiKey,\n fetchRegionConfig,\n disableImageAttachment = false,\n attachedImages = [],\n onImageUpload,\n onRemoveImage,\n isSearching = false,\n autocompleteSuggestions = [],\n onAutocompleteSuggestionSelect,\n isAgentAssist = false,\n includePageEnabled = false,\n includePageLoading = false,\n includePageDisabled = false,\n onIncludePageToggle,\n },\n ref,\n ) => {\n const fileInputRef = useRef<HTMLInputElement>(null);\n const [showSuggestions, setShowSuggestions] = useState(false);\n\n // Get feature flag for showing include page toggle\n const showIncludePageToggle = useBooleanFlagValue('showIncludePageToggle', false);\n\n // Create region items for TwoLevelCombobox\n const regionItems = [\n {\n value: 'all',\n label: 'All regions',\n icon: <Globe className=\"size-4\" />,\n },\n ...allowedRegions.map((region) => {\n const country = getCountry(region);\n\n return {\n value: region,\n label: country?.name || region,\n icon: (\n <img\n alt={`${country?.name || region}`}\n src={`https://purecatamphetamine.github.io/country-flag-icons/3x2/${region}.svg`}\n className=\"w-5\"\n />\n ),\n };\n }),\n ];\n\n // Function to fetch collections for a selected region\n const fetchCollectionsForRegion = React.useCallback(\n async (regionId: string): Promise<ComboboxItem[]> => {\n if (!apiKey || !fetchRegionConfig) {\n console.warn('No apiKey or fetchRegionConfig provided, falling back to current collections');\n\n return collections.map((collection) => ({\n value: collection.id,\n label: collection.name,\n icon: collection.siteEnabled ? <Globe className=\"size-4\" /> : <LockSimple className=\"size-4\" />,\n }));\n }\n\n try {\n const regionConfig = await fetchRegionConfig(apiKey, regionId);\n const regionCollections = regionConfig?.settings?.collections || [];\n\n return regionCollections.map((collection) => ({\n value: collection.id,\n label: collection.name,\n icon: collection.siteEnabled ? <Globe className=\"size-4\" /> : <LockSimple className=\"size-4\" />,\n }));\n } catch (error) {\n console.error('Error fetching collections for region:', error);\n\n // Fallback to current collections on error\n return collections.map((collection) => ({\n value: collection.id,\n label: collection.name,\n icon: collection.siteEnabled ? <Globe className=\"size-4\" /> : <LockSimple className=\"size-4\" />,\n }));\n }\n },\n [apiKey, fetchRegionConfig, collections],\n );\n\n const handleSelectionChange = (region: ComboboxItem | null, collection: ComboboxItem | null) => {\n if (region && onRegionChange) {\n onRegionChange(region.value);\n }\n if (collection && onCollectionChange) {\n onCollectionChange(collection.value);\n }\n };\n\n const adjustTextareaHeight = (textarea: HTMLTextAreaElement) => {\n textarea.style.height = 'auto';\n textarea.style.height = `${textarea.scrollHeight}px`;\n };\n\n const handleKeyPress = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n onSearch();\n }\n };\n\n // Close suggestions when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (!(event.target as Element).closest('.suggestions-dropdown')) {\n setShowSuggestions(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n // Show suggestions only when we have a query\n useEffect(() => {\n if (query.trim()) {\n setShowSuggestions(true);\n }\n }, [query]);\n\n const shouldShowSuggestions = showSuggestions && query.trim() && autocompleteSuggestions.length > 0;\n\n // Animation variants for consistent animations\n const dropdownVariants = {\n hidden: {\n opacity: 0,\n scale: 0.95,\n transformOrigin: 'top',\n },\n visible: {\n opacity: 1,\n scale: 1,\n transition: {\n type: 'spring',\n stiffness: 500,\n damping: 30,\n mass: 0.5,\n },\n },\n exit: {\n opacity: 0,\n scale: 0.95,\n transition: {\n duration: 0.15,\n ease: 'easeOut',\n },\n },\n };\n\n const itemVariants = {\n hidden: {\n opacity: 0,\n x: -4,\n },\n visible: {\n opacity: 1,\n x: 0,\n transition: {\n duration: 0.2,\n },\n },\n };\n\n const listVariants = {\n visible: {\n transition: {\n staggerChildren: 0.03,\n delayChildren: 0.05,\n },\n },\n };\n\n return (\n <div className=\"relative w-full\" data-name=\"PrimarySearch\">\n <div\n className={cn(\n 'w-full overflow-hidden bg-background border border-border transition-all',\n shouldShowSuggestions ? 'rounded-t-md' : 'rounded-md',\n )}\n >\n <div className=\"p-3 flex items-center bg-card\" data-name=\"search-input\">\n <MagnifyingGlass className=\"h-5 w-5 mr-2 text-muted-foreground\" aria-hidden role=\"presentation\" />\n <textarea\n ref={ref}\n value={query}\n onChange={(e) => {\n onQueryChange(e.target.value);\n adjustTextareaHeight(e.target);\n }}\n onKeyDown={handleKeyPress}\n onFocus={() => setShowSuggestions(true)}\n placeholder={textConfig.searchPlaceholder}\n className={cn(\n 'w-full resize-none !outline-none text-base py-1 min-h-9',\n 'overflow-hidden border-none bg-transparent shadow-none',\n 'placeholder:text-gray-400 text-dark-900 !ring-0',\n )}\n rows={1}\n />\n {isSearching && (\n <div className=\"flex items-center justify-center ml-2\">\n <div className=\"animate-spin rounded-full size-4 border-2 border-t-transparent border-primary\" />\n </div>\n )}\n </div>\n\n {/* Attached images */}\n {!disableImageAttachment && attachedImages.length > 0 && (\n <div className=\"flex gap-2 mt-3 overflow-x-auto pb-1 px-3\">\n {attachedImages.map((image, index) => (\n <div key={index} className=\"relative group rounded-lg overflow-hidden flex-shrink-0 size-20\">\n <img src={image.preview} alt={`Attached ${index + 1}`} className=\"w-full h-full object-cover\" />\n <button\n onClick={() => onRemoveImage?.(index)}\n className={cn(\n 'absolute top-1 right-1 rounded-full p-1 opacity-0',\n 'group-hover:opacity-100 transition-opacity duration-200',\n 'hover:bg-black/70 bg-black/50',\n )}\n >\n <X className=\"size-3 text-white\" aria-label=\"Remove image\" />\n </button>\n </div>\n ))}\n </div>\n )}\n\n {!shouldShowSuggestions && (\n <div className=\"flex items-center justify-between px-3 py-2 border-t border-border\">\n <div className=\"flex gap-2\">\n <div className=\"flex gap-1\" data-name=\"collections-dropdown\">\n {allowedRegions.length > 0 && collections.length > 0 ? (\n // Two-level selection: Region -> Collection\n <TwoLevelCombobox\n firstLevelItems={regionItems}\n fetchSecondLevelItems={fetchCollectionsForRegion}\n onSelectionChange={handleSelectionChange}\n firstLevelLabel=\"Region\"\n secondLevelLabel=\"Collection\"\n firstLevelPlaceholder=\"All documents\"\n className=\"min-w-[200px]\"\n displayLabel={false}\n />\n ) : collections.length > 0 ? (\n // Single-level selection: Collection only (fallback when no regions)\n <Combobox\n options={collections.map((collection) => ({\n value: collection.id,\n label: collection.name,\n icon: collection.siteEnabled ? <Globe className=\"size-4\" /> : <LockSimple className=\"size-4\" />,\n }))}\n value={currentCollectionId === 'all' ? undefined : currentCollectionId}\n defaultValueLabel=\"All documents\"\n placeholder=\"Select collection\"\n noResultsLabel=\"No collections found\"\n dropdownWidth={200}\n onChange={(value) => onCollectionChange?.(value)}\n />\n ) : null}\n </div>\n\n {/* Include page toggle for agent assist mode */}\n {isAgentAssist && onIncludePageToggle && showIncludePageToggle && (\n <IncludePageToggle\n value={includePageEnabled}\n loading={includePageLoading}\n disabled={includePageDisabled}\n onToggle={onIncludePageToggle}\n />\n )}\n\n {/* Image upload input */}\n {!disableImageAttachment && (\n <>\n <input\n type=\"file\"\n ref={fileInputRef}\n accept=\"image/*\"\n multiple\n className=\"hidden\"\n onChange={onImageUpload}\n />\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"rounded-md h-8 hover:bg-opacity-80\"\n onClick={() => fileInputRef.current?.click()}\n aria-label={textConfig.attachImageText}\n >\n <Image className=\"size-4 text-secondary-foreground\" />\n <span className=\"hidden @sm:block\">{textConfig.attachImageText}</span>\n </Button>\n </>\n )}\n </div>\n\n <div className=\"flex items-center\" data-name=\"search-button\">\n <Button\n size=\"sm\"\n disabled={!query || isSearching}\n aria-disabled={!query || isSearching}\n className=\"rounded-md size-8 disabled:opacity-50 bg-primary\"\n onClick={onSearch}\n >\n {isSearching ? (\n <div className=\"flex items-center\" role=\"status\" aria-live=\"polite\">\n <div\n className=\"animate-spin rounded-full size-4 border-2 border-t-transparent border-white\"\n aria-hidden=\"true\"\n />\n <span className=\"sr-only\">Loading</span>\n </div>\n ) : (\n <ArrowRight\n className=\"text-primary-foreground\"\n size={16}\n weight=\"bold\"\n aria-label=\"Submit question\"\n />\n )}\n </Button>\n </div>\n </div>\n )}\n </div>\n\n <AnimatePresence mode=\"wait\">\n {shouldShowSuggestions && (\n <motion.div\n variants={dropdownVariants}\n initial=\"hidden\"\n animate=\"visible\"\n exit=\"exit\"\n className={cn(\n 'suggestions-dropdown absolute',\n 'left-0 right-0 z-50',\n 'overflow-hidden bg-card',\n 'border-border border border-t-0 rounded-b-md shadow-md -mt-px',\n 'md:relative',\n )}\n >\n {/* Current query suggestion */}\n <motion.div variants={itemVariants}>\n {query.trim() && (\n <div\n role=\"option\"\n aria-selected={false}\n tabIndex={0}\n className={cn(\n 'px-4 py-3',\n 'cursor-pointer',\n 'flex items-center gap-3',\n 'transition-colors duration-200',\n 'hover:bg-dark-100/50 text-foreground bg-dark-200',\n 'border-b border border-border',\n )}\n onClick={() => {\n onSearch();\n setShowSuggestions(false);\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onSearch();\n setShowSuggestions(false);\n }\n }}\n >\n <MagnifyingGlass className=\"size-4 flex-shrink-0 text-secondary-foreground\" />\n <span className=\"text-[15px]\">{query}</span>\n <div className=\"ml-auto flex items-center\">\n <CaretRight className=\"size-4 text-secondary-foreground\" />\n </div>\n </div>\n )}\n </motion.div>\n\n <motion.div variants={listVariants} initial=\"hidden\" animate=\"visible\">\n {autocompleteSuggestions.map((suggestion) => (\n <motion.div\n key={suggestion.id}\n variants={itemVariants}\n role=\"option\"\n aria-selected={false}\n tabIndex={0}\n className=\"px-4 py-3 cursor-pointer flex items-center gap-3 transition-colors duration-200 hover:bg-dark-300 text-foreground\"\n onClick={() => {\n onAutocompleteSuggestionSelect?.(suggestion);\n setShowSuggestions(false);\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onAutocompleteSuggestionSelect?.(suggestion);\n setShowSuggestions(false);\n }\n }}\n >\n <MagnifyingGlass className=\"size-4 flex-shrink-0 text-secondary-foreground\" />\n <span className=\"text-[15px]\">{suggestion.question}</span>\n <div className=\"ml-auto flex items-center\">\n <CaretRight className=\"size-4 text-secondary-foreground\" />\n </div>\n </motion.div>\n ))}\n </motion.div>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n );\n },\n);\n\nPrimarySearch.displayName = 'PrimarySearch';\n\nexport default PrimarySearch;\n","import React, { useRef, useState, useEffect } from 'react';\nimport { MagnifyingGlass, ArrowRight } from '@phosphor-icons/react';\nimport { motion } from 'framer-motion';\n\nimport styles from './FollowUpSearchBar.module.css';\nimport { Button } from '../ui/button';\nimport { Textarea } from '../ui/textarea';\nimport type { TextConfig } from './types';\n\nimport { cn } from '@/lib/utils';\n\ninterface FollowUpSearchBarProps {\n initialQuery?: string; // Initial query value (optional)\n onQueryChange: (query: string) => void; // Called on blur or enter key\n isSearching: boolean;\n handleFollowUpSearch: (query: string) => void;\n textConfig: TextConfig;\n}\n\nexport const FollowUpSearchBar = React.forwardRef<HTMLTextAreaElement, FollowUpSearchBarProps>(\n ({ initialQuery = '', onQueryChange, isSearching, handleFollowUpSearch, textConfig }, ref) => {\n // Use internal state instead of prop\n const [localQuery, setLocalQuery] = useState(initialQuery);\n\n const followUpInputRef = useRef<HTMLTextAreaElement | null>(null);\n const setCombinedRef = (instance: HTMLTextAreaElement | null) => {\n followUpInputRef.current = instance;\n if (typeof ref === 'function') {\n ref(instance);\n } else if (ref && 'current' in ref) {\n (ref as React.MutableRefObject<HTMLTextAreaElement | null>).current = instance;\n }\n };\n\n // Automatically adjust height based on content\n useEffect(() => {\n if (followUpInputRef.current) {\n followUpInputRef.current.style.height = 'inherit';\n followUpInputRef.current.style.height = `${followUpInputRef.current.scrollHeight}px`;\n }\n }, [localQuery]);\n\n // Reset local state when initialQuery changes (e.g., after search is performed)\n useEffect(() => {\n setLocalQuery(initialQuery);\n }, [initialQuery]);\n\n const handleKeyPress = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey && !isSearching) {\n e.preventDefault();\n const currentQuery = localQuery;\n onQueryChange(currentQuery); // Emit the query change to parent\n handleFollowUpSearch(currentQuery);\n // Clear the local state immediately\n setLocalQuery('');\n }\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setLocalQuery(e.target.value);\n };\n\n const handleBlur = () => {\n if (localQuery !== initialQuery) {\n onQueryChange(localQuery); // Emit the query change to parent on blur\n }\n };\n\n const handleSearchClick = () => {\n const currentQuery = localQuery;\n onQueryChange(currentQuery); // Emit the query change to parent\n handleFollowUpSearch(currentQuery);\n // Clear the local state immediately\n setLocalQuery('');\n };\n\n return (\n <motion.footer\n initial={{ opacity: 0, y: 20 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.5 }}\n className={styles.followUpSearchBar}\n >\n <div className=\"container flex items-center justify-center p-3\">\n <div className=\"relative flex w-full items-center gap-2 rounded bg-card px-2 border border-dark-400\">\n <div className=\"size-6 flex flex-shrink-0 justify-center items-center\">\n <MagnifyingGlass className=\"size-5 text-secondary-foreground\" />\n </div>\n <Textarea\n ref={setCombinedRef}\n value={localQuery}\n onChange={handleChange}\n onBlur={handleBlur}\n onKeyDown={handleKeyPress}\n placeholder={textConfig.followUpPlaceholder}\n className=\"min-h-[44px] w-full resize-none border-0 shadow-none bg-transparent px-0 py-2.5 focus:outline-none focus:ring-0 focus-visible:ring-0\"\n rows={1}\n />\n <Button\n type=\"button\"\n size=\"icon\"\n disabled={isSearching || !localQuery.trim()}\n onClick={handleSearchClick}\n className={cn(\n 'size-8 shrink-0 rounded',\n localQuery ? 'bg-primary text-primary-foreground' : 'bg-dark-400 text-white',\n )}\n >\n {isSearching ? (\n <div className=\"animate-spin rounded-full size-4 sm:size-5 border-2 border-dark/40 !border-t-foreground\" />\n ) : (\n <ArrowRight className=\"size-6\" />\n )}\n </Button>\n </div>\n </div>\n </motion.footer>\n );\n },\n);\n\nFollowUpSearchBar.displayName = 'FollowUpSearchBar';\n","import React from 'react';\nimport { motion } from 'framer-motion';\nimport { ArrowsOutSimple, ArrowsInSimple, ArrowLeft, X } from '@phosphor-icons/react';\n\nimport { Button } from '../ui/button';\nimport { useIsChatSearchDirty } from './hooks/useIsChatSearchDirty';\nimport { useChatSearch } from './ChatSearchContext';\n\nimport { cn } from '@/lib/utils';\n\ntype HeaderProps = React.HTMLAttributes<HTMLDivElement> & {\n headerText: string;\n onToggleSizeButtonClick: () => void;\n onBackButtonClick: () => void;\n onCloseWidgetClick: () => void;\n isSearchWidget?: boolean;\n};\n\nexport function Header({\n headerText,\n onToggleSizeButtonClick,\n onBackButtonClick,\n onCloseWidgetClick,\n isSearchWidget,\n className,\n ...props\n}: HeaderProps) {\n const isDirty = useIsChatSearchDirty();\n const [isExpanded, setIsExpanded] = React.useState(false);\n\n const { isSearching, showMobileCloseWidgetButton: hideExpandButton } = useChatSearch();\n\n const handleToggleSizeButtonClick = () => {\n setIsExpanded((prev) => !prev);\n onToggleSizeButtonClick();\n };\n\n return (\n <div\n className={cn(\n 'w-full px-3 py-4 flex items-center justify-between',\n 'bg-primary h-14 leading-6',\n 'md:hidden',\n '@3xl:bg-transparent @3xl:h-auto @3xl:leading-normal',\n '@3xl:justify-center @3xl:space-y-4 @3xl:p-0',\n isSearchWidget ? 'hidden bg-transparent' : '',\n className,\n )}\n {...props}\n >\n <motion.h2\n initial={{ opacity: 0, y: 20 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.5, delay: 0.3 }}\n className={cn(\n 'm-0 text-primary-foreground @3xl:text-foreground flex gap-1 items-center font-bold text-base',\n isSearchWidget ? '' : '@3xl:text-5xl',\n )}\n >\n {isDirty && (\n <Button\n size=\"icon\"\n variant=\"ghost\"\n onClick={onBackButtonClick}\n aria-label=\"Go back\"\n className={cn('shrink-0 text-primary-foreground', isSearchWidget ? '' : '@3xl:hidden')}\n disabled={isSearching}\n >\n <ArrowLeft />\n </Button>\n )}\n\n <span>{headerText}</span>\n </motion.h2>\n <div className=\"@3xl:hidden shrink-0\" data-name=\"HeaderButtons\">\n {/* todo: conversation history button */}\n\n {!hideExpandButton && (\n <Button\n size=\"icon\"\n variant=\"ghost\"\n onClick={handleToggleSizeButtonClick}\n aria-label={isExpanded ? 'Collapse widget' : 'Expand widget'}\n className=\"text-primary-foreground\"\n >\n {isExpanded ? <ArrowsInSimple /> : <ArrowsOutSimple />}\n </Button>\n )}\n <Button\n size=\"icon\"\n variant=\"ghost\"\n onClick={onCloseWidgetClick}\n aria-label=\"Close widget\"\n className=\"text-primary-foreground\"\n >\n <X />\n </Button>\n </div>\n </div>\n );\n}\n","import type { TextConfig as TextConfigType } from './types';\n\nexport type TextConfig = TextConfigType;\n\nexport const defaultTextConfig: TextConfig = {\n headerText: 'How can we help you today?',\n searchPlaceholder: 'Ask a question or type a search term here ...',\n attachImageText: 'Attach image',\n allDocumentsText: 'All documents',\n loadingSearchText: 'Searching for relevant content...',\n loadingAnswerText: 'Crafting a response...',\n errorText: 'Sorry, we were unable to process the request right now. Please try again in a moment.',\n followUpPlaceholder: 'Type your response or follow-up',\n positiveAnswerText: 'Helpful',\n negativeAnswerText: 'Not helpful',\n uncertaintyFallbackText: {\n 'en': \"Sorry, I can't find a clear answer to your question. Please try rephrasing or check the related sources below.\",\n 'es': 'Lo siento, no puedo encontrar una respuesta clara. Intente reformular la pregunta o consulte las fuentes relacionadas.',\n 'fr': 'Désolé, je ne trouve pas de réponse claire. Essayez de reformuler ou consultez les sources connexes.',\n 'de': 'Entschuldigung, ich finde keine klare Antwort. Versuchen Sie es anders zu formulieren oder sehen Sie sich die verwandten Quellen an.',\n 'it': 'Mi dispiace, non trovo una risposta chiara. Prova a riformulare o consulta le fonti correlate.',\n 'pt': 'Desculpe, não encontro uma resposta clara. Tente reformular ou consulte as fontes relacionadas.',\n 'nl': 'Sorry, ik kan geen duidelijk antwoord vinden. Probeer het anders te formuleren of bekijk de gerelateerde bronnen.',\n 'pl': 'Przepraszam, nie znajduję jasnej odpowiedzi. Spróbuj przeformułować pytanie lub sprawdź powiązane źródła.',\n 'ru': 'Извините, я не могу найти четкого ответа. Попробуйте переформулировать или ознакомьтесь со связанными источниками.',\n 'ja': '申し訳ありませんが、明確な回答が見つかりません。質問の言い換えや、関連ソースをご確認ください。',\n 'ko': '죄송합니다. 명확한 답변을 찾을 수 없습니다. 질문을 다시 작성하거나 관련 소스를 확인해 주세요.',\n 'zh': '抱歉,找不到明确的答案。请尝试重新表述或查看相关来源。',\n 'zh-TW': '抱歉,找不到明確的答案。請嘗試重新表述或查看相關來源。',\n },\n};\n","import type { Answer, ConversationContext } from '../types';\nimport { blocksToPlainText } from '../blocks/utils';\n\nexport const buildConversationContext = (answers: Answer[], conversationId?: string): ConversationContext => ({\n conversationId,\n messages: answers.map((a) => ({\n question: a.question,\n answer: blocksToPlainText(a.blocks),\n })),\n});\n","const clientExecutionEventType = 'CLIENT_EXECUTION';\nconst clientExecutionResultEventType = 'CLIENT_EXECUTION_RESULT';\n\ntype ClientActionExecutionResult =\n | {\n success: true;\n data: Record<string, any>;\n }\n | {\n reason: string;\n success: false;\n };\n\nexport const executeClientAction = (key: string, inputs: Record<string, any>) => {\n return new Promise<ClientActionExecutionResult>((resolve) => {\n // When the iFrame sends multiple messages to the parent window,\n // we use this to track which response belongs to which request.\n const messageId = crypto.randomUUID();\n\n const handleResponse = (\n event: MessageEvent<{\n type: string;\n messageId: string;\n result: ClientActionExecutionResult;\n }>,\n ) => {\n if (event.data.messageId === messageId && event.data.type === clientExecutionResultEventType) {\n window.removeEventListener('message', handleResponse);\n resolve(event.data.result);\n }\n };\n\n // Current window of execution\n window.addEventListener('message', handleResponse);\n\n // Send message to parent window\n window.parent.postMessage(\n {\n type: clientExecutionEventType,\n messageId,\n actionKey: key,\n inputs,\n },\n '*',\n );\n\n // Timeout after 5 seconds\n setTimeout(() => {\n window.removeEventListener('message', handleResponse);\n\n resolve({\n success: false,\n reason: `Client Action handler with key ${key} timed out`,\n });\n }, 5000);\n });\n};\n","/**\n * Cancels and releases a ReadableStreamDefaultReader to prevent resource leaks.\n * This utility handles the cancellation and lock release with proper error handling.\n *\n * @param reader - The stream reader to cancel and release\n */\nexport function cancelStreamReader(reader: ReadableStreamDefaultReader<Uint8Array>): void {\n try {\n // Cancel the reader asynchronously\n void reader.cancel().catch((error) => {\n // Reader may already be cancelled or released\n console.warn('Error cancelling stream reader:', error);\n });\n\n // Release the lock to prevent resource leak\n // This must be called here because the finally block in processAnswerStream\n // checks if currentReaderRef.current === reader, and if we've already nullified\n // the ref, the finally block won't release the lock\n try {\n reader.releaseLock();\n } catch (releaseError) {\n // Lock may already be released (shouldn't happen, but handle gracefully)\n console.warn('Error releasing stream reader lock:', releaseError);\n }\n } catch (error) {\n // Synchronous error (shouldn't happen, but handle just in case)\n console.warn('Error cancelling stream reader:', error);\n // Still try to release the lock even if cancel failed\n try {\n reader.releaseLock();\n } catch (releaseError) {\n console.warn('Error releasing stream reader lock:', releaseError);\n }\n }\n}\n","import React from 'react';\nimport { motion } from 'framer-motion';\n\nexport const LoadingConversation = () => {\n return (\n <motion.div\n key=\"loading\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n className=\"w-full flex items-center justify-center py-20\"\n data-name=\"loading\"\n >\n <div className=\"flex flex-col items-center gap-4\">\n <div className=\"animate-spin rounded-full size-8 border-2 border-t-transparent border-primary\" />\n <p className=\"text-sm text-secondary-foreground\">Loading conversation...</p>\n </div>\n </motion.div>\n );\n};\n","import React, { useState, useRef, useEffect, useImperativeHandle, forwardRef } from 'react';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport rehypeRaw from 'rehype-raw';\nimport remarkGfm from 'remark-gfm';\n\nimport { Suggestions } from './Suggestions';\nimport { Answer } from './Answer';\nimport { FollowUpQuestions } from './FollowUpQuestions';\nimport { NextBestActions } from './NextBestActions';\nimport { TimelineNavigation } from './TimelineNavigation';\nimport { ScrollToBottomArrow } from './ScrollToBottomArrow';\nimport { PrimarySearch } from './PrimarySearch';\nimport { FollowUpSearchBar } from './FollowUpSearchBar';\nimport { Header } from './Header';\nimport { defaultTextConfig } from './text-config';\nimport type {\n FeedbackResponse,\n ChatSearchState,\n Suggestion,\n ChatSearchProps,\n AnswerStreamEvent,\n ActionInputs,\n ActionClick,\n SearchQueryAttributes,\n ClientExecutionResult,\n} from './types';\nimport { useChatSearch, ChatSearchProvider } from './ChatSearchContext';\nimport { buildConversationContext } from './helpers/buildConversationContext';\nimport { useConversationLoader, useScrollManager, useSubscriptionManager, useIncludePage } from './hooks';\nimport { executeClientAction } from './helpers/excuteClientAction';\nimport { cancelStreamReader } from './helpers/cancelStreamReader';\nimport {\n appendNewAnswer,\n setAnswerError,\n setUserFeedback,\n setFollowUpQuestions,\n appendAnswerChunk,\n clearAll,\n clearUserFeedback,\n completeAnswer,\n invokeAction,\n setSearchResults,\n markAsUncertain,\n getActionInputs,\n addActionButtons,\n noArticlesFound,\n} from './hooks/useAnswerList';\nimport { LoadingConversation } from './LoadingConversation';\nimport { MemoizedReactMarkdown } from '../markdown';\n\nimport { FeatureFlagProvider } from '@/lib/feature-flags';\nimport { cn, isAnswerUncertain } from '@/lib/utils';\nimport { useAutocomplete } from '@/lib/hooks';\nimport {\n searchApi,\n sendFeedback,\n createConversationId,\n fetchFollowUpQuestions,\n fetchAnswerStream,\n sendFeedbackReason,\n} from '@/lib/api';\nimport { ScrollArea } from '@/components/ui/scroll-area';\nimport { MemoizedIcon } from '@/components/ui/icon';\n\nexport interface ChatSearchHandle {\n createNewThread: (firstQuery?: string) => void;\n showFollowUpThread: (show: boolean) => void;\n subscribeToStateChanges: (callback: (state: ChatSearchState) => void) => () => void;\n focusSearchField: () => void;\n showCloseButton: (showButton: boolean) => void;\n}\n\n// Memoized props for MemoizedReactMarkdown to prevent unnecessary re-renders\nconst markdownRemarkPlugins = [remarkGfm];\nconst markdownRehypePlugins = [rehypeRaw];\nconst markdownComponents = {\n p: ({ children }: { children?: React.ReactNode }) => <span>{children}</span>,\n};\n\nconst ChatSearchComponent = forwardRef<ChatSearchHandle, ChatSearchProps>(\n (\n {\n suggestions: initialSuggestions = [],\n collections = [],\n selectedCollectionId,\n onCollectionChange,\n selectedRegion,\n onRegionChange,\n apiKey,\n fetchRegionConfig,\n searchEndpoint,\n answerStreamEndpoint,\n feedbackEndpoint,\n feedbackReasonEndpoint,\n loadConversationEndpoint,\n autocompleteEndpoint,\n disableFollowUpQuestions = false,\n disableImageAttachment = false,\n disableFeedback = false,\n disclaimer,\n offset = 0,\n headers,\n textConfig = {},\n followUpQuestionsEndpoint,\n className,\n onToggleSizeButtonClick,\n trackEvent,\n onCloseWidget,\n isWidgetMode = true,\n nextBestActions,\n bodyActionButtons,\n onNextBestActionClick,\n userData,\n redirectRules,\n secretAttributes,\n allowedRegions,\n style,\n isSearchWidget = false,\n isAgentAssist = false,\n hideCitations = false,\n },\n ref,\n ) => {\n const {\n answers,\n answerListDispatch,\n query,\n setQuery,\n followUpQuery,\n setFollowUpQuery,\n isSearching,\n setIsSearching,\n showResults,\n setShowResults,\n activeAnswerIndex,\n setActiveAnswerIndex,\n conversationId: currentConversationId,\n setConversationId: setCurrentConversationId,\n clearConversationId: clearCurrentConversationId,\n isLoadingConversation,\n setShowMobileCloseWidgetButton,\n } = useChatSearch(); // Use the context\n\n const mergedTextConfig = { ...defaultTextConfig, ...textConfig };\n\n const [showScrollArrow, setShowScrollArrow] = useState(false);\n const [attachedImages, setAttachedImages] = useState<{ file: File; preview: string }[]>([]);\n const [currentCollectionId, setCurrentCollectionId] = useState<string | undefined>(selectedCollectionId);\n const [currentRegion, setCurrentRegion] = useState<string | undefined>(selectedRegion);\n const [showFollowUp, setShowFollowUp] = useState(true);\n\n const primaryTextareaRef = useRef<HTMLTextAreaElement>(null);\n const answerRefs = useRef<(HTMLDivElement | null)[]>([]);\n const containerRef = useRef<HTMLDivElement>(null);\n const fileInputRef = useRef<HTMLInputElement>(null);\n const primarySearchRef = useRef<HTMLTextAreaElement>(null);\n const followUpSearchRef = useRef<HTMLTextAreaElement>(null);\n const bottomRef = useRef<HTMLDivElement>(null);\n const currentReaderRef = useRef<ReadableStreamDefaultReader<Uint8Array> | null>(null);\n\n // Use autocomplete hook if endpoint is provided\n const { suggestions: autocompleteSuggestions } = useAutocomplete({\n query,\n endpoint: autocompleteEndpoint || '',\n allowedRegions,\n collectionId: currentCollectionId,\n headers,\n conversationId: currentConversationId,\n delay: 300,\n });\n\n const { loadConversationById } = useConversationLoader({\n loadConversationEndpoint,\n headers,\n mergedTextConfig,\n });\n const { scrollToLastAnswer, scrollToAnswer } = useScrollManager(answerRefs, containerRef, bottomRef);\n const { subscribeToStateChanges } = useSubscriptionManager();\n const { includePageEnabled, includePageLoading, includePageDisabled, handleIncludePageToggle, fetchPageContext } =\n useIncludePage({ isAgentAssist, apiKey: apiKey ?? 'unknown', trackEvent });\n\n const loadFollowUpQuestions = async (\n searchQueryId: string,\n conversationId?: string,\n ): Promise<string[] | undefined> => {\n // Fetch follow-up questions if needed\n if (!followUpQuestionsEndpoint || disableFollowUpQuestions) {\n return;\n }\n\n try {\n const questions = await fetchFollowUpQuestions({\n endpoint: followUpQuestionsEndpoint,\n searchQueryId,\n headers,\n conversationId,\n });\n\n return questions;\n } catch (error) {\n console.error('Error fetching follow-up questions:', error);\n\n return undefined;\n }\n };\n\n const processAnswerStream = async ({\n reader,\n searchQueryId,\n conversationId,\n onFirstEvent,\n }: {\n reader: ReadableStreamDefaultReader<Uint8Array>;\n searchQueryId: string;\n conversationId?: string;\n onFirstEvent?: () => void;\n }) => {\n // Store the current reader so it can be cancelled\n currentReaderRef.current = reader;\n let accumulatedAnswer = '';\n try {\n let done = false,\n isFirstEvent = true,\n searchIntentId: string | undefined,\n isUncertain = false,\n value;\n\n while ((({ done, value } = await reader.read()), !done)) {\n // Check if reader was cancelled (set to null)\n if (currentReaderRef.current !== reader) {\n break;\n }\n if (isFirstEvent) {\n isFirstEvent = false;\n onFirstEvent?.();\n }\n\n const lines = new TextDecoder()\n .decode(value)\n .split(/\\n\\n/)\n .filter((line) => line.startsWith('data: '))\n .map((line) => line.replace(/^data: /, '').trim());\n\n for (const line of lines) {\n try {\n // End of stream response\n if (line === '[DONE]') {\n continue;\n }\n\n const event = JSON.parse(line) as AnswerStreamEvent;\n\n if (event.type === 'answer-text-chunk') {\n accumulatedAnswer += event.content;\n\n answerListDispatch(\n appendAnswerChunk({\n text: event.content,\n }),\n );\n\n const uncertaintyCheck = isAnswerUncertain(accumulatedAnswer);\n isUncertain = uncertaintyCheck.uncertain;\n\n if (isUncertain) {\n const uncertaintyText =\n mergedTextConfig.uncertaintyFallbackText?.[uncertaintyCheck.language ?? 'en'] ??\n accumulatedAnswer ??\n \"I don't know.\";\n\n answerListDispatch(markAsUncertain({ uncertaintyText }));\n }\n }\n\n if (event.type === 'action-buttons') {\n searchIntentId = event.searchIntentId;\n answerListDispatch(\n addActionButtons({\n searchIntentId,\n actions: event.actions,\n }),\n );\n }\n\n if (event.type === 'get-action-inputs') {\n searchIntentId = event.searchIntentId;\n\n answerListDispatch(\n getActionInputs({\n searchIntentId: event.searchIntentId,\n inputs: event.inputs,\n actionId: event.actionId,\n schema: event.schema,\n initialValues: event.values,\n onSubmit: async (parameters) => {\n if (event.actionType === 'client_execution') {\n const results = await executeClientAction(event.actionKey, parameters);\n\n return generateAnswerForClientAction({\n searchQueryId,\n conversationId,\n searchIntentId: event.searchIntentId,\n actionId: event.actionId,\n results,\n });\n }\n\n return generateAnswerForAction({\n searchQueryId,\n conversationId,\n searchIntentId: event.searchIntentId,\n actionId: event.actionId,\n parameters,\n });\n },\n }),\n );\n }\n\n // Citations (or sources) happens last in the event\n // where the response is coming from agentic flow\n if (event.type === 'citations') {\n answerListDispatch(\n setSearchResults({\n searchQueryId,\n results: event.data,\n state: 'completed',\n }),\n );\n }\n } catch {\n console.warn('Failed to parse answer stream block');\n }\n }\n }\n\n return { answer: accumulatedAnswer, searchIntentId, isUncertain };\n } catch (error) {\n // If reader was cancelled, don't throw error\n if (currentReaderRef.current !== reader) {\n return { answer: '', searchIntentId: undefined, isUncertain: false };\n }\n throw error;\n } finally {\n // Only release lock if this is still the current reader\n if (currentReaderRef.current === reader) {\n currentReaderRef.current = null;\n reader.releaseLock();\n }\n }\n };\n\n const generateAnswerForQuery = async ({\n searchQueryId,\n conversationId,\n context,\n }: {\n searchQueryId: string;\n conversationId?: string;\n context?: { type: 'text'; text: string }[];\n }) => {\n try {\n const followUpQuestions = loadFollowUpQuestions(searchQueryId);\n\n const response = await fetchAnswerStream({\n endpoint: answerStreamEndpoint,\n headers,\n body: {\n type: 'generate-for-query',\n conversationId,\n searchQueryId,\n profileId: userData?.userId as string | undefined,\n ...(context && { context }),\n },\n });\n\n const reader = response.body?.getReader();\n if (!reader) return;\n\n const { answer, searchIntentId, isUncertain } = await processAnswerStream({\n reader,\n searchQueryId,\n conversationId,\n onFirstEvent: () => {\n trackEvent?.('First Streamed Answer Chunk Received', { conversationId, searchQueryId });\n },\n });\n\n if (!answer) return;\n\n // load follow-up questions if no search intent id is returned - i.e. no search intent was matched\n void followUpQuestions.then((questions) => {\n if (questions && questions.length > 0 && !searchIntentId) {\n answerListDispatch(setFollowUpQuestions({ questions }));\n }\n });\n\n if (isUncertain) {\n trackEvent?.('Answer Not Found', { conversationId, searchQueryId });\n } else {\n trackEvent?.('Answer Found', { conversationId, searchQueryId });\n }\n } catch (e) {\n console.error('Error generating answer for query:', e);\n answerListDispatch(\n setAnswerError({\n error:\n mergedTextConfig.errorText ||\n 'Sorry, we were unable to process the request right now. Please try again in a moment.',\n }),\n );\n } finally {\n answerListDispatch(completeAnswer());\n }\n };\n\n const generateAnswerForAction = async ({\n searchQueryId,\n searchIntentId,\n conversationId,\n actionId,\n parameters,\n }: {\n searchQueryId: string;\n conversationId?: string;\n searchIntentId: string;\n actionId: string;\n parameters: ActionInputs;\n }) => {\n answerListDispatch(invokeAction());\n\n try {\n const response = await fetchAnswerStream({\n endpoint: answerStreamEndpoint,\n headers,\n body: {\n type: 'invoke-action',\n conversationId,\n searchQueryId,\n searchIntentId,\n actionId,\n parameters,\n profileId: userData?.userId as string | undefined,\n },\n });\n\n const reader = response.body?.getReader();\n if (!reader) return;\n\n await processAnswerStream({\n reader,\n searchQueryId,\n });\n } catch (e) {\n console.error('Error generating answer for action:', e);\n answerListDispatch(\n setAnswerError({\n error:\n mergedTextConfig.errorText ||\n 'Sorry, we were unable to process the request right now. Please try again in a moment.',\n }),\n );\n } finally {\n answerListDispatch(completeAnswer());\n setIsSearching(false);\n }\n };\n\n const generateAnswerForClientAction = async ({\n searchQueryId,\n searchIntentId,\n conversationId,\n actionId,\n results,\n }: {\n searchQueryId: string;\n conversationId?: string;\n searchIntentId: string;\n actionId: string;\n results: ClientExecutionResult;\n }) => {\n answerListDispatch(invokeAction());\n\n try {\n const response = await fetchAnswerStream({\n endpoint: answerStreamEndpoint,\n headers,\n body: {\n type: 'client-execution-result',\n conversationId,\n searchQueryId,\n searchIntentId,\n actionId,\n results,\n profileId: userData?.userId as string | undefined,\n },\n });\n\n const reader = response.body?.getReader();\n if (!reader) return;\n\n await processAnswerStream({\n reader,\n searchQueryId,\n });\n } catch (e) {\n console.error('Error generating answer for action:', e);\n answerListDispatch(\n setAnswerError({\n error:\n mergedTextConfig.errorText ||\n 'Sorry, we were unable to process the request right now. Please try again in a moment.',\n }),\n );\n } finally {\n answerListDispatch(completeAnswer());\n setIsSearching(false);\n }\n };\n\n // Function to handle search API call\n const handleSearchApiCall = async ({\n searchQuery,\n conversationId,\n attributes,\n secretAttributes,\n allowedRegions,\n }: {\n searchQuery: string;\n conversationId?: string;\n attributes?: SearchQueryAttributes;\n secretAttributes?: string;\n allowedRegions?: string[];\n }) => {\n const searchResponse = await searchApi({\n endpoint: searchEndpoint,\n query: searchQuery,\n collectionId: currentCollectionId,\n headers,\n conversationId,\n attributes,\n secretAttributes,\n allowedRegions,\n source: isAgentAssist ? 'agent_assist' : undefined,\n });\n\n if (searchResponse.results.length === 0 && !searchResponse.isAgenticResponse) {\n trackEvent?.('No Articles Found', { conversationId, searchQuery });\n\n return;\n }\n\n answerListDispatch(\n setSearchResults({\n searchQueryId: searchResponse.searchQueryId,\n results: searchResponse.results,\n }),\n );\n\n return searchResponse.searchQueryId;\n };\n\n interface PerformSearchProps {\n searchQuery: string;\n event?: { name: string; metaData?: Record<string, any> };\n }\n // Main function to perform the search\n const performSearch = async ({ searchQuery = query.trim(), event }: PerformSearchProps) => {\n if (!searchQuery) return;\n\n const conversationId = currentConversationId || createConversationId();\n setCurrentConversationId(conversationId);\n\n setIsSearching(true);\n setShowResults(true);\n setActiveAnswerIndex(answers.length);\n scrollToLastAnswer();\n\n answerListDispatch(\n appendNewAnswer({\n query: searchQuery,\n }),\n );\n\n // ensure the UI updates before the search API call\n await Promise.resolve();\n\n // focus on follow-up search field if it's visible\n followUpSearchRef.current?.focus();\n\n // Fetch page content if toggle is enabled\n const pageContext = await fetchPageContext(conversationId, searchQuery);\n\n try {\n const attributes = { ...userData } as SearchQueryAttributes;\n const searchQueryId = await handleSearchApiCall({\n searchQuery,\n conversationId,\n attributes,\n secretAttributes,\n allowedRegions,\n });\n\n if (searchQueryId) {\n event &&\n trackEvent?.(event.name, {\n conversationId,\n searchQuery,\n searchQueryId,\n ...event.metaData,\n });\n\n await generateAnswerForQuery({\n searchQueryId,\n conversationId,\n context: pageContext,\n });\n } else {\n answerListDispatch(noArticlesFound());\n }\n } catch (error) {\n console.error('Error generating answer:', error);\n\n // track the error event\n event &&\n trackEvent?.(`${event.name} - Search Error`, {\n conversationId,\n searchQuery,\n ...event.metaData,\n });\n\n answerListDispatch(\n setAnswerError({\n error:\n mergedTextConfig.errorText ||\n 'Sorry, we were unable to process the request right now. Please try again in a moment.',\n }),\n );\n } finally {\n setIsSearching(false);\n }\n };\n\n const createNewThread = (firstQuery?: string) => {\n // Cancel any ongoing stream\n if (currentReaderRef.current) {\n const reader = currentReaderRef.current;\n currentReaderRef.current = null;\n cancelStreamReader(reader);\n }\n\n // Reset loading state\n setIsSearching(false);\n\n // Clear conversation state first (always)\n setQuery('');\n setFollowUpQuery('');\n setShowResults(false);\n answerListDispatch(clearAll());\n setActiveAnswerIndex(0);\n setAttachedImages([]);\n clearCurrentConversationId();\n\n trackEvent?.('New Thread Created', { oldConversationId: currentConversationId });\n\n if (primaryTextareaRef.current) {\n primaryTextareaRef.current.style.height = 'auto';\n }\n\n // If firstQuery is provided, set it and trigger search\n if (firstQuery) {\n setQuery(firstQuery);\n void performSearch({ searchQuery: firstQuery, event: { name: 'New Thread Created with Query' } });\n }\n };\n\n // Expose the methods via ref\n useImperativeHandle(ref, () => ({\n createNewThread,\n showFollowUpThread: (show: boolean) => {\n setShowFollowUp(show);\n },\n subscribeToStateChanges,\n focusSearchField: () => primarySearchRef.current?.focus() || followUpSearchRef.current?.focus(),\n showCloseButton: (showButton: boolean = true) => {\n setShowMobileCloseWidgetButton(showButton);\n },\n }));\n\n // Update currentCollectionId when selectedCollectionId prop changes\n useEffect(() => {\n setCurrentCollectionId(selectedCollectionId);\n }, [selectedCollectionId]);\n\n // Update currentRegion when selectedRegion prop changes\n useEffect(() => {\n setCurrentRegion(selectedRegion);\n }, [selectedRegion]);\n\n const adjustTextareaHeight = (textarea: HTMLTextAreaElement) => {\n textarea.style.height = 'auto';\n textarea.style.height = `${textarea.scrollHeight}px`;\n };\n\n // Function to initiate a primary search\n const handlePrimarySearch = async (searchQuery: string = query.trim()) => {\n await performSearch({ searchQuery, event: { name: 'Primary Field Search Submitted' } });\n };\n\n const handleFeedback = async (response: FeedbackResponse, searchQueryId: string, answerIndex: number) => {\n if (!feedbackEndpoint) return;\n\n // Update UI state immediately\n answerListDispatch(\n setUserFeedback({\n feedback: response,\n index: answerIndex,\n }),\n );\n\n try {\n await sendFeedback({\n endpoint: feedbackEndpoint,\n searchQueryId,\n response,\n headers,\n conversationId: currentConversationId,\n });\n\n trackEvent?.(response === 'accept' ? 'Answer Accepted' : 'Answer Rejected', {\n conversationId: currentConversationId,\n searchQueryId,\n });\n } catch (error) {\n console.error('Error sending feedback:', error);\n // Revert UI state on error\n answerListDispatch(\n clearUserFeedback({\n index: answerIndex,\n }),\n );\n }\n };\n\n const handleFeedbackReasonSubmit = async (reason: string, searchQueryId: string) => {\n if (!feedbackReasonEndpoint) return;\n\n try {\n await sendFeedbackReason({\n endpoint: feedbackReasonEndpoint,\n searchQueryId,\n reason,\n headers,\n });\n } catch (error) {\n console.error('Error sending feedback reason:', error);\n }\n };\n\n const handleFollowUpSearch = async (customQuery?: string) => {\n // Use customQuery if provided, otherwise use the state value\n const queryToUse = customQuery !== undefined ? customQuery : followUpQuery;\n\n if (queryToUse.trim()) {\n setQuery(queryToUse);\n setFollowUpQuery('');\n await performSearch({ searchQuery: queryToUse, event: { name: 'Follow-up Search Field Submitted' } });\n }\n };\n\n const handleSuggestedQuestionClick = (suggestion: Suggestion) => {\n if (suggestion.conversationId) {\n trackEvent?.('Recent Conversation Clicked', {\n conversationId: currentConversationId,\n question: suggestion.question,\n });\n loadConversationById(suggestion.conversationId);\n\n return;\n }\n\n void performSearch({ searchQuery: suggestion.question, event: { name: 'Suggested Question Clicked' } });\n };\n\n const handleAutocompleteSuggestionClick = (suggestion: Suggestion) => {\n // autocomplete suggestions don't have conversation ids\n void performSearch({ searchQuery: suggestion.question, event: { name: 'Autocomplete Suggestion Clicked' } });\n };\n\n useEffect(() => {\n const handleScroll = () => {\n const isNearBottom = window.innerHeight + window.pageYOffset >= document.documentElement.scrollHeight - 100;\n setShowScrollArrow(!isNearBottom);\n };\n\n window.addEventListener('scroll', handleScroll);\n\n return () => window.removeEventListener('scroll', handleScroll);\n }, []);\n\n useEffect(() => {\n return () => {\n attachedImages.forEach((image) => URL.revokeObjectURL(image.preview));\n };\n }, [attachedImages]);\n\n const handleImageUpload = (event: React.ChangeEvent<HTMLInputElement>) => {\n const files = event.target.files;\n if (files) {\n const newImages = Array.from(files).map((file) => ({\n file,\n preview: URL.createObjectURL(file),\n }));\n setAttachedImages((prev) => [...prev, ...newImages]);\n }\n if (fileInputRef.current) {\n fileInputRef.current.value = '';\n }\n };\n\n const removeImage = (index: number) => {\n setAttachedImages((prev) => {\n URL.revokeObjectURL(prev[index].preview);\n\n return prev.filter((_, i) => i !== index);\n });\n };\n\n const handleCollectionChange = (collectionId: string) => {\n setCurrentCollectionId(collectionId);\n onCollectionChange?.(collectionId);\n };\n\n const handleRegionChange = (regionId: string) => {\n setCurrentRegion(regionId);\n onRegionChange?.(regionId);\n // Notify parent component to refetch config with new region\n trackEvent?.('Region Changed', { region: regionId, conversationId: currentConversationId });\n };\n\n // Listen for URL changes and reset state when conversation param is removed\n useEffect(() => {\n const handleUrlChange = () => {\n const urlParams = new URLSearchParams(window.location.search);\n const urlConversationId = urlParams.get('conversation');\n\n if (!urlConversationId) {\n setQuery('');\n setFollowUpQuery('');\n setShowResults(false);\n answerListDispatch(clearAll());\n setActiveAnswerIndex(0);\n setAttachedImages([]);\n if (primaryTextareaRef.current) {\n primaryTextareaRef.current.style.height = 'auto';\n }\n }\n };\n\n window.addEventListener('popstate', handleUrlChange);\n\n return () => window.removeEventListener('popstate', handleUrlChange);\n }, []);\n\n // Update the follow-up question click handler to use performSearch\n const handleFollowUpQuestionClick = (question: string) => {\n trackEvent?.('Follow-up Question Clicked', { conversationId: currentConversationId, question });\n void performSearch({ searchQuery: question, event: { name: 'Follow-up Question Clicked' } });\n };\n\n // handle the next best action click\n const handleNextBestActionClick = ({ action, searchQueryId, query, answer }: ActionClick) => {\n trackEvent?.('Next Best Action Clicked', {\n conversationId: currentConversationId,\n searchQueryId,\n action: action.label,\n });\n const conversation = buildConversationContext(answers, currentConversationId);\n onNextBestActionClick?.({ action, searchQueryId, query, answer, conversation });\n };\n\n // Notify parent window about height changes (autocomplete, streaming, etc.)\n useEffect(() => {\n const container = containerRef.current;\n if (!container || !isSearchWidget) return;\n\n let lastSentHeight = 0;\n let rafId: number | null = null;\n\n const calculateTotalHeight = (): number => {\n const innerContent = container.firstElementChild as HTMLElement;\n const contentHeight = innerContent?.scrollHeight ?? container.scrollHeight;\n\n const footerHeight = document.querySelector('[data-name=\"BrandFooter\"]')?.clientHeight ?? 0;\n const headerHeight = document.querySelector('[data-name=\"Header\"]')?.clientHeight ?? 0;\n const followUpHeight = showResults && showFollowUp ? 70 : 0;\n const verticalPadding = 32;\n\n const chatSearchHeight = document.querySelector('[data-name=\"ChatSearch\"]')?.clientHeight ?? 0;\n const totalHeight = contentHeight + footerHeight + followUpHeight + headerHeight + verticalPadding;\n\n return Math.max(totalHeight, chatSearchHeight);\n };\n\n const sendResize = () => {\n const totalHeight = calculateTotalHeight();\n\n if (totalHeight > 0 && totalHeight !== lastSentHeight) {\n lastSentHeight = totalHeight;\n window.parent.postMessage(\n {\n type: 'RESIZE_IFRAME',\n height: totalHeight,\n widgetKey: apiKey,\n },\n '*',\n );\n }\n };\n\n const handleResize = () => {\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n }\n rafId = requestAnimationFrame(() => {\n sendResize();\n rafId = null;\n });\n };\n\n // Initial resize with small delay for ScrollArea to initialize\n const timeoutId = setTimeout(sendResize, 100);\n\n // Observe content changes (including streaming answers)\n const resizeObserver = new ResizeObserver(handleResize);\n\n // Observe both container and inner content if available\n const innerContent = container.firstElementChild;\n if (innerContent) {\n resizeObserver.observe(innerContent);\n }\n resizeObserver.observe(container);\n\n return () => {\n clearTimeout(timeoutId);\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n }\n resizeObserver.disconnect();\n };\n }, [isSearchWidget, apiKey, showResults, showFollowUp]);\n\n return (\n <div\n className={cn(\n 'w-full relative h-dvh flex flex-col justify-between @container',\n 'md:h-auto md:p-4 md:bg-dark-100',\n className,\n )}\n data-name=\"ChatSearch\"\n style={style}\n >\n {/* Always show the header when in widget mode, or when there are no results */}\n {(isWidgetMode || !showResults) && (\n <Header\n isSearchWidget={isSearchWidget}\n data-name=\"Header\"\n headerText={mergedTextConfig.headerText!}\n onToggleSizeButtonClick={() => {\n onToggleSizeButtonClick?.();\n }}\n onBackButtonClick={() => void createNewThread()}\n onCloseWidgetClick={() => onCloseWidget?.()}\n className={cn('@3xl:mb-4', {\n '!block': showResults && isSearchWidget,\n })}\n />\n )}\n <ScrollArea\n className=\"w-full relative h-auto flex-grow [&>[data-radix-scroll-area-viewport]>div:first-child]:!block\"\n ref={containerRef}\n >\n <AnimatePresence>\n {isLoadingConversation ? (\n <LoadingConversation />\n ) : !showResults ? (\n <>\n {/* Finished loading conversation, no results yet, show search experience */}\n <motion.div\n key=\"search\"\n initial={{ opacity: 0, y: 20 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.5 }}\n className=\"w-full md:space-y-4\"\n >\n {/* Primary Search */}\n <div\n className={cn(\n 'pb-4',\n isSearchWidget ? 'bg-transparent p-3 md:p-0' : 'px-3 bg-primary md:p-0 md:bg-transparent',\n )}\n >\n <motion.div\n initial={{ opacity: 0, y: 20 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.5, delay: 0.4 }}\n >\n <PrimarySearch\n ref={primarySearchRef}\n query={query}\n onQueryChange={(value) => {\n setQuery(value);\n if (primaryTextareaRef.current) {\n adjustTextareaHeight(primaryTextareaRef.current);\n }\n }}\n onSearch={() => void handlePrimarySearch()}\n textConfig={mergedTextConfig}\n collections={collections}\n currentCollectionId={currentCollectionId}\n onCollectionChange={handleCollectionChange}\n allowedRegions={allowedRegions}\n currentRegion={currentRegion}\n onRegionChange={handleRegionChange}\n apiKey={apiKey}\n fetchRegionConfig={fetchRegionConfig}\n disableImageAttachment={disableImageAttachment}\n attachedImages={attachedImages}\n onImageUpload={handleImageUpload}\n onRemoveImage={removeImage}\n isSearching={isSearching}\n autocompleteSuggestions={autocompleteSuggestions}\n onAutocompleteSuggestionSelect={handleAutocompleteSuggestionClick}\n isAgentAssist={isAgentAssist}\n includePageEnabled={includePageEnabled}\n includePageLoading={includePageLoading}\n includePageDisabled={includePageDisabled}\n onIncludePageToggle={handleIncludePageToggle}\n />\n </motion.div>\n </div>\n\n {/* Suggestions */}\n <Suggestions\n suggestions={initialSuggestions}\n onQuestionClick={handleSuggestedQuestionClick}\n title={mergedTextConfig.suggestionsTitle}\n />\n\n {/* Body Action Buttons */}\n {isWidgetMode && bodyActionButtons && bodyActionButtons.length > 0 && (\n <div className=\"mt-4 mb-4 px-3 @3xl:px-0\">\n <div className=\"space-y-3\">\n <NextBestActions\n nextBestActions={bodyActionButtons || []}\n onActionClick={(action) =>\n handleNextBestActionClick({\n action,\n searchQueryId: '',\n query: '',\n answer: '',\n })\n }\n />\n </div>\n </div>\n )}\n </motion.div>\n </>\n ) : (\n <>\n {/* We now have answers, so we can show the results */}\n <motion.div\n key=\"results\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.5 }}\n className=\"w-full max-w-[100vw] space-y-4 p-3 md:p-0\"\n >\n {/* Answers */}\n {answers.map((answer, i) => (\n <motion.div\n key={i}\n ref={(el) => (answerRefs.current[i] = el)}\n initial={{ opacity: 0, y: 20 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.5, delay: i * 0.1 }}\n className=\"space-y-4 last:!mb-8\"\n >\n <Answer\n index={i}\n blocks={answer.blocks}\n question={answer.question}\n state={answer.state}\n searchResults={answer.searchResults}\n searchQueryId={answer.searchQueryId}\n searchIntentId={answer.searchIntentId}\n hideCitations={hideCitations}\n feedback={answer.feedback}\n onFeedback={(response) => void handleFeedback(response, answer.searchQueryId!, i)}\n disableFeedback={disableFeedback}\n textConfig={mergedTextConfig}\n redirectRules={redirectRules}\n nextBestActions={nextBestActions}\n actions={answer.actions}\n handleActionClick={handleNextBestActionClick}\n isLastAnswer={i === answers.length - 1}\n onFeedbackReasonSubmit={(reason) =>\n void handleFeedbackReasonSubmit(reason, answer.searchQueryId!)\n }\n hasError={answer.hasError}\n />\n {i === answers.length - 1 &&\n !disableFollowUpQuestions &&\n answer.followUpQuestions &&\n answer.state === 'completed' &&\n !answer.hasError && (\n <FollowUpQuestions\n questions={answer.followUpQuestions}\n onQuestionClick={handleFollowUpQuestionClick}\n />\n )}\n </motion.div>\n ))}\n </motion.div>\n </>\n )}\n </AnimatePresence>\n {showResults && answers.length > 1 && (\n <div className=\"hidden lg:block\">\n <TimelineNavigation\n questions={answers.map((a) => a.question)}\n activeIndex={activeAnswerIndex}\n onNavigate={(index) => {\n setActiveAnswerIndex(index);\n scrollToAnswer(index);\n }}\n offset={offset}\n />\n </div>\n )}\n\n {disclaimer && isWidgetMode && !(showResults && showFollowUp) && (\n <div\n data-name=\"disclaimer\"\n className={cn(\n 'mt-2 px-3 @3xl:px-0 text-xs text-dark-500 flex items-center gap-1 justify-center text-center w-full md:static md:mt-4 md:text-left md:flex md:gap-4 leading-5',\n isSearchWidget ? 'static mb-2 md:text-left [&>svg]:flex-shrink-0' : 'absolute bottom-12',\n )}\n >\n <MemoizedIcon iconName=\"Info\" className=\"size-4\" />\n <MemoizedReactMarkdown\n className=\"[&_a]:underline [&_a:hover]:no-underline\"\n remarkPlugins={markdownRemarkPlugins}\n rehypePlugins={markdownRehypePlugins}\n components={markdownComponents}\n >\n {disclaimer}\n </MemoizedReactMarkdown>\n </div>\n )}\n\n {/* Invisible div to scroll to */}\n <div ref={bottomRef} />\n </ScrollArea>\n\n {showResults && showFollowUp && (\n <FollowUpSearchBar\n ref={followUpSearchRef}\n initialQuery={followUpQuery}\n onQueryChange={setFollowUpQuery}\n isSearching={isSearching}\n handleFollowUpSearch={handleFollowUpSearch}\n textConfig={mergedTextConfig}\n />\n )}\n\n {showScrollArrow && showResults && <ScrollToBottomArrow onClick={scrollToLastAnswer} />}\n </div>\n );\n },\n);\n\nChatSearchComponent.displayName = 'ChatSearch';\n\nconst ChatSearch = forwardRef<ChatSearchHandle, ChatSearchProps>(({ featureFlags, ...props }, ref) => (\n <FeatureFlagProvider flags={featureFlags}>\n <ChatSearchProvider searchPath={props.searchPath} contentTypeEndpoint={props.contentTypeEndpoint}>\n <ChatSearchComponent {...props} ref={ref} />\n </ChatSearchProvider>\n </FeatureFlagProvider>\n));\n\nChatSearch.displayName = 'ChatSearch';\n\nexport default ChatSearch;\n"],"names":["React","require$$0","require$$1","names_1","names","require$$2","require$$3","require$$4","jsonSchemaTraverseModule","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","s","o","r","e","ajvResolver","action","ActionType","NextBestActionType","MotionButton","conversationId","secretAttributes","allowedRegions","query","innerContent"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]}