@brainfish-ai/components 0.20.1 → 0.20.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatSearch.Bad4C07E.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/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\n// eslint-disable-next-line no-unused-vars\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 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","/* eslint-disable no-unused-vars */\nimport 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 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 }: {\n action: NextBestAction;\n searchQueryId: string;\n query: string;\n answer: string;\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 { 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 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 { isMarkdownTextBlock } 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 = blocks\n .filter(isMarkdownTextBlock)\n .map((block) => block.text)\n .join('\\n\\n---\\n\\n');\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 // eslint-disable-next-line no-console\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","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 { 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 // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return generateAnswerForClientAction({\n searchQueryId,\n conversationId,\n searchIntentId: event.searchIntentId,\n actionId: event.actionId,\n results,\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\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 onNextBestActionClick?.({ action, searchQueryId, query, answer });\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]}