{
  "version": 3,
  "sources": ["../../../../../node_modules/typia/src/TypeGuardError.ts", "../../../../../node_modules/typia/src/internal/_assertGuard.ts", "../../../../../node_modules/typia/src/internal/_accessExpressionAsString.ts", "../../src/document/models/CanvasTree/nodes/utils/hasAncestorVisibility.ts", "../../src/utils/getStringSizeInKilobytes.ts", "../../src/document/models/CanvasTree/utils/updatePluginData.ts", "../../../../plugin-api-validation/src/validation/methods.ts", "../../../../../node_modules/typia/lib/TypeGuardError.mjs", "../../../../plugin-api-validation/src/isPluginValidationError.ts", "../../src/plugins/ActivePlugin.ts", "../../src/plugins/MethodInvocationTracker.ts", "../../src/plugins/PluginAutoUndoGrouping.ts", "../../src/plugins/PluginHealth.ts", "../../src/plugins/RenderState.ts", "../../src/app/ai/agents/prompt/externalSystemPrompt.ts", "../../src/app/ai/agents/sitemap.ts", "../../src/plugins/agent.ts", "../../src/plugins/assets.ts", "../../src/plugins/user.ts", "../../src/plugins/utils/getComponentURL.ts", "../../src/plugins/codeFiles.ts", "../../src/plugins/customCode.ts", "../../src/plugins/environment.ts", "../../src/plugins/borders.ts", "../../src/utils/resolveTokenColor.ts", "../../src/plugins/normalizeColor.ts", "../../src/plugins/supportedControlProps.ts", "../../src/plugins/controlAttributesFromControlProps.ts", "../../src/utils/getVariableAndSource.ts", "../../src/plugins/variables.ts", "../../src/plugins/getPluginControlsFromVekter.ts", "../../src/plugins/getPluginNodeDataFromVekter.ts", "../../../../plugin-api/src/traits.ts", "../../../../plugin-api/src/nodes.ts", "../../src/plugins/controlPropsFromControlAttributes.ts", "../../src/plugins/getVekterNodeDataFromPlugin.ts", "../../src/plugins/image.ts", "../../src/plugins/insertTarget.ts", "../../src/plugins/insertDetachedComponentLayers.ts", "../../../../plugin-api/src/menu.ts", "../../src/plugins/menu.ts", "../../src/plugins/nodeAttributes.ts", "../../src/plugins/nodes.ts", "../../src/plugins/permissions.ts", "../../src/plugins/redirects.ts", "../../src/plugins/supervisor.ts", "../../src/plugins/theme.ts", "../../src/plugins/utils/text.ts", "../../src/plugins/vectors.ts"],
  "sourcesContent": ["export class TypeGuardError<T = any> extends Error {\n  public readonly method: string;\n  public readonly path: string | undefined;\n  public readonly expected: string;\n  public readonly value: any;\n  protected readonly fake_expected_typed_value_?: T | undefined;\n\n  public constructor(props: TypeGuardError.IProps) {\n    // MESSAGE CONSTRUCTION\n    super(\n      props.message ||\n        `Error on ${props.method}(): invalid type${\n          props.path ? ` on ${props.path}` : \"\"\n        }, expect to be ${props.expected}`,\n    );\n\n    // INHERITANCE POLYFILL\n    const proto = new.target.prototype;\n    if (Object.setPrototypeOf) Object.setPrototypeOf(this, proto);\n    else (this as any).__proto__ = proto;\n\n    // ASSIGN MEMBERS\n    this.method = props.method;\n    this.path = props.path;\n    this.expected = props.expected;\n    this.value = props.value;\n  }\n}\nexport namespace TypeGuardError {\n  export interface IProps {\n    method: string;\n    path?: undefined | string;\n    expected: string;\n    value: any;\n    message?: undefined | string;\n  }\n}\n", "import { TypeGuardError } from \"../TypeGuardError\";\n\nexport const _assertGuard = (\n  exceptionable: boolean,\n  props: TypeGuardError.IProps,\n  factory?: (props: TypeGuardError.IProps) => Error,\n): false => {\n  if (exceptionable === true) {\n    if (factory) throw factory(props);\n    else throw new TypeGuardError(props);\n  }\n  return false;\n};\n", "export const _accessExpressionAsString = (str: string): string =>\n  variable(str) ? `.${str}` : `[${JSON.stringify(str)}]`;\n\nconst variable = (str: string): boolean =>\n  reserved(str) === false && /^[a-zA-Z_$][a-zA-Z_$0-9]*$/g.test(str);\n\nconst reserved = (str: string): boolean => RESERVED.has(str);\n\nconst RESERVED: Set<string> = new Set([\n  \"break\",\n  \"case\",\n  \"catch\",\n  \"class\",\n  \"const\",\n  \"continue\",\n  \"debugger\",\n  \"default\",\n  \"delete\",\n  \"do\",\n  \"else\",\n  \"enum\",\n  \"export\",\n  \"extends\",\n  \"false\",\n  \"finally\",\n  \"for\",\n  \"function\",\n  \"if\",\n  \"import\",\n  \"in\",\n  \"instanceof\",\n  \"new\",\n  \"null\",\n  \"return\",\n  \"super\",\n  \"switch\",\n  \"this\",\n  \"throw\",\n  \"true\",\n  \"try\",\n  \"typeof\",\n  \"var\",\n  \"void\",\n  \"while\",\n  \"with\",\n]);\n", "import type { CanvasNode } from \"document/models/CanvasTree/nodes/CanvasNode.ts\"\nimport { isScopeNode } from \"document/models/CanvasTree/nodes/ScopeNode.ts\"\nimport { isRootNode } from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\n\n/**\n * Returns the first ancestor for which resolveValue(\"visible\") strictly equals the target boolean.\n * Scope and root nodes are ignored.\n */\nexport function getFirstAncestorWithVisible(node: CanvasNode, target: boolean): CanvasNode | null {\n\tfor (const ancestor of node.ancestors()) {\n\t\tif (isScopeNode(ancestor) || isRootNode(ancestor)) continue\n\t\tif (ancestor.resolveValue(\"visible\") === target) return ancestor\n\t}\n\treturn null\n}\n\n/**\n * Convenience: returns the first hidden ancestor (resolveValue(\"visible\") === false), or null.\n */\nexport function getFirstHiddenAncestor(node: CanvasNode): CanvasNode | null {\n\treturn getFirstAncestorWithVisible(node, false)\n}\n\n/**\n * Convenience: returns true when any non-scope ancestor resolves visible === false.\n */\nexport function hasHiddenAncestor(node: CanvasNode): boolean {\n\treturn getFirstHiddenAncestor(node) !== null\n}\n", "export function getStringSizeInKilobytes(value: string): number {\n\treturn new TextEncoder().encode(value).length / 1024\n}\n", "import { assert } from \"@framerjs/shared\"\nimport type { PluginManifestId } from \"plugins/plugins.ts\"\nimport { getStringSizeInKilobytes } from \"utils/getStringSizeInKilobytes.ts\"\nimport { isString } from \"utils/typeChecks.ts\"\nimport type { CanvasNode } from \"../nodes/CanvasNode.ts\"\nimport {\n\ttype PluginDataKey,\n\ttype PluginDataValue,\n\ttype WithPluginData,\n\tgetPluginDataIdentifierPrefix,\n\tgetPrefixedPluginDataKey,\n\tisPluginDataIdentifierPrefix,\n} from \"../traits/WithPluginData.ts\"\n\nfunction assertNodeSupportsPluginData(node: CanvasNode): asserts node is CanvasNode & WithPluginData {\n\tif (node.supportsPluginData()) return\n\n\tthrow new Error(\"Node does not support plugin data\")\n}\n\nfunction assertMaxSize(node: CanvasNode, manifestId: PluginManifestId, key: PluginDataKey, value: PluginDataValue) {\n\t// Should be possible to clear values when max size is reached\n\tif (!value) return\n\n\tconst valueSizeInKilobyte = getStringSizeInKilobytes(value)\n\tconst maxKeyValueSizeInKilobyte = 2\n\tassert(\n\t\tvalueSizeInKilobyte <= maxKeyValueSizeInKilobyte,\n\t\t`Plugin data value is too large, max ${maxKeyValueSizeInKilobyte}kB`,\n\t)\n\n\tconst otherKeys = getPluginDataKeys(node, manifestId).filter(dataKey => dataKey !== key)\n\tconst allValuesJoined = otherKeys.map(dataKey => getPluginData(node, manifestId, dataKey)).join(\"\") + value\n\tconst allValuesSizeInKilobyte = getStringSizeInKilobytes(allValuesJoined)\n\tconst maxValuesSizePerNodeInKilobyte = 4\n\tassert(\n\t\tallValuesSizeInKilobyte <= maxValuesSizePerNodeInKilobyte,\n\t\t`Combined plugin data values on node too large, max ${maxValuesSizePerNodeInKilobyte}kB`,\n\t)\n}\n\nfunction assertValidPluginManifestIdAndKey(id: PluginManifestId, key: PluginDataKey) {\n\tassert(id.length > 0, \"Plugin identifier must be a non-empty string\")\n\tassert(key.length > 0, \"Plugin key must be a non-empty string\")\n}\n\nexport function setPluginData(\n\tnode: CanvasNode,\n\tmanifestId: PluginManifestId,\n\tkey: PluginDataKey,\n\tvalue: PluginDataValue,\n): void {\n\tassertNodeSupportsPluginData(node)\n\tassertValidPluginManifestIdAndKey(manifestId, key)\n\tassertMaxSize(node, manifestId, key, value)\n\n\tconst pluginDataKey = getPrefixedPluginDataKey(manifestId, key)\n\tnode.set({ [pluginDataKey]: value })\n}\n\nexport function getPluginData(node: CanvasNode, manifestId: PluginManifestId, key: PluginDataKey): PluginDataValue {\n\tassertNodeSupportsPluginData(node)\n\tassertValidPluginManifestIdAndKey(manifestId, key)\n\n\tconst pluginDataKey = getPrefixedPluginDataKey(manifestId, key)\n\tconst value = node[pluginDataKey]\n\treturn isString(value) ? value : null\n}\n\nexport function getPluginDataKeys(node: CanvasNode, manifestId: PluginManifestId): PluginDataKey[] {\n\tassertNodeSupportsPluginData(node)\n\n\tconst result: PluginDataKey[] = []\n\n\tfor (const key in node) {\n\t\tif (!isPluginDataIdentifierPrefix(key, manifestId)) continue\n\t\tconst prefix = getPluginDataIdentifierPrefix(manifestId)\n\t\tconst dataKey = key.substring(prefix.length)\n\t\tif (dataKey.length === 0) continue\n\t\tconst value = node[key]\n\t\tif (!isString(value)) continue\n\t\tresult.push(dataKey)\n\t}\n\n\treturn result\n}\n", "// This file is auto-generated. Do not edit it manually.\n// To regenerate, run `make build` in `src/plugin-api-validation`.\n\nimport * as __typia_transform__assertGuard from \"typia/lib/internal/_assertGuard.js\";\nimport * as __typia_transform__accessExpressionAsString from \"typia/lib/internal/_accessExpressionAsString.js\";\nimport typia from \"typia\";\nimport type { PluginMessageAPI } from \"#framer-plugin/framerAPI.ts\";\nimport { getAiServiceInfoMessageType, getCurrentUserMessageType, getHTMLForNodeMessageType, getProjectInfoMessageType, sendTrackingEventMessageType, setHTMLForNodeMessageType, } from \"#framer-plugin/internal.ts\";\nconst noArguments = (): [\n] => [];\nObject.freeze(noArguments);\nexport const methodArgumentValidators: {\n    [K in keyof PluginMessageAPI]: (args: unknown[]) => Parameters<PluginMessageAPI[K]>;\n} = {\n    showUI: (() => { const _io0 = (input: any): boolean => (undefined === input.width || \"number\" === typeof input.width) && (undefined === input.height || \"number\" === typeof input.height) && (undefined === input.position || \"center\" === input.position || \"top left\" === input.position || \"bottom left\" === input.position || \"top right\" === input.position || \"bottom right\" === input.position) && (undefined === input.resizable || \"width\" === input.resizable || \"height\" === input.resizable || \"boolean\" === typeof input.resizable) && (undefined === input.minWidth || \"number\" === typeof input.minWidth) && (undefined === input.minHeight || \"number\" === typeof input.minHeight) && (undefined === input.maxWidth || \"number\" === typeof input.maxWidth) && (undefined === input.maxHeight || \"number\" === typeof input.maxHeight); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.width || \"number\" === typeof input.width || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".width\",\n        expected: \"(number | undefined)\",\n        value: input.width\n    }, _errorFactory)) && (undefined === input.height || \"number\" === typeof input.height || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".height\",\n        expected: \"(number | undefined)\",\n        value: input.height\n    }, _errorFactory)) && (undefined === input.position || \"center\" === input.position || \"top left\" === input.position || \"bottom left\" === input.position || \"top right\" === input.position || \"bottom right\" === input.position || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".position\",\n        expected: \"(\\\"bottom left\\\" | \\\"bottom right\\\" | \\\"center\\\" | \\\"top left\\\" | \\\"top right\\\" | undefined)\",\n        value: input.position\n    }, _errorFactory)) && (undefined === input.resizable || \"width\" === input.resizable || \"height\" === input.resizable || \"boolean\" === typeof input.resizable || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resizable\",\n        expected: \"(\\\"height\\\" | \\\"width\\\" | boolean | undefined)\",\n        value: input.resizable\n    }, _errorFactory)) && (undefined === input.minWidth || \"number\" === typeof input.minWidth || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".minWidth\",\n        expected: \"(number | undefined)\",\n        value: input.minWidth\n    }, _errorFactory)) && (undefined === input.minHeight || \"number\" === typeof input.minHeight || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".minHeight\",\n        expected: \"(number | undefined)\",\n        value: input.minHeight\n    }, _errorFactory)) && (undefined === input.maxWidth || \"number\" === typeof input.maxWidth || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".maxWidth\",\n        expected: \"(number | undefined)\",\n        value: input.maxWidth\n    }, _errorFactory)) && (undefined === input.maxHeight || \"number\" === typeof input.maxHeight || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".maxHeight\",\n        expected: \"(number | undefined)\",\n        value: input.maxHeight\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"showUI\"]> => Array.isArray(input) && (0 <= input.length && 1 >= input.length && (undefined === input[0] || \"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"showUI\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[options?: UIOptions | undefined]\",\n                value: input\n            }, _errorFactory)) && ((0 <= input.length && 1 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(UIOptions | undefined)]\",\n                value: input\n            }, _errorFactory)) && (undefined === input[0] || (\"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(UIOptions | undefined)\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(UIOptions | undefined)\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[options?: UIOptions | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    hideUI: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"hideUI\"]> => Array.isArray(input) && input.length === 0; let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"hideUI\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) && (input.length === 0 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setBackgroundMessage: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"setBackgroundMessage\"]> => Array.isArray(input) && (input.length === 1 && (null === input[0] || \"string\" === typeof input[0])); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setBackgroundMessage\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[status: string | null]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(null | string)]\",\n                value: input\n            }, _errorFactory)) && (null === input[0] || \"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(null | string)\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[status: string | null]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setCloseWarning: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"setCloseWarning\"]> => Array.isArray(input) && (input.length === 1 && (false === input[0] || \"string\" === typeof input[0])); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setCloseWarning\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[message: string | false]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(false | string)]\",\n                value: input\n            }, _errorFactory)) && (false === input[0] || \"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(false | string)\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[message: string | false]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    closePlugin: (() => { const _io0 = (input: any): boolean => (undefined === input.variant || \"info\" === input.variant || \"success\" === input.variant || \"error\" === input.variant || \"warning\" === input.variant) && (undefined === input.silent || \"boolean\" === typeof input.silent); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.variant || \"info\" === input.variant || \"success\" === input.variant || \"error\" === input.variant || \"warning\" === input.variant || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".variant\",\n        expected: \"(\\\"error\\\" | \\\"info\\\" | \\\"success\\\" | \\\"warning\\\" | undefined)\",\n        value: input.variant\n    }, _errorFactory)) && (undefined === input.silent || \"boolean\" === typeof input.silent || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".silent\",\n        expected: \"(boolean | undefined)\",\n        value: input.silent\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"closePlugin\"]> => Array.isArray(input) && (0 <= input.length && 2 >= input.length && (undefined === input[0] || \"string\" === typeof input[0]) && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"closePlugin\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[message?: string | undefined, options?: ClosePluginOptions | undefined]\",\n                value: input\n            }, _errorFactory)) && ((0 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(string | undefined), (ClosePluginOptions | undefined)]\",\n                value: input\n            }, _errorFactory)) && (undefined === input[0] || \"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(string | undefined)\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(ClosePluginOptions | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(ClosePluginOptions | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[message?: string | undefined, options?: ClosePluginOptions | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    addImages: (() => { const _io0 = (input: any): boolean => \"url\" === input.type && \"string\" === typeof input.url && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering) && (undefined === input.altText || \"string\" === typeof input.altText) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution); const _io1 = (input: any): boolean => input.bytes instanceof Uint8Array && \"string\" === typeof input.mimeType && \"bytes\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering) && (undefined === input.altText || \"string\" === typeof input.altText) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution); const _iu0 = (input: any): any => (() => {\n        if (\"url\" === input.type)\n            return _io0(input);\n        else if (\"bytes\" === input.type)\n            return _io1(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"url\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"url\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.url || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".url\",\n        expected: \"string\",\n        value: input.url\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".preferredImageRendering\",\n        expected: \"(\\\"auto\\\" | \\\"pixelated\\\" | undefined)\",\n        value: input.preferredImageRendering\n    }, _errorFactory)) && (undefined === input.altText || \"string\" === typeof input.altText || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altText\",\n        expected: \"(string | undefined)\",\n        value: input.altText\n    }, _errorFactory)) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolution\",\n        expected: \"(\\\"auto\\\" | \\\"full\\\" | \\\"large\\\" | \\\"lossless\\\" | \\\"medium\\\" | \\\"small\\\" | undefined)\",\n        value: input.resolution\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (input.bytes instanceof Uint8Array || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".bytes\",\n        expected: \"Uint8Array\",\n        value: input.bytes\n    }, _errorFactory)) && (\"string\" === typeof input.mimeType || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".mimeType\",\n        expected: \"string\",\n        value: input.mimeType\n    }, _errorFactory)) && (\"bytes\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"bytes\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".preferredImageRendering\",\n        expected: \"(\\\"auto\\\" | \\\"pixelated\\\" | undefined)\",\n        value: input.preferredImageRendering\n    }, _errorFactory)) && (undefined === input.altText || \"string\" === typeof input.altText || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altText\",\n        expected: \"(string | undefined)\",\n        value: input.altText\n    }, _errorFactory)) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolution\",\n        expected: \"(\\\"auto\\\" | \\\"full\\\" | \\\"large\\\" | \\\"lossless\\\" | \\\"medium\\\" | \\\"small\\\" | undefined)\",\n        value: input.resolution\n    }, _errorFactory)); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"url\" === input.type)\n            return _ao0(input, _path, true && _exceptionable);\n        else if (\"bytes\" === input.type)\n            return _ao1(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"addImages\"]> => Array.isArray(input) && (input.length === 1 && (Array.isArray(input[0]) && input[0].every((elem: any) => \"object\" === typeof elem && null !== elem && _iu0(elem)))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addImages\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[image: readonly NamedImageTransfer[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[ReadonlyArray<NamedImageTransfer>]\",\n                value: input\n            }, _errorFactory)) && ((Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"ReadonlyArray<NamedImageTransfer>\",\n                value: input[0]\n            }, _errorFactory)) && input[0].every((elem: any, _index2: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index2 + \"]\",\n                expected: \"(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)\",\n                value: elem\n            }, _errorFactory)) && _au0(elem, _path + \"[0][\" + _index2 + \"]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index2 + \"]\",\n                expected: \"(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"ReadonlyArray<NamedImageTransfer>\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[image: readonly NamedImageTransfer[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    uploadImages: (() => { const _io0 = (input: any): boolean => \"url\" === input.type && \"string\" === typeof input.url && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering) && (undefined === input.altText || \"string\" === typeof input.altText) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution); const _io1 = (input: any): boolean => input.bytes instanceof Uint8Array && \"string\" === typeof input.mimeType && \"bytes\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering) && (undefined === input.altText || \"string\" === typeof input.altText) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution); const _iu0 = (input: any): any => (() => {\n        if (\"url\" === input.type)\n            return _io0(input);\n        else if (\"bytes\" === input.type)\n            return _io1(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"url\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"url\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.url || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".url\",\n        expected: \"string\",\n        value: input.url\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".preferredImageRendering\",\n        expected: \"(\\\"auto\\\" | \\\"pixelated\\\" | undefined)\",\n        value: input.preferredImageRendering\n    }, _errorFactory)) && (undefined === input.altText || \"string\" === typeof input.altText || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altText\",\n        expected: \"(string | undefined)\",\n        value: input.altText\n    }, _errorFactory)) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolution\",\n        expected: \"(\\\"auto\\\" | \\\"full\\\" | \\\"large\\\" | \\\"lossless\\\" | \\\"medium\\\" | \\\"small\\\" | undefined)\",\n        value: input.resolution\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (input.bytes instanceof Uint8Array || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".bytes\",\n        expected: \"Uint8Array\",\n        value: input.bytes\n    }, _errorFactory)) && (\"string\" === typeof input.mimeType || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".mimeType\",\n        expected: \"string\",\n        value: input.mimeType\n    }, _errorFactory)) && (\"bytes\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"bytes\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".preferredImageRendering\",\n        expected: \"(\\\"auto\\\" | \\\"pixelated\\\" | undefined)\",\n        value: input.preferredImageRendering\n    }, _errorFactory)) && (undefined === input.altText || \"string\" === typeof input.altText || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altText\",\n        expected: \"(string | undefined)\",\n        value: input.altText\n    }, _errorFactory)) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolution\",\n        expected: \"(\\\"auto\\\" | \\\"full\\\" | \\\"large\\\" | \\\"lossless\\\" | \\\"medium\\\" | \\\"small\\\" | undefined)\",\n        value: input.resolution\n    }, _errorFactory)); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"url\" === input.type)\n            return _ao0(input, _path, true && _exceptionable);\n        else if (\"bytes\" === input.type)\n            return _ao1(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"uploadImages\"]> => Array.isArray(input) && (input.length === 1 && (Array.isArray(input[0]) && input[0].every((elem: any) => \"object\" === typeof elem && null !== elem && _iu0(elem)))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"uploadImages\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[image: readonly NamedImageTransfer[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[ReadonlyArray<NamedImageTransfer>]\",\n                value: input\n            }, _errorFactory)) && ((Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"ReadonlyArray<NamedImageTransfer>\",\n                value: input[0]\n            }, _errorFactory)) && input[0].every((elem: any, _index2: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index2 + \"]\",\n                expected: \"(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)\",\n                value: elem\n            }, _errorFactory)) && _au0(elem, _path + \"[0][\" + _index2 + \"]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index2 + \"]\",\n                expected: \"(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"ReadonlyArray<NamedImageTransfer>\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[image: readonly NamedImageTransfer[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    addImage: (() => { const _io0 = (input: any): boolean => \"url\" === input.type && \"string\" === typeof input.url && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering) && (undefined === input.altText || \"string\" === typeof input.altText) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution); const _io1 = (input: any): boolean => input.bytes instanceof Uint8Array && \"string\" === typeof input.mimeType && \"bytes\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering) && (undefined === input.altText || \"string\" === typeof input.altText) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution); const _iu0 = (input: any): any => (() => {\n        if (\"url\" === input.type)\n            return _io0(input);\n        else if (\"bytes\" === input.type)\n            return _io1(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"url\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"url\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.url || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".url\",\n        expected: \"string\",\n        value: input.url\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".preferredImageRendering\",\n        expected: \"(\\\"auto\\\" | \\\"pixelated\\\" | undefined)\",\n        value: input.preferredImageRendering\n    }, _errorFactory)) && (undefined === input.altText || \"string\" === typeof input.altText || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altText\",\n        expected: \"(string | undefined)\",\n        value: input.altText\n    }, _errorFactory)) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolution\",\n        expected: \"(\\\"auto\\\" | \\\"full\\\" | \\\"large\\\" | \\\"lossless\\\" | \\\"medium\\\" | \\\"small\\\" | undefined)\",\n        value: input.resolution\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (input.bytes instanceof Uint8Array || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".bytes\",\n        expected: \"Uint8Array\",\n        value: input.bytes\n    }, _errorFactory)) && (\"string\" === typeof input.mimeType || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".mimeType\",\n        expected: \"string\",\n        value: input.mimeType\n    }, _errorFactory)) && (\"bytes\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"bytes\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".preferredImageRendering\",\n        expected: \"(\\\"auto\\\" | \\\"pixelated\\\" | undefined)\",\n        value: input.preferredImageRendering\n    }, _errorFactory)) && (undefined === input.altText || \"string\" === typeof input.altText || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altText\",\n        expected: \"(string | undefined)\",\n        value: input.altText\n    }, _errorFactory)) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolution\",\n        expected: \"(\\\"auto\\\" | \\\"full\\\" | \\\"large\\\" | \\\"lossless\\\" | \\\"medium\\\" | \\\"small\\\" | undefined)\",\n        value: input.resolution\n    }, _errorFactory)); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"url\" === input.type)\n            return _ao0(input, _path, true && _exceptionable);\n        else if (\"bytes\" === input.type)\n            return _ao1(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"addImage\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && _iu0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addImage\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[image: NamedImageTransfer]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)\",\n                value: input[0]\n            }, _errorFactory)) && _au0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[image: NamedImageTransfer]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setImage: (() => { const _io0 = (input: any): boolean => \"url\" === input.type && \"string\" === typeof input.url && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering) && (undefined === input.altText || \"string\" === typeof input.altText) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution); const _io1 = (input: any): boolean => input.bytes instanceof Uint8Array && \"string\" === typeof input.mimeType && \"bytes\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering) && (undefined === input.altText || \"string\" === typeof input.altText) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution); const _iu0 = (input: any): any => (() => {\n        if (\"url\" === input.type)\n            return _io0(input);\n        else if (\"bytes\" === input.type)\n            return _io1(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"url\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"url\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.url || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".url\",\n        expected: \"string\",\n        value: input.url\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".preferredImageRendering\",\n        expected: \"(\\\"auto\\\" | \\\"pixelated\\\" | undefined)\",\n        value: input.preferredImageRendering\n    }, _errorFactory)) && (undefined === input.altText || \"string\" === typeof input.altText || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altText\",\n        expected: \"(string | undefined)\",\n        value: input.altText\n    }, _errorFactory)) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolution\",\n        expected: \"(\\\"auto\\\" | \\\"full\\\" | \\\"large\\\" | \\\"lossless\\\" | \\\"medium\\\" | \\\"small\\\" | undefined)\",\n        value: input.resolution\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (input.bytes instanceof Uint8Array || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".bytes\",\n        expected: \"Uint8Array\",\n        value: input.bytes\n    }, _errorFactory)) && (\"string\" === typeof input.mimeType || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".mimeType\",\n        expected: \"string\",\n        value: input.mimeType\n    }, _errorFactory)) && (\"bytes\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"bytes\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".preferredImageRendering\",\n        expected: \"(\\\"auto\\\" | \\\"pixelated\\\" | undefined)\",\n        value: input.preferredImageRendering\n    }, _errorFactory)) && (undefined === input.altText || \"string\" === typeof input.altText || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altText\",\n        expected: \"(string | undefined)\",\n        value: input.altText\n    }, _errorFactory)) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolution\",\n        expected: \"(\\\"auto\\\" | \\\"full\\\" | \\\"large\\\" | \\\"lossless\\\" | \\\"medium\\\" | \\\"small\\\" | undefined)\",\n        value: input.resolution\n    }, _errorFactory)); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"url\" === input.type)\n            return _ao0(input, _path, true && _exceptionable);\n        else if (\"bytes\" === input.type)\n            return _ao1(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"setImage\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && _iu0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setImage\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[image: NamedImageTransfer]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)\",\n                value: input[0]\n            }, _errorFactory)) && _au0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[image: NamedImageTransfer]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    uploadImage: (() => { const _io0 = (input: any): boolean => \"url\" === input.type && \"string\" === typeof input.url && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering) && (undefined === input.altText || \"string\" === typeof input.altText) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution); const _io1 = (input: any): boolean => input.bytes instanceof Uint8Array && \"string\" === typeof input.mimeType && \"bytes\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering) && (undefined === input.altText || \"string\" === typeof input.altText) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution); const _iu0 = (input: any): any => (() => {\n        if (\"url\" === input.type)\n            return _io0(input);\n        else if (\"bytes\" === input.type)\n            return _io1(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"url\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"url\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.url || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".url\",\n        expected: \"string\",\n        value: input.url\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".preferredImageRendering\",\n        expected: \"(\\\"auto\\\" | \\\"pixelated\\\" | undefined)\",\n        value: input.preferredImageRendering\n    }, _errorFactory)) && (undefined === input.altText || \"string\" === typeof input.altText || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altText\",\n        expected: \"(string | undefined)\",\n        value: input.altText\n    }, _errorFactory)) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolution\",\n        expected: \"(\\\"auto\\\" | \\\"full\\\" | \\\"large\\\" | \\\"lossless\\\" | \\\"medium\\\" | \\\"small\\\" | undefined)\",\n        value: input.resolution\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (input.bytes instanceof Uint8Array || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".bytes\",\n        expected: \"Uint8Array\",\n        value: input.bytes\n    }, _errorFactory)) && (\"string\" === typeof input.mimeType || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".mimeType\",\n        expected: \"string\",\n        value: input.mimeType\n    }, _errorFactory)) && (\"bytes\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"bytes\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".preferredImageRendering\",\n        expected: \"(\\\"auto\\\" | \\\"pixelated\\\" | undefined)\",\n        value: input.preferredImageRendering\n    }, _errorFactory)) && (undefined === input.altText || \"string\" === typeof input.altText || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altText\",\n        expected: \"(string | undefined)\",\n        value: input.altText\n    }, _errorFactory)) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolution\",\n        expected: \"(\\\"auto\\\" | \\\"full\\\" | \\\"large\\\" | \\\"lossless\\\" | \\\"medium\\\" | \\\"small\\\" | undefined)\",\n        value: input.resolution\n    }, _errorFactory)); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"url\" === input.type)\n            return _ao0(input, _path, true && _exceptionable);\n        else if (\"bytes\" === input.type)\n            return _ao1(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"uploadImage\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && _iu0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"uploadImage\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[image: NamedImageTransfer]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)\",\n                value: input[0]\n            }, _errorFactory)) && _au0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(AssetURLDataTransfer & ImageData | BytesData & { type: \\\"bytes\\\"; } & ImageData)\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[image: NamedImageTransfer]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    uploadFile: (() => { const _io0 = (input: any): boolean => \"url\" === input.type && \"string\" === typeof input.url && (undefined === input.name || \"string\" === typeof input.name); const _io1 = (input: any): boolean => input.bytes instanceof Uint8Array && \"string\" === typeof input.mimeType && \"bytes\" === input.type && (undefined === input.name || \"string\" === typeof input.name); const _iu0 = (input: any): any => (() => {\n        if (\"url\" === input.type)\n            return _io0(input);\n        else if (\"bytes\" === input.type)\n            return _io1(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"url\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"url\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.url || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".url\",\n        expected: \"string\",\n        value: input.url\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (input.bytes instanceof Uint8Array || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".bytes\",\n        expected: \"Uint8Array\",\n        value: input.bytes\n    }, _errorFactory)) && (\"string\" === typeof input.mimeType || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".mimeType\",\n        expected: \"string\",\n        value: input.mimeType\n    }, _errorFactory)) && (\"bytes\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"bytes\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"url\" === input.type)\n            return _ao0(input, _path, true && _exceptionable);\n        else if (\"bytes\" === input.type)\n            return _ao1(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(AssetURLDataTransfer & WithOptionalName | BytesData & { type: \\\"bytes\\\"; } & WithOptionalName)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"uploadFile\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && _iu0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"uploadFile\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[file: NamedAssetTransfer]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(AssetURLDataTransfer & WithOptionalName | BytesData & { type: \\\"bytes\\\"; } & WithOptionalName)]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(AssetURLDataTransfer & WithOptionalName | BytesData & { type: \\\"bytes\\\"; } & WithOptionalName)\",\n                value: input[0]\n            }, _errorFactory)) && _au0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(AssetURLDataTransfer & WithOptionalName | BytesData & { type: \\\"bytes\\\"; } & WithOptionalName)\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[file: NamedAssetTransfer]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    uploadFiles: (() => { const _io0 = (input: any): boolean => \"url\" === input.type && \"string\" === typeof input.url && (undefined === input.name || \"string\" === typeof input.name); const _io1 = (input: any): boolean => input.bytes instanceof Uint8Array && \"string\" === typeof input.mimeType && \"bytes\" === input.type && (undefined === input.name || \"string\" === typeof input.name); const _iu0 = (input: any): any => (() => {\n        if (\"url\" === input.type)\n            return _io0(input);\n        else if (\"bytes\" === input.type)\n            return _io1(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"url\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"url\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.url || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".url\",\n        expected: \"string\",\n        value: input.url\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (input.bytes instanceof Uint8Array || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".bytes\",\n        expected: \"Uint8Array\",\n        value: input.bytes\n    }, _errorFactory)) && (\"string\" === typeof input.mimeType || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".mimeType\",\n        expected: \"string\",\n        value: input.mimeType\n    }, _errorFactory)) && (\"bytes\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"bytes\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"url\" === input.type)\n            return _ao0(input, _path, true && _exceptionable);\n        else if (\"bytes\" === input.type)\n            return _ao1(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(AssetURLDataTransfer & WithOptionalName | BytesData & { type: \\\"bytes\\\"; } & WithOptionalName)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"uploadFiles\"]> => Array.isArray(input) && (input.length === 1 && (Array.isArray(input[0]) && input[0].every((elem: any) => \"object\" === typeof elem && null !== elem && _iu0(elem)))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"uploadFiles\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[files: readonly NamedAssetTransfer[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[ReadonlyArray<NamedAssetTransfer>]\",\n                value: input\n            }, _errorFactory)) && ((Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"ReadonlyArray<NamedAssetTransfer>\",\n                value: input[0]\n            }, _errorFactory)) && input[0].every((elem: any, _index2: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index2 + \"]\",\n                expected: \"(AssetURLDataTransfer & WithOptionalName | BytesData & { type: \\\"bytes\\\"; } & WithOptionalName)\",\n                value: elem\n            }, _errorFactory)) && _au0(elem, _path + \"[0][\" + _index2 + \"]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index2 + \"]\",\n                expected: \"(AssetURLDataTransfer & WithOptionalName | BytesData & { type: \\\"bytes\\\"; } & WithOptionalName)\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"ReadonlyArray<NamedAssetTransfer>\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[files: readonly NamedAssetTransfer[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getImage: noArguments,\n    addComponentInstance: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.url && (undefined === input.attributes || \"object\" === typeof input.attributes && null !== input.attributes && false === Array.isArray(input.attributes) && _io1(input.attributes)) && (undefined === input.parentId || \"string\" === typeof input.parentId); const _io1 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.url || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".url\",\n        expected: \"string\",\n        value: input.url\n    }, _errorFactory)) && (undefined === input.attributes || (\"object\" === typeof input.attributes && null !== input.attributes && false === Array.isArray(input.attributes) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".attributes\",\n        expected: \"(Partial<Record<string, unknown>> | undefined)\",\n        value: input.attributes\n    }, _errorFactory)) && _ao1(input.attributes, _path + \".attributes\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".attributes\",\n        expected: \"(Partial<Record<string, unknown>> | undefined)\",\n        value: input.attributes\n    }, _errorFactory)) && (undefined === input.parentId || \"string\" === typeof input.parentId || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".parentId\",\n        expected: \"(string | undefined)\",\n        value: input.parentId\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const __is = (input: any): input is Parameters<PluginMessageAPI[\"addComponentInstance\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addComponentInstance\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[options: { url: string; attributes?: Partial<Record<string, unknown>> | undefined; parentId?: string | undefined; }]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[__type]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[options: { url: string; attributes?: Partial<Record<string, unknown>> | undefined; parentId?: string | undefined; }]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    addDetachedComponentLayers: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.url && (undefined === input.layout || \"boolean\" === typeof input.layout) && (undefined === input.attributes || \"object\" === typeof input.attributes && null !== input.attributes && false === Array.isArray(input.attributes) && _io1(input.attributes)); const _io1 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.url || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".url\",\n        expected: \"string\",\n        value: input.url\n    }, _errorFactory)) && (undefined === input.layout || \"boolean\" === typeof input.layout || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".layout\",\n        expected: \"(boolean | undefined)\",\n        value: input.layout\n    }, _errorFactory)) && (undefined === input.attributes || (\"object\" === typeof input.attributes && null !== input.attributes && false === Array.isArray(input.attributes) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".attributes\",\n        expected: \"(Partial<Record<string, unknown>> | undefined)\",\n        value: input.attributes\n    }, _errorFactory)) && _ao1(input.attributes, _path + \".attributes\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".attributes\",\n        expected: \"(Partial<Record<string, unknown>> | undefined)\",\n        value: input.attributes\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const __is = (input: any): input is Parameters<PluginMessageAPI[\"addDetachedComponentLayers\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addDetachedComponentLayers\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[options: { url: string; layout?: boolean | undefined; attributes?: Partial<Record<string, unknown>> | undefined; }]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[__type]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[options: { url: string; layout?: boolean | undefined; attributes?: Partial<Record<string, unknown>> | undefined; }]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    preloadDetachedComponentLayers: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"preloadDetachedComponentLayers\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"preloadDetachedComponentLayers\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[url: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[url: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    preloadImageUrlForInsertion: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"preloadImageUrlForInsertion\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"preloadImageUrlForInsertion\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[url: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[url: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    preloadDragPreviewImage: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"preloadDragPreviewImage\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"preloadDragPreviewImage\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[url: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[url: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getImageData: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.id && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolution\",\n        expected: \"(\\\"auto\\\" | \\\"full\\\" | \\\"large\\\" | \\\"lossless\\\" | \\\"medium\\\" | \\\"small\\\" | undefined)\",\n        value: input.resolution\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"getImageData\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getImageData\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[image: AssetIdentifier & Partial<Pick<ImageAssetData, \\\"resolution\\\">>]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[AssetIdentifier & Partial<Pick<ImageAssetData, \\\"resolution\\\">>]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"AssetIdentifier & Partial<Pick<ImageAssetData, \\\"resolution\\\">>\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"AssetIdentifier & Partial<Pick<ImageAssetData, \\\"resolution\\\">>\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[image: AssetIdentifier & Partial<Pick<ImageAssetData, \\\"resolution\\\">>]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    createNode: (() => { const _io0 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const __is = (input: any): input is Parameters<PluginMessageAPI[\"createNode\"]> => Array.isArray(input) && (input.length === 3 && (\"ComponentNode\" === input[0] || \"FrameNode\" === input[0] || \"TextNode\" === input[0]) && (null === input[1] || \"string\" === typeof input[1]) && (\"object\" === typeof input[2] && null !== input[2] && false === Array.isArray(input[2]) && _io0(input[2]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"createNode\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[type: \\\"ComponentNode\\\" | \\\"FrameNode\\\" | \\\"TextNode\\\", parentId: string | null, attributes: Record<string, unknown>]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 3 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(\\\"ComponentNode\\\" | \\\"FrameNode\\\" | \\\"TextNode\\\"), (null | string), Record<string, unknown>]\",\n                value: input\n            }, _errorFactory)) && (\"ComponentNode\" === input[0] || \"FrameNode\" === input[0] || \"TextNode\" === input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(\\\"ComponentNode\\\" | \\\"FrameNode\\\" | \\\"TextNode\\\")\",\n                value: input[0]\n            }, _errorFactory)) && (null === input[1] || \"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(null | string)\",\n                value: input[1]\n            }, _errorFactory)) && ((\"object\" === typeof input[2] && null !== input[2] && false === Array.isArray(input[2]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"Record<string, unknown>\",\n                value: input[2]\n            }, _errorFactory)) && _ao0(input[2], _path + \"[2]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"Record<string, unknown>\",\n                value: input[2]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[type: \\\"ComponentNode\\\" | \\\"FrameNode\\\" | \\\"TextNode\\\", parentId: string | null, attributes: Record<string, unknown>]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getNode: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getNode\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getNode\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getParent: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getParent\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getParent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getChildren: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getChildren\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getChildren\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    cloneNode: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"cloneNode\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"cloneNode\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    cloneWebPage: (() => { const _io0 = (input: any): boolean => undefined === input.path || \"string\" === typeof input.path; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.path || \"string\" === typeof input.path || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".path\",\n        expected: \"(string | undefined)\",\n        value: input.path\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"cloneWebPage\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && \"string\" === typeof input[0] && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"cloneWebPage\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, options?: WebPageCloneOptions | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, (WebPageCloneOptions | undefined)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(WebPageCloneOptions | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(WebPageCloneOptions | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, options?: WebPageCloneOptions | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    cloneDesignPage: (() => { const _io0 = (input: any): boolean => undefined === input.name || \"string\" === typeof input.name; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"cloneDesignPage\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && \"string\" === typeof input[0] && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"cloneDesignPage\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, options?: DesignPageCloneOptions | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, (DesignPageCloneOptions | undefined)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(DesignPageCloneOptions | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(DesignPageCloneOptions | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, options?: DesignPageCloneOptions | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    removeNodes2: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"removeNodes2\"]> => Array.isArray(input) && (input.length === 1 && (Array.isArray(input[0]) && input[0].every((elem: any) => \"string\" === typeof elem))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"removeNodes2\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[ids: string[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[Array<string>]\",\n                value: input\n            }, _errorFactory)) && ((Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<string>\",\n                value: input[0]\n            }, _errorFactory)) && input[0].every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index2 + \"]\",\n                expected: \"string\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<string>\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[ids: string[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    removeNodes: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"removeNodes\"]> => Array.isArray(input) && (input.length === 1 && (Array.isArray(input[0]) && input[0].every((elem: any) => \"string\" === typeof elem))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"removeNodes\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeIds: string[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[Array<string>]\",\n                value: input\n            }, _errorFactory)) && ((Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<string>\",\n                value: input[0]\n            }, _errorFactory)) && input[0].every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index2 + \"]\",\n                expected: \"string\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<string>\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeIds: string[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    removeNode: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"removeNode\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"removeNode\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getRect: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getRect\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getRect\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setAttributes: (() => { const _io0 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const __is = (input: any): input is Parameters<PluginMessageAPI[\"setAttributes\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setAttributes\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, attributes: Record<string, unknown>]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Record<string, unknown>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Record<string, unknown>\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Record<string, unknown>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, attributes: Record<string, unknown>]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setParent: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"setParent\"]> => Array.isArray(input) && (2 <= input.length && 3 >= input.length && \"string\" === typeof input[0] && \"string\" === typeof input[1] && (undefined === input[2] || \"number\" === typeof input[2])); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setParent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, parentId: string, index?: number | undefined]\",\n                value: input\n            }, _errorFactory)) && ((2 <= input.length && 3 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, (number | undefined)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && (undefined === input[2] || \"number\" === typeof input[2] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"(number | undefined)\",\n                value: input[2]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, parentId: string, index?: number | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    addSVG: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.svg && (undefined === input.name || \"string\" === typeof input.name); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.svg || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".svg\",\n        expected: \"string\",\n        value: input.svg\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"addSVG\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addSVG\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[svg: SVGData]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[SVGData]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"SVGData\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"SVGData\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[svg: SVGData]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getCurrentUser: noArguments,\n    getCurrentUser2: noArguments,\n    getProjectInfo: noArguments,\n    getProjectInfo2: noArguments,\n    getSelection: noArguments,\n    setSelection: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"setSelection\"]> => Array.isArray(input) && (input.length === 1 && (Array.isArray(input[0]) && input[0].every((elem: any) => \"string\" === typeof elem))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setSelection\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeIds: string[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[Array<string>]\",\n                value: input\n            }, _errorFactory)) && ((Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<string>\",\n                value: input[0]\n            }, _errorFactory)) && input[0].every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index2 + \"]\",\n                expected: \"string\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<string>\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeIds: string[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getCanvasRoot: noArguments,\n    getPublishInfo: noArguments,\n    getText: noArguments,\n    setText: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"setText\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setText\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[text: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[text: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getSVGForNode: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getSVGForNode\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getSVGForNode\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getTextForNode: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getTextForNode\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getTextForNode\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setTextForNode: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"setTextForNode\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && \"string\" === typeof input[1]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setTextForNode\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, text: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, text: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    addText: (() => { const _io0 = (input: any): boolean => \"h1\" === input.tag || \"h2\" === input.tag || \"h3\" === input.tag || \"h4\" === input.tag || \"h5\" === input.tag || \"h6\" === input.tag || \"p\" === input.tag; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"h1\" === input.tag || \"h2\" === input.tag || \"h3\" === input.tag || \"h4\" === input.tag || \"h5\" === input.tag || \"h6\" === input.tag || \"p\" === input.tag || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".tag\",\n        expected: \"(\\\"h1\\\" | \\\"h2\\\" | \\\"h3\\\" | \\\"h4\\\" | \\\"h5\\\" | \\\"h6\\\" | \\\"p\\\")\",\n        value: input.tag\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"addText\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && \"string\" === typeof input[0] && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addText\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[text: string, options?: AddTextOptions | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, (AddTextOptions | undefined)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(AddTextOptions | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(AddTextOptions | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[text: string, options?: AddTextOptions | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getPluginData: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getPluginData\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getPluginData\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[key: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[key: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setPluginData: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"setPluginData\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (null === input[1] || \"string\" === typeof input[1])); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setPluginData\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[key: string, value: string | null]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, (null | string)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (null === input[1] || \"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(null | string)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[key: string, value: string | null]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getPluginDataKeys: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getPluginDataKeys\"]> => Array.isArray(input) && input.length === 0; let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getPluginDataKeys\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) && (input.length === 0 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getPluginDataForNode: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getPluginDataForNode\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && \"string\" === typeof input[1]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getPluginDataForNode\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, key: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, key: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setPluginDataForNode: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"setPluginDataForNode\"]> => Array.isArray(input) && (input.length === 3 && \"string\" === typeof input[0] && \"string\" === typeof input[1] && (null === input[2] || \"string\" === typeof input[2])); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setPluginDataForNode\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, key: string, value: string | null]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 3 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, (null | string)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && (null === input[2] || \"string\" === typeof input[2] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"(null | string)\",\n                value: input[2]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, key: string, value: string | null]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getPluginDataKeysForNode: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getPluginDataKeysForNode\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getPluginDataKeysForNode\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getColorStyle: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getColorStyle\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getColorStyle\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getColorStyles: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getColorStyles\"]> => Array.isArray(input) && input.length === 0; let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getColorStyles\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) && (input.length === 0 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setColorStyleAttributes: (() => { const _io0 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const __is = (input: any): input is Parameters<PluginMessageAPI[\"setColorStyleAttributes\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setColorStyleAttributes\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, update: Record<string, unknown>]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Record<string, unknown>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Record<string, unknown>\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Record<string, unknown>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, update: Record<string, unknown>]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    removeColorStyle: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"removeColorStyle\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"removeColorStyle\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getTextStyle: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getTextStyle\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getTextStyle\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getTextStyles: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getTextStyles\"]> => Array.isArray(input) && input.length === 0; let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getTextStyles\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) && (input.length === 0 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    createTextStyle: (() => { const _io0 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const __is = (input: any): input is Parameters<PluginMessageAPI[\"createTextStyle\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"createTextStyle\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[attributes: Record<string, unknown>]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[Record<string, unknown>]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Record<string, unknown>\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Record<string, unknown>\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[attributes: Record<string, unknown>]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setTextStyleAttributes: (() => { const _io0 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const __is = (input: any): input is Parameters<PluginMessageAPI[\"setTextStyleAttributes\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setTextStyleAttributes\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, update: Record<string, unknown>]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Record<string, unknown>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Record<string, unknown>\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Record<string, unknown>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, update: Record<string, unknown>]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    removeTextStyle: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"removeTextStyle\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"removeTextStyle\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    createColorStyle: (() => { const _io0 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const __is = (input: any): input is Parameters<PluginMessageAPI[\"createColorStyle\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"createColorStyle\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[attributes: Record<string, unknown>]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[Record<string, unknown>]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Record<string, unknown>\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Record<string, unknown>\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[attributes: Record<string, unknown>]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getFont: (() => { const _io0 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const __is = (input: any): input is Parameters<PluginMessageAPI[\"getFont\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && \"string\" === typeof input[0] && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getFont\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[family: string, attributes?: Record<string, unknown> | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, (Record<string, unknown> | undefined)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(Record<string, unknown> | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(Record<string, unknown> | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[family: string, attributes?: Record<string, unknown> | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getFonts: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getFonts\"]> => Array.isArray(input) && input.length === 0; let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getFonts\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) && (input.length === 0 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setDragData: (() => { const _io0 = (input: any): boolean => \"svg\" === input.type && \"string\" === typeof input.svg && (undefined === input.invertInDarkMode || \"boolean\" === typeof input.invertInDarkMode) && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.previewImage || \"string\" === typeof input.previewImage); const _io1 = (input: any): boolean => \"image\" === input.type && \"string\" === typeof input.image && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.previewImage || \"string\" === typeof input.previewImage) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering) && (undefined === input.altText || \"string\" === typeof input.altText) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution); const _io2 = (input: any): boolean => \"detachedComponentLayers\" === input.type && \"string\" === typeof input.url && (undefined === input.layout || \"boolean\" === typeof input.layout) && (undefined === input.attributes || \"object\" === typeof input.attributes && null !== input.attributes && false === Array.isArray(input.attributes) && _io3(input.attributes)) && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.previewImage || \"string\" === typeof input.previewImage); const _io3 = (input: any): boolean => (null === input.name || undefined === input.name || \"string\" === typeof input.name) && (undefined === input.visible || \"boolean\" === typeof input.visible) && (undefined === input.locked || \"boolean\" === typeof input.locked) && (undefined === input.opacity || \"number\" === typeof input.opacity) && (undefined === input.position || \"relative\" === input.position || \"absolute\" === input.position || \"fixed\" === input.position || \"sticky\" === input.position) && (null === input.top || undefined === input.top || \"string\" === typeof input.top && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.top)) && (null === input.right || undefined === input.right || \"string\" === typeof input.right && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.right)) && (null === input.bottom || undefined === input.bottom || \"string\" === typeof input.bottom && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.bottom)) && (null === input.left || undefined === input.left || \"string\" === typeof input.left && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.left)) && (null === input.centerX || undefined === input.centerX || \"string\" === typeof input.centerX && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.centerX)) && (null === input.centerY || undefined === input.centerY || \"string\" === typeof input.centerY && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.centerY)) && (null === input.width || undefined === input.width || \"fit-content\" === input.width || \"fit-image\" === input.width || \"string\" === typeof input.width && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.width) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.width) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?fr$/).test(input.width))) && (null === input.height || undefined === input.height || \"fit-content\" === input.height || \"fit-image\" === input.height || \"string\" === typeof input.height && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.height) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.height) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?fr$/).test(input.height) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?vh$/).test(input.height))) && (null === input.maxWidth || undefined === input.maxWidth || \"string\" === typeof input.maxWidth && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.maxWidth) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.maxWidth))) && (null === input.minWidth || undefined === input.minWidth || \"string\" === typeof input.minWidth && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.minWidth) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.minWidth))) && (null === input.maxHeight || undefined === input.maxHeight || \"string\" === typeof input.maxHeight && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.maxHeight) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.maxHeight) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?vh$/).test(input.maxHeight))) && (null === input.minHeight || undefined === input.minHeight || \"string\" === typeof input.minHeight && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.minHeight) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.minHeight) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?vh$/).test(input.minHeight))) && (null === input.aspectRatio || undefined === input.aspectRatio || \"number\" === typeof input.aspectRatio) && (undefined === input.controls || \"object\" === typeof input.controls && null !== input.controls && false === Array.isArray(input.controls) && _io4(input.controls)) && (undefined === input.rotation || \"number\" === typeof input.rotation); const _io4 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _io5 = (input: any): boolean => \"string\" === typeof input.url && \"componentInstance\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.previewImage || \"string\" === typeof input.previewImage) && (undefined === input.attributes || \"object\" === typeof input.attributes && null !== input.attributes && false === Array.isArray(input.attributes) && _io6(input.attributes)); const _io6 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _iu0 = (input: any): any => (() => {\n        if (\"svg\" === input.type)\n            return _io0(input);\n        else if (\"image\" === input.type)\n            return _io1(input);\n        else if (\"detachedComponentLayers\" === input.type)\n            return _io2(input);\n        else if (\"componentInstance\" === input.type)\n            return _io5(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"svg\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"svg\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.svg || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".svg\",\n        expected: \"string\",\n        value: input.svg\n    }, _errorFactory)) && (undefined === input.invertInDarkMode || \"boolean\" === typeof input.invertInDarkMode || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".invertInDarkMode\",\n        expected: \"(boolean | undefined)\",\n        value: input.invertInDarkMode\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.previewImage || \"string\" === typeof input.previewImage || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".previewImage\",\n        expected: \"(string | undefined)\",\n        value: input.previewImage\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"image\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"image\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.image || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".image\",\n        expected: \"string\",\n        value: input.image\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.previewImage || \"string\" === typeof input.previewImage || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".previewImage\",\n        expected: \"(string | undefined)\",\n        value: input.previewImage\n    }, _errorFactory)) && (undefined === input.preferredImageRendering || \"auto\" === input.preferredImageRendering || \"pixelated\" === input.preferredImageRendering || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".preferredImageRendering\",\n        expected: \"(\\\"auto\\\" | \\\"pixelated\\\" | undefined)\",\n        value: input.preferredImageRendering\n    }, _errorFactory)) && (undefined === input.altText || \"string\" === typeof input.altText || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altText\",\n        expected: \"(string | undefined)\",\n        value: input.altText\n    }, _errorFactory)) && (undefined === input.resolution || \"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolution\",\n        expected: \"(\\\"auto\\\" | \\\"full\\\" | \\\"large\\\" | \\\"lossless\\\" | \\\"medium\\\" | \\\"small\\\" | undefined)\",\n        value: input.resolution\n    }, _errorFactory)); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"detachedComponentLayers\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"detachedComponentLayers\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.url || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".url\",\n        expected: \"string\",\n        value: input.url\n    }, _errorFactory)) && (undefined === input.layout || \"boolean\" === typeof input.layout || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".layout\",\n        expected: \"(boolean | undefined)\",\n        value: input.layout\n    }, _errorFactory)) && (undefined === input.attributes || (\"object\" === typeof input.attributes && null !== input.attributes && false === Array.isArray(input.attributes) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".attributes\",\n        expected: \"(Partial<EditableComponentInstanceNodeAttributes> | undefined)\",\n        value: input.attributes\n    }, _errorFactory)) && _ao3(input.attributes, _path + \".attributes\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".attributes\",\n        expected: \"(Partial<EditableComponentInstanceNodeAttributes> | undefined)\",\n        value: input.attributes\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.previewImage || \"string\" === typeof input.previewImage || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".previewImage\",\n        expected: \"(string | undefined)\",\n        value: input.previewImage\n    }, _errorFactory)); const _ao3 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (null === input.name || undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(null | string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.visible || \"boolean\" === typeof input.visible || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".visible\",\n        expected: \"(boolean | undefined)\",\n        value: input.visible\n    }, _errorFactory)) && (undefined === input.locked || \"boolean\" === typeof input.locked || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".locked\",\n        expected: \"(boolean | undefined)\",\n        value: input.locked\n    }, _errorFactory)) && (undefined === input.opacity || \"number\" === typeof input.opacity || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".opacity\",\n        expected: \"(number | undefined)\",\n        value: input.opacity\n    }, _errorFactory)) && (undefined === input.position || \"relative\" === input.position || \"absolute\" === input.position || \"fixed\" === input.position || \"sticky\" === input.position || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".position\",\n        expected: \"(\\\"absolute\\\" | \\\"fixed\\\" | \\\"relative\\\" | \\\"sticky\\\" | undefined)\",\n        value: input.position\n    }, _errorFactory)) && (null === input.top || undefined === input.top || \"string\" === typeof input.top && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.top) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".top\",\n        expected: \"(`${number}px` | null | undefined)\",\n        value: input.top\n    }, _errorFactory)) && (null === input.right || undefined === input.right || \"string\" === typeof input.right && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.right) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".right\",\n        expected: \"(`${number}px` | null | undefined)\",\n        value: input.right\n    }, _errorFactory)) && (null === input.bottom || undefined === input.bottom || \"string\" === typeof input.bottom && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.bottom) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".bottom\",\n        expected: \"(`${number}px` | null | undefined)\",\n        value: input.bottom\n    }, _errorFactory)) && (null === input.left || undefined === input.left || \"string\" === typeof input.left && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.left) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".left\",\n        expected: \"(`${number}px` | null | undefined)\",\n        value: input.left\n    }, _errorFactory)) && (null === input.centerX || undefined === input.centerX || \"string\" === typeof input.centerX && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.centerX) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".centerX\",\n        expected: \"(`${number}%` | null | undefined)\",\n        value: input.centerX\n    }, _errorFactory)) && (null === input.centerY || undefined === input.centerY || \"string\" === typeof input.centerY && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.centerY) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".centerY\",\n        expected: \"(`${number}%` | null | undefined)\",\n        value: input.centerY\n    }, _errorFactory)) && (null === input.width || undefined === input.width || \"fit-content\" === input.width || \"fit-image\" === input.width || \"string\" === typeof input.width && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.width) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.width) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?fr$/).test(input.width)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".width\",\n        expected: \"(\\\"fit-content\\\" | \\\"fit-image\\\" | `${number}%` | `${number}fr` | `${number}px` | null | undefined)\",\n        value: input.width\n    }, _errorFactory)) && (null === input.height || undefined === input.height || \"fit-content\" === input.height || \"fit-image\" === input.height || \"string\" === typeof input.height && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.height) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.height) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?fr$/).test(input.height) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?vh$/).test(input.height)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".height\",\n        expected: \"(\\\"fit-content\\\" | \\\"fit-image\\\" | `${number}%` | `${number}fr` | `${number}px` | `${number}vh` | null | undefined)\",\n        value: input.height\n    }, _errorFactory)) && (null === input.maxWidth || undefined === input.maxWidth || \"string\" === typeof input.maxWidth && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.maxWidth) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.maxWidth)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".maxWidth\",\n        expected: \"(`${number}%` | `${number}px` | null | undefined)\",\n        value: input.maxWidth\n    }, _errorFactory)) && (null === input.minWidth || undefined === input.minWidth || \"string\" === typeof input.minWidth && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.minWidth) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.minWidth)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".minWidth\",\n        expected: \"(`${number}%` | `${number}px` | null | undefined)\",\n        value: input.minWidth\n    }, _errorFactory)) && (null === input.maxHeight || undefined === input.maxHeight || \"string\" === typeof input.maxHeight && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.maxHeight) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.maxHeight) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?vh$/).test(input.maxHeight)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".maxHeight\",\n        expected: \"(`${number}%` | `${number}px` | `${number}vh` | null | undefined)\",\n        value: input.maxHeight\n    }, _errorFactory)) && (null === input.minHeight || undefined === input.minHeight || \"string\" === typeof input.minHeight && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.minHeight) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.minHeight) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?vh$/).test(input.minHeight)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".minHeight\",\n        expected: \"(`${number}%` | `${number}px` | `${number}vh` | null | undefined)\",\n        value: input.minHeight\n    }, _errorFactory)) && (null === input.aspectRatio || undefined === input.aspectRatio || \"number\" === typeof input.aspectRatio || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".aspectRatio\",\n        expected: \"(null | number | undefined)\",\n        value: input.aspectRatio\n    }, _errorFactory)) && (undefined === input.controls || (\"object\" === typeof input.controls && null !== input.controls && false === Array.isArray(input.controls) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".controls\",\n        expected: \"(ControlAttributes | undefined)\",\n        value: input.controls\n    }, _errorFactory)) && _ao4(input.controls, _path + \".controls\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".controls\",\n        expected: \"(ControlAttributes | undefined)\",\n        value: input.controls\n    }, _errorFactory)) && (undefined === input.rotation || \"number\" === typeof input.rotation || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".rotation\",\n        expected: \"(number | undefined)\",\n        value: input.rotation\n    }, _errorFactory)); const _ao4 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _ao5 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.url || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".url\",\n        expected: \"string\",\n        value: input.url\n    }, _errorFactory)) && (\"componentInstance\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"componentInstance\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.previewImage || \"string\" === typeof input.previewImage || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".previewImage\",\n        expected: \"(string | undefined)\",\n        value: input.previewImage\n    }, _errorFactory)) && (undefined === input.attributes || (\"object\" === typeof input.attributes && null !== input.attributes && false === Array.isArray(input.attributes) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".attributes\",\n        expected: \"(Record<string, unknown> | undefined)\",\n        value: input.attributes\n    }, _errorFactory)) && _ao6(input.attributes, _path + \".attributes\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".attributes\",\n        expected: \"(Record<string, unknown> | undefined)\",\n        value: input.attributes\n    }, _errorFactory)); const _ao6 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"svg\" === input.type)\n            return _ao0(input, _path, true && _exceptionable);\n        else if (\"image\" === input.type)\n            return _ao1(input, _path, true && _exceptionable);\n        else if (\"detachedComponentLayers\" === input.type)\n            return _ao2(input, _path, true && _exceptionable);\n        else if (\"componentInstance\" === input.type)\n            return _ao5(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(SvgDragData | ImageDragData | DetachedComponentLayersDragData | ComponentDragData)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"setDragData\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (\"object\" === typeof input[1] && null !== input[1] && _iu0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setDragData\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[dragSessionId: string, dragData: MessageApiDragData]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, (ComponentDragData | DetachedComponentLayersDragData | ImageDragData | SvgDragData)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((\"object\" === typeof input[1] && null !== input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(ComponentDragData | DetachedComponentLayersDragData | ImageDragData | SvgDragData)\",\n                value: input[1]\n            }, _errorFactory)) && _au0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(ComponentDragData | DetachedComponentLayersDragData | ImageDragData | SvgDragData)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[dragSessionId: string, dragData: MessageApiDragData]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    onDragStart: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.dragSessionId && (\"object\" === typeof input.elementRect && null !== input.elementRect && _io1(input.elementRect)) && (undefined === input.svgRect || \"object\" === typeof input.svgRect && null !== input.svgRect && _io1(input.svgRect)) && (\"object\" === typeof input.mouse && null !== input.mouse && _io2(input.mouse)); const _io1 = (input: any): boolean => \"number\" === typeof input.x && \"number\" === typeof input.y && \"number\" === typeof input.width && \"number\" === typeof input.height; const _io2 = (input: any): boolean => \"number\" === typeof input.x && \"number\" === typeof input.y; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.dragSessionId || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".dragSessionId\",\n        expected: \"string\",\n        value: input.dragSessionId\n    }, _errorFactory)) && ((\"object\" === typeof input.elementRect && null !== input.elementRect || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".elementRect\",\n        expected: \"Rect\",\n        value: input.elementRect\n    }, _errorFactory)) && _ao1(input.elementRect, _path + \".elementRect\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".elementRect\",\n        expected: \"Rect\",\n        value: input.elementRect\n    }, _errorFactory)) && (undefined === input.svgRect || (\"object\" === typeof input.svgRect && null !== input.svgRect || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".svgRect\",\n        expected: \"(Rect | undefined)\",\n        value: input.svgRect\n    }, _errorFactory)) && _ao1(input.svgRect, _path + \".svgRect\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".svgRect\",\n        expected: \"(Rect | undefined)\",\n        value: input.svgRect\n    }, _errorFactory)) && ((\"object\" === typeof input.mouse && null !== input.mouse || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".mouse\",\n        expected: \"Point\",\n        value: input.mouse\n    }, _errorFactory)) && _ao2(input.mouse, _path + \".mouse\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".mouse\",\n        expected: \"Point\",\n        value: input.mouse\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"number\" === typeof input.x || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".x\",\n        expected: \"number\",\n        value: input.x\n    }, _errorFactory)) && (\"number\" === typeof input.y || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".y\",\n        expected: \"number\",\n        value: input.y\n    }, _errorFactory)) && (\"number\" === typeof input.width || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".width\",\n        expected: \"number\",\n        value: input.width\n    }, _errorFactory)) && (\"number\" === typeof input.height || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".height\",\n        expected: \"number\",\n        value: input.height\n    }, _errorFactory)); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"number\" === typeof input.x || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".x\",\n        expected: \"number\",\n        value: input.x\n    }, _errorFactory)) && (\"number\" === typeof input.y || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".y\",\n        expected: \"number\",\n        value: input.y\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"onDragStart\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"onDragStart\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[info: DragStartInfo]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[DragStartInfo]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"DragStartInfo\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"DragStartInfo\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[info: DragStartInfo]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    onDrag: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.dragSessionId && (\"object\" === typeof input.mouse && null !== input.mouse && _io1(input.mouse)); const _io1 = (input: any): boolean => \"number\" === typeof input.x && \"number\" === typeof input.y; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.dragSessionId || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".dragSessionId\",\n        expected: \"string\",\n        value: input.dragSessionId\n    }, _errorFactory)) && ((\"object\" === typeof input.mouse && null !== input.mouse || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".mouse\",\n        expected: \"Point\",\n        value: input.mouse\n    }, _errorFactory)) && _ao1(input.mouse, _path + \".mouse\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".mouse\",\n        expected: \"Point\",\n        value: input.mouse\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"number\" === typeof input.x || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".x\",\n        expected: \"number\",\n        value: input.x\n    }, _errorFactory)) && (\"number\" === typeof input.y || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".y\",\n        expected: \"number\",\n        value: input.y\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"onDrag\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"onDrag\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[info: DragInfo]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[DragInfo]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"DragInfo\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"DragInfo\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[info: DragInfo]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    onDragEnd: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.dragSessionId && \"boolean\" === typeof input.cancelled; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.dragSessionId || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".dragSessionId\",\n        expected: \"string\",\n        value: input.dragSessionId\n    }, _errorFactory)) && (\"boolean\" === typeof input.cancelled || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cancelled\",\n        expected: \"boolean\",\n        value: input.cancelled\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"onDragEnd\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"onDragEnd\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[info: DragEndInfo]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[DragEndInfo]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"DragEndInfo\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"DragEndInfo\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[info: DragEndInfo]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    onPointerDown: noArguments,\n    setCustomCode: (() => { const _io0 = (input: any): boolean => (null === input.html || \"string\" === typeof input.html) && (\"headStart\" === input.location || \"headEnd\" === input.location || \"bodyStart\" === input.location || \"bodyEnd\" === input.location); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (null === input.html || \"string\" === typeof input.html || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".html\",\n        expected: \"(null | string)\",\n        value: input.html\n    }, _errorFactory)) && (\"headStart\" === input.location || \"headEnd\" === input.location || \"bodyStart\" === input.location || \"bodyEnd\" === input.location || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".location\",\n        expected: \"(\\\"bodyEnd\\\" | \\\"bodyStart\\\" | \\\"headEnd\\\" | \\\"headStart\\\")\",\n        value: input.location\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"setCustomCode\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setCustomCode\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[options: SetCustomCodeOptions]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[SetCustomCodeOptions]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"SetCustomCodeOptions\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"SetCustomCodeOptions\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[options: SetCustomCodeOptions]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getCustomCode: noArguments,\n    getActiveManagedCollection: noArguments,\n    getManagedCollection: noArguments,\n    getManagedCollections: noArguments,\n    getManagedCollectionItemIds: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getManagedCollectionItemIds\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getManagedCollectionItemIds\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setManagedCollectionItemOrder: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"setManagedCollectionItemOrder\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (Array.isArray(input[1]) && input[1].every((elem: any) => \"string\" === typeof elem))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setManagedCollectionItemOrder\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, ids: string[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Array<string>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<string>\",\n                value: input[1]\n            }, _errorFactory)) && input[1].every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index2 + \"]\",\n                expected: \"string\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<string>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, ids: string[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setManagedCollectionFields: (() => { const _io0 = (input: any): boolean => \"boolean\" === input.type && \"string\" === typeof input.name && \"string\" === typeof input.id && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable); const _io1 = (input: any): boolean => \"color\" === input.type && \"string\" === typeof input.name && \"string\" === typeof input.id && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable); const _io2 = (input: any): boolean => \"number\" === input.type && \"string\" === typeof input.name && \"string\" === typeof input.id && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable); const _io3 = (input: any): boolean => \"string\" === input.type && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required) && \"string\" === typeof input.id && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable); const _io4 = (input: any): boolean => \"formattedText\" === input.type && (undefined === input.contentType || \"auto\" === input.contentType || \"markdown\" === input.contentType || \"html\" === input.contentType) && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required) && \"string\" === typeof input.id && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable); const _io5 = (input: any): boolean => \"image\" === input.type && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required) && \"string\" === typeof input.id && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable); const _io6 = (input: any): boolean => \"link\" === input.type && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required) && \"string\" === typeof input.id && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable); const _io7 = (input: any): boolean => \"date\" === input.type && (undefined === input.displayTime || \"boolean\" === typeof input.displayTime) && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required) && \"string\" === typeof input.id && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable); const _io8 = (input: any): boolean => \"file\" === input.type && \"string\" === typeof input.name && (Array.isArray(input.allowedFileTypes) && input.allowedFileTypes.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.required || \"boolean\" === typeof input.required) && \"string\" === typeof input.id && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable); const _io9 = (input: any): boolean => Array.isArray(input.cases) && input.cases.every((elem: any) => \"object\" === typeof elem && null !== elem && _io10(elem)) && \"enum\" === input.type && \"string\" === typeof input.name && \"string\" === typeof input.id && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable); const _io10 = (input: any): boolean => \"string\" === typeof input.id && \"string\" === typeof input.name && (undefined === input.nameByLocale || \"object\" === typeof input.nameByLocale && null !== input.nameByLocale && false === Array.isArray(input.nameByLocale) && _io11(input.nameByLocale)); const _io11 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && _iu1(value);\n    }); const _io12 = (input: any): boolean => \"set\" === input.action && \"string\" === typeof input.value && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io13 = (input: any): boolean => \"clear\" === input.action; const _io14 = (input: any): boolean => \"ignore\" === input.action && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io15 = (input: any): boolean => \"collectionReference\" === input.type && \"string\" === typeof input.name && \"string\" === typeof input.collectionId && (undefined === input.required || \"boolean\" === typeof input.required) && \"string\" === typeof input.id && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable); const _io16 = (input: any): boolean => \"multiCollectionReference\" === input.type && \"string\" === typeof input.name && \"string\" === typeof input.collectionId && (undefined === input.required || \"boolean\" === typeof input.required) && \"string\" === typeof input.id && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable); const _io17 = (input: any): boolean => Array.isArray(input.fields) && (input.fields.length === 1 && (\"object\" === typeof input.fields[0] && null !== input.fields[0] && _io18(input.fields[0]))) && \"array\" === input.type && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required) && \"string\" === typeof input.id && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable); const _io18 = (input: any): boolean => \"image\" === input.type && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required) && \"string\" === typeof input.id && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable); const _iu0 = (input: any): any => (() => {\n        if (\"number\" === input.type)\n            return _io2(input);\n        else if (\"color\" === input.type)\n            return _io1(input);\n        else if (\"boolean\" === input.type)\n            return _io0(input);\n        else if (\"link\" === input.type)\n            return _io6(input);\n        else if (\"string\" === input.type)\n            return _io3(input);\n        else if (\"formattedText\" === input.type)\n            return _io4(input);\n        else if (\"image\" === input.type)\n            return _io5(input);\n        else if (\"date\" === input.type)\n            return _io7(input);\n        else if (\"file\" === input.type)\n            return _io8(input);\n        else if (\"enum\" === input.type)\n            return _io9(input);\n        else if (\"multiCollectionReference\" === input.type)\n            return _io16(input);\n        else if (\"collectionReference\" === input.type)\n            return _io15(input);\n        else if (\"array\" === input.type)\n            return _io17(input);\n        else\n            return false;\n    })(); const _iu1 = (input: any): any => (() => {\n        if (\"set\" === input.action)\n            return _io12(input);\n        else if (\"clear\" === input.action)\n            return _io13(input);\n        else if (\"ignore\" === input.action)\n            return _io14(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"boolean\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"boolean\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".userEditable\",\n        expected: \"(boolean | undefined)\",\n        value: input.userEditable\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"color\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"color\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".userEditable\",\n        expected: \"(boolean | undefined)\",\n        value: input.userEditable\n    }, _errorFactory)); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"number\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"number\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".userEditable\",\n        expected: \"(boolean | undefined)\",\n        value: input.userEditable\n    }, _errorFactory)); const _ao3 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"string\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".userEditable\",\n        expected: \"(boolean | undefined)\",\n        value: input.userEditable\n    }, _errorFactory)); const _ao4 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"formattedText\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"formattedText\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.contentType || \"auto\" === input.contentType || \"markdown\" === input.contentType || \"html\" === input.contentType || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".contentType\",\n        expected: \"(\\\"auto\\\" | \\\"html\\\" | \\\"markdown\\\" | undefined)\",\n        value: input.contentType\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".userEditable\",\n        expected: \"(boolean | undefined)\",\n        value: input.userEditable\n    }, _errorFactory)); const _ao5 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"image\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"image\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".userEditable\",\n        expected: \"(boolean | undefined)\",\n        value: input.userEditable\n    }, _errorFactory)); const _ao6 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"link\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"link\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".userEditable\",\n        expected: \"(boolean | undefined)\",\n        value: input.userEditable\n    }, _errorFactory)); const _ao7 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"date\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"date\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.displayTime || \"boolean\" === typeof input.displayTime || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".displayTime\",\n        expected: \"(boolean | undefined)\",\n        value: input.displayTime\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".userEditable\",\n        expected: \"(boolean | undefined)\",\n        value: input.userEditable\n    }, _errorFactory)); const _ao8 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"file\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"file\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && ((Array.isArray(input.allowedFileTypes) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes\",\n        expected: \"Array<string>\",\n        value: input.allowedFileTypes\n    }, _errorFactory)) && input.allowedFileTypes.every((elem: any, _index5: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes[\" + _index5 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes\",\n        expected: \"Array<string>\",\n        value: input.allowedFileTypes\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".userEditable\",\n        expected: \"(boolean | undefined)\",\n        value: input.userEditable\n    }, _errorFactory)); const _ao9 = (input: any, _path: string, _exceptionable: boolean = true): boolean => ((Array.isArray(input.cases) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cases\",\n        expected: \"Array<EnumCaseDataInput>\",\n        value: input.cases\n    }, _errorFactory)) && input.cases.every((elem: any, _index6: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cases[\" + _index6 + \"]\",\n        expected: \"EnumCaseDataInput\",\n        value: elem\n    }, _errorFactory)) && _ao10(elem, _path + \".cases[\" + _index6 + \"]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cases[\" + _index6 + \"]\",\n        expected: \"EnumCaseDataInput\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cases\",\n        expected: \"Array<EnumCaseDataInput>\",\n        value: input.cases\n    }, _errorFactory)) && (\"enum\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"enum\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".userEditable\",\n        expected: \"(boolean | undefined)\",\n        value: input.userEditable\n    }, _errorFactory)); const _ao10 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.nameByLocale || (\"object\" === typeof input.nameByLocale && null !== input.nameByLocale && false === Array.isArray(input.nameByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".nameByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.nameByLocale\n    }, _errorFactory)) && _ao11(input.nameByLocale, _path + \".nameByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".nameByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.nameByLocale\n    }, _errorFactory)); const _ao11 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type | __type.o1 | __type.o2)\",\n            value: value\n        }, _errorFactory)) && _au1(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type | __type.o1 | __type.o2)\",\n            value: value\n        }, _errorFactory);\n    }); const _ao12 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"set\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"set\\\"\",\n        value: input.action\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao13 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"clear\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"clear\\\"\",\n        value: input.action\n    }, _errorFactory); const _ao14 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"ignore\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"ignore\\\"\",\n        value: input.action\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao15 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"collectionReference\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"collectionReference\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (\"string\" === typeof input.collectionId || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".collectionId\",\n        expected: \"string\",\n        value: input.collectionId\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".userEditable\",\n        expected: \"(boolean | undefined)\",\n        value: input.userEditable\n    }, _errorFactory)); const _ao16 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"multiCollectionReference\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"multiCollectionReference\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (\"string\" === typeof input.collectionId || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".collectionId\",\n        expected: \"string\",\n        value: input.collectionId\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".userEditable\",\n        expected: \"(boolean | undefined)\",\n        value: input.userEditable\n    }, _errorFactory)); const _ao17 = (input: any, _path: string, _exceptionable: boolean = true): boolean => ((Array.isArray(input.fields) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields\",\n        expected: \"[ManagedArrayItemFieldInput]\",\n        value: input.fields\n    }, _errorFactory)) && ((input.fields.length === 1 || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields\",\n        expected: \"[ManagedArrayItemFieldInput]\",\n        value: input.fields\n    }, _errorFactory)) && ((\"object\" === typeof input.fields[0] && null !== input.fields[0] || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields[0]\",\n        expected: \"ManagedArrayItemFieldInput\",\n        value: input.fields[0]\n    }, _errorFactory)) && _ao18(input.fields[0], _path + \".fields[0]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields[0]\",\n        expected: \"ManagedArrayItemFieldInput\",\n        value: input.fields[0]\n    }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields\",\n        expected: \"[ManagedArrayItemFieldInput]\",\n        value: input.fields\n    }, _errorFactory)) && (\"array\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"array\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".userEditable\",\n        expected: \"(boolean | undefined)\",\n        value: input.userEditable\n    }, _errorFactory)); const _ao18 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"image\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"image\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.userEditable || \"boolean\" === typeof input.userEditable || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".userEditable\",\n        expected: \"(boolean | undefined)\",\n        value: input.userEditable\n    }, _errorFactory)); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"number\" === input.type)\n            return _ao2(input, _path, true && _exceptionable);\n        else if (\"color\" === input.type)\n            return _ao1(input, _path, true && _exceptionable);\n        else if (\"boolean\" === input.type)\n            return _ao0(input, _path, true && _exceptionable);\n        else if (\"link\" === input.type)\n            return _ao6(input, _path, true && _exceptionable);\n        else if (\"string\" === input.type)\n            return _ao3(input, _path, true && _exceptionable);\n        else if (\"formattedText\" === input.type)\n            return _ao4(input, _path, true && _exceptionable);\n        else if (\"image\" === input.type)\n            return _ao5(input, _path, true && _exceptionable);\n        else if (\"date\" === input.type)\n            return _ao7(input, _path, true && _exceptionable);\n        else if (\"file\" === input.type)\n            return _ao8(input, _path, true && _exceptionable);\n        else if (\"enum\" === input.type)\n            return _ao9(input, _path, true && _exceptionable);\n        else if (\"multiCollectionReference\" === input.type)\n            return _ao16(input, _path, true && _exceptionable);\n        else if (\"collectionReference\" === input.type)\n            return _ao15(input, _path, true && _exceptionable);\n        else if (\"array\" === input.type)\n            return _ao17(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(ManagedNumberFieldInput | ManagedColorFieldInput | ManagedBooleanFieldInput | ManagedLinkFieldInput | ManagedStringFieldInput | FormattedTextFieldInput | ManagedImageFieldInput | ManagedDateFieldInput | ManagedFileFieldInput | ManagedEnumFieldInput | ManagedMultiCollectionReferenceFieldInput | ManagedCollectionReferenceFieldInput | ManagedArrayFieldInput)\",\n                value: input\n            }, _errorFactory);\n    })(); const _au1 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"set\" === input.action)\n            return _ao12(input, _path, true && _exceptionable);\n        else if (\"clear\" === input.action)\n            return _ao13(input, _path, true && _exceptionable);\n        else if (\"ignore\" === input.action)\n            return _ao14(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(__type | __type.o1 | __type.o2)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"setManagedCollectionFields\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (Array.isArray(input[1]) && input[1].every((elem: any) => \"object\" === typeof elem && null !== elem && _iu0(elem)))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setManagedCollectionFields\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, fields: ManagedCollectionFieldInputData[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Array<ManagedCollectionFieldInputData>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<ManagedCollectionFieldInputData>\",\n                value: input[1]\n            }, _errorFactory)) && input[1].every((elem: any, _index4: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index4 + \"]\",\n                expected: \"(FormattedTextFieldInput | ManagedArrayFieldInput | ManagedBooleanFieldInput | ManagedCollectionReferenceFieldInput | ManagedColorFieldInput | ManagedDateFieldInput | ManagedEnumFieldInput | ManagedFileFieldInput | ManagedImageFieldInput | ManagedLinkFieldInput | ManagedMultiCollectionReferenceFieldInput | ManagedNumberFieldInput | ManagedStringFieldInput)\",\n                value: elem\n            }, _errorFactory)) && _au0(elem, _path + \"[1][\" + _index4 + \"]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index4 + \"]\",\n                expected: \"(FormattedTextFieldInput | ManagedArrayFieldInput | ManagedBooleanFieldInput | ManagedCollectionReferenceFieldInput | ManagedColorFieldInput | ManagedDateFieldInput | ManagedEnumFieldInput | ManagedFileFieldInput | ManagedImageFieldInput | ManagedLinkFieldInput | ManagedMultiCollectionReferenceFieldInput | ManagedNumberFieldInput | ManagedStringFieldInput)\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<ManagedCollectionFieldInputData>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, fields: ManagedCollectionFieldInputData[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getManagedCollectionFields: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getManagedCollectionFields\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getManagedCollectionFields\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getManagedCollectionFields2: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getManagedCollectionFields2\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getManagedCollectionFields2\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    addManagedCollectionItems: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.id && \"string\" === typeof input.slug && (\"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) && _io1(input.fieldData)) && (undefined === input.draft || \"boolean\" === typeof input.draft); const _io1 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (\"string\" === typeof input.slug || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".slug\",\n        expected: \"string\",\n        value: input.slug\n    }, _errorFactory)) && ((\"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"ApiV2FieldData\",\n        value: input.fieldData\n    }, _errorFactory)) && _ao1(input.fieldData, _path + \".fieldData\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"ApiV2FieldData\",\n        value: input.fieldData\n    }, _errorFactory)) && (undefined === input.draft || \"boolean\" === typeof input.draft || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".draft\",\n        expected: \"(boolean | undefined)\",\n        value: input.draft\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const __is = (input: any): input is Parameters<PluginMessageAPI[\"addManagedCollectionItems\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (Array.isArray(input[1]) && input[1].every((elem: any) => \"object\" === typeof elem && null !== elem && _io0(elem)))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addManagedCollectionItems\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, items: ApiV2ManagedCollectionItemInput[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Array<ApiV2ManagedCollectionItemInput>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<ApiV2ManagedCollectionItemInput>\",\n                value: input[1]\n            }, _errorFactory)) && input[1].every((elem: any, _index2: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index2 + \"]\",\n                expected: \"ApiV2ManagedCollectionItemInput\",\n                value: elem\n            }, _errorFactory)) && _ao0(elem, _path + \"[1][\" + _index2 + \"]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index2 + \"]\",\n                expected: \"ApiV2ManagedCollectionItemInput\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<ApiV2ManagedCollectionItemInput>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, items: ApiV2ManagedCollectionItemInput[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    addManagedCollectionItems2: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.id && \"string\" === typeof input.slug && (undefined === input.slugByLocale || \"object\" === typeof input.slugByLocale && null !== input.slugByLocale && false === Array.isArray(input.slugByLocale) && _io1(input.slugByLocale)) && (\"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) && _io5(input.fieldData)) && (undefined === input.statusByLocale || \"object\" === typeof input.statusByLocale && null !== input.statusByLocale && false === Array.isArray(input.statusByLocale) && _io23(input.statusByLocale)) && (undefined === input.draft || \"boolean\" === typeof input.draft); const _io1 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && _iu1(value);\n    }); const _io2 = (input: any): boolean => \"set\" === input.action && \"string\" === typeof input.value && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io3 = (input: any): boolean => \"clear\" === input.action; const _io4 = (input: any): boolean => \"ignore\" === input.action && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io5 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && _iu2(value);\n    }); const _io6 = (input: any): boolean => \"boolean\" === input.type && \"boolean\" === typeof input.value; const _io7 = (input: any): boolean => \"color\" === input.type && (undefined !== input.value && (null === input.value || \"string\" === typeof input.value || \"object\" === typeof input.value && null !== input.value && _io8(input.value))); const _io8 = (input: any): boolean => \"string\" === typeof input.id && \"string\" === typeof input.name && \"string\" === typeof input.path && \"ColorStyle\" === input.__class && \"string\" === typeof input.light && (null === input.dark || \"string\" === typeof input.dark); const _io9 = (input: any): boolean => \"date\" === input.type && (null === input.value || \"string\" === typeof input.value || \"number\" === typeof input.value); const _io10 = (input: any): boolean => \"enum\" === input.type && \"string\" === typeof input.value; const _io11 = (input: any): boolean => \"file\" === input.type && (null === input.value || \"string\" === typeof input.value); const _io12 = (input: any): boolean => \"link\" === input.type && (null === input.value || \"string\" === typeof input.value) && (undefined === input.valueByLocale || \"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) && _io1(input.valueByLocale)); const _io13 = (input: any): boolean => \"number\" === input.type && \"number\" === typeof input.value; const _io14 = (input: any): boolean => \"formattedText\" === input.type && \"string\" === typeof input.value && (undefined === input.contentType || \"auto\" === input.contentType || \"markdown\" === input.contentType || \"html\" === input.contentType) && (undefined === input.valueByLocale || \"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) && _io1(input.valueByLocale)); const _io15 = (input: any): boolean => \"string\" === input.type && \"string\" === typeof input.value && (undefined === input.valueByLocale || \"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) && _io1(input.valueByLocale)); const _io16 = (input: any): boolean => \"image\" === input.type && (null === input.value || \"string\" === typeof input.value) && (undefined === input.alt || \"string\" === typeof input.alt) && (undefined === input.altByLocale || \"object\" === typeof input.altByLocale && null !== input.altByLocale && false === Array.isArray(input.altByLocale) && _io1(input.altByLocale)); const _io17 = (input: any): boolean => \"collectionReference\" === input.type && (null === input.value || \"string\" === typeof input.value); const _io18 = (input: any): boolean => \"multiCollectionReference\" === input.type && (null === input.value || Array.isArray(input.value) && input.value.every((elem: any) => \"string\" === typeof elem)); const _io19 = (input: any): boolean => \"array\" === input.type && (Array.isArray(input.value) && input.value.every((elem: any) => \"object\" === typeof elem && null !== elem && false === Array.isArray(elem) && _iu0(elem))); const _io20 = (input: any): boolean => undefined === input.fieldData || \"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) && _io21(input.fieldData); const _io21 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && _io16(value);\n    }); const _io22 = (input: any): boolean => \"string\" === typeof input.id && (undefined === input.fieldData || \"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) && _io21(input.fieldData)); const _io23 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"excluded\" === value || \"ready\" === value;\n    }); const _iu0 = (input: any): any => (() => {\n        if (undefined !== input.id)\n            return _io22(input);\n        else\n            return _io20(input);\n    })(); const _iu1 = (input: any): any => (() => {\n        if (\"set\" === input.action)\n            return _io2(input);\n        else if (\"clear\" === input.action)\n            return _io3(input);\n        else if (\"ignore\" === input.action)\n            return _io4(input);\n        else\n            return false;\n    })(); const _iu2 = (input: any): any => (() => {\n        if (\"array\" === input.type)\n            return _io19(input);\n        else if (\"multiCollectionReference\" === input.type)\n            return _io18(input);\n        else if (\"collectionReference\" === input.type)\n            return _io17(input);\n        else if (\"number\" === input.type)\n            return _io13(input);\n        else if (\"file\" === input.type)\n            return _io11(input);\n        else if (\"enum\" === input.type)\n            return _io10(input);\n        else if (\"date\" === input.type)\n            return _io9(input);\n        else if (\"color\" === input.type)\n            return _io7(input);\n        else if (\"boolean\" === input.type)\n            return _io6(input);\n        else if (\"string\" === input.type)\n            return _io15(input);\n        else if (\"link\" === input.type)\n            return _io12(input);\n        else if (\"formattedText\" === input.type)\n            return _io14(input);\n        else if (\"image\" === input.type)\n            return _io16(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (\"string\" === typeof input.slug || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".slug\",\n        expected: \"string\",\n        value: input.slug\n    }, _errorFactory)) && (undefined === input.slugByLocale || (\"object\" === typeof input.slugByLocale && null !== input.slugByLocale && false === Array.isArray(input.slugByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".slugByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.slugByLocale\n    }, _errorFactory)) && _ao1(input.slugByLocale, _path + \".slugByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".slugByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.slugByLocale\n    }, _errorFactory)) && ((\"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"FieldDataInput\",\n        value: input.fieldData\n    }, _errorFactory)) && _ao5(input.fieldData, _path + \".fieldData\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"FieldDataInput\",\n        value: input.fieldData\n    }, _errorFactory)) && (undefined === input.statusByLocale || (\"object\" === typeof input.statusByLocale && null !== input.statusByLocale && false === Array.isArray(input.statusByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".statusByLocale\",\n        expected: \"(LocalizationGroupStatusByLocale | undefined)\",\n        value: input.statusByLocale\n    }, _errorFactory)) && _ao23(input.statusByLocale, _path + \".statusByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".statusByLocale\",\n        expected: \"(LocalizationGroupStatusByLocale | undefined)\",\n        value: input.statusByLocale\n    }, _errorFactory)) && (undefined === input.draft || \"boolean\" === typeof input.draft || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".draft\",\n        expected: \"(boolean | undefined)\",\n        value: input.draft\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type | __type.o1 | __type.o2)\",\n            value: value\n        }, _errorFactory)) && _au1(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type | __type.o1 | __type.o2)\",\n            value: value\n        }, _errorFactory);\n    }); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"set\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"set\\\"\",\n        value: input.action\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao3 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"clear\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"clear\\\"\",\n        value: input.action\n    }, _errorFactory); const _ao4 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"ignore\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"ignore\\\"\",\n        value: input.action\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao5 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(ArrayFieldDataEntryInput | BooleanFieldDataEntry | CollectionReferenceFieldDataEntryInput | ColorFieldDataEntryInput | DateFieldDataEntryInput | EnumFieldDataEntryInput | FileFieldDataEntryInput | FormattedTextFieldDataEntryInput | ImageFieldDataEntryInput | LinkFieldDataEntryInput | MultiCollectionReferenceFieldDataEntryInput | NumberFieldDataEntry | StringFieldDataEntryInput)\",\n            value: value\n        }, _errorFactory)) && _au2(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(ArrayFieldDataEntryInput | BooleanFieldDataEntry | CollectionReferenceFieldDataEntryInput | ColorFieldDataEntryInput | DateFieldDataEntryInput | EnumFieldDataEntryInput | FileFieldDataEntryInput | FormattedTextFieldDataEntryInput | ImageFieldDataEntryInput | LinkFieldDataEntryInput | MultiCollectionReferenceFieldDataEntryInput | NumberFieldDataEntry | StringFieldDataEntryInput)\",\n            value: value\n        }, _errorFactory);\n    }); const _ao6 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"boolean\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"boolean\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"boolean\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"boolean\",\n        value: input.value\n    }, _errorFactory)); const _ao7 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"color\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"color\\\"\",\n        value: input.type\n    }, _errorFactory)) && ((undefined !== input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(ColorStyleData | null | string)\",\n        value: input.value\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || (\"object\" === typeof input.value && null !== input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(ColorStyleData | null | string)\",\n        value: input.value\n    }, _errorFactory)) && _ao8(input.value, _path + \".value\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(ColorStyleData | null | string)\",\n        value: input.value\n    }, _errorFactory))); const _ao8 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (\"string\" === typeof input.path || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".path\",\n        expected: \"string\",\n        value: input.path\n    }, _errorFactory)) && (\"ColorStyle\" === input.__class || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".__class\",\n        expected: \"\\\"ColorStyle\\\"\",\n        value: input.__class\n    }, _errorFactory)) && (\"string\" === typeof input.light || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".light\",\n        expected: \"string\",\n        value: input.light\n    }, _errorFactory)) && (null === input.dark || \"string\" === typeof input.dark || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".dark\",\n        expected: \"(null | string)\",\n        value: input.dark\n    }, _errorFactory)); const _ao9 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"date\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"date\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || \"number\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(null | number | string)\",\n        value: input.value\n    }, _errorFactory)); const _ao10 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"enum\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"enum\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)); const _ao11 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"file\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"file\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(null | string)\",\n        value: input.value\n    }, _errorFactory)); const _ao12 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"link\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"link\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(null | string)\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.valueByLocale || (\"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)) && _ao1(input.valueByLocale, _path + \".valueByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)); const _ao13 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"number\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"number\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"number\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"number\",\n        value: input.value\n    }, _errorFactory)); const _ao14 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"formattedText\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"formattedText\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.contentType || \"auto\" === input.contentType || \"markdown\" === input.contentType || \"html\" === input.contentType || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".contentType\",\n        expected: \"(\\\"auto\\\" | \\\"html\\\" | \\\"markdown\\\" | undefined)\",\n        value: input.contentType\n    }, _errorFactory)) && (undefined === input.valueByLocale || (\"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)) && _ao1(input.valueByLocale, _path + \".valueByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)); const _ao15 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"string\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.valueByLocale || (\"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)) && _ao1(input.valueByLocale, _path + \".valueByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)); const _ao16 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"image\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"image\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(null | string)\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.alt || \"string\" === typeof input.alt || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".alt\",\n        expected: \"(string | undefined)\",\n        value: input.alt\n    }, _errorFactory)) && (undefined === input.altByLocale || (\"object\" === typeof input.altByLocale && null !== input.altByLocale && false === Array.isArray(input.altByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.altByLocale\n    }, _errorFactory)) && _ao1(input.altByLocale, _path + \".altByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.altByLocale\n    }, _errorFactory)); const _ao17 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"collectionReference\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"collectionReference\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(null | string)\",\n        value: input.value\n    }, _errorFactory)); const _ao18 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"multiCollectionReference\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"multiCollectionReference\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || (Array.isArray(input.value) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(ReadonlyArray<string> | null)\",\n        value: input.value\n    }, _errorFactory)) && input.value.every((elem: any, _index5: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value[\" + _index5 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(ReadonlyArray<string> | null)\",\n        value: input.value\n    }, _errorFactory)); const _ao19 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"array\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"array\\\"\",\n        value: input.type\n    }, _errorFactory)) && ((Array.isArray(input.value) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"Array<ArrayItemInput>\",\n        value: input.value\n    }, _errorFactory)) && input.value.every((elem: any, _index6: number) => (\"object\" === typeof elem && null !== elem && false === Array.isArray(elem) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value[\" + _index6 + \"]\",\n        expected: \"(CreateArrayItem | UpdateArrayItem)\",\n        value: elem\n    }, _errorFactory)) && _au0(elem, _path + \".value[\" + _index6 + \"]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value[\" + _index6 + \"]\",\n        expected: \"(CreateArrayItem | UpdateArrayItem)\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"Array<ArrayItemInput>\",\n        value: input.value\n    }, _errorFactory)); const _ao20 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.fieldData || (\"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ArrayItemFieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && _ao21(input.fieldData, _path + \".fieldData\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ArrayItemFieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory); const _ao21 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"ImageFieldDataEntryInput\",\n            value: value\n        }, _errorFactory)) && _ao16(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"ImageFieldDataEntryInput\",\n            value: value\n        }, _errorFactory);\n    }); const _ao22 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.fieldData || (\"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ArrayItemFieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && _ao21(input.fieldData, _path + \".fieldData\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ArrayItemFieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)); const _ao23 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"excluded\" === value || \"ready\" === value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(\\\"excluded\\\" | \\\"ready\\\")\",\n            value: value\n        }, _errorFactory);\n    }); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (undefined !== input.id)\n            return _ao22(input, _path, true && _exceptionable);\n        else\n            return _ao20(input, _path, true && _exceptionable);\n    })(); const _au1 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"set\" === input.action)\n            return _ao2(input, _path, true && _exceptionable);\n        else if (\"clear\" === input.action)\n            return _ao3(input, _path, true && _exceptionable);\n        else if (\"ignore\" === input.action)\n            return _ao4(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(__type | __type.o1 | __type.o2)\",\n                value: input\n            }, _errorFactory);\n    })(); const _au2 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"array\" === input.type)\n            return _ao19(input, _path, true && _exceptionable);\n        else if (\"multiCollectionReference\" === input.type)\n            return _ao18(input, _path, true && _exceptionable);\n        else if (\"collectionReference\" === input.type)\n            return _ao17(input, _path, true && _exceptionable);\n        else if (\"number\" === input.type)\n            return _ao13(input, _path, true && _exceptionable);\n        else if (\"file\" === input.type)\n            return _ao11(input, _path, true && _exceptionable);\n        else if (\"enum\" === input.type)\n            return _ao10(input, _path, true && _exceptionable);\n        else if (\"date\" === input.type)\n            return _ao9(input, _path, true && _exceptionable);\n        else if (\"color\" === input.type)\n            return _ao7(input, _path, true && _exceptionable);\n        else if (\"boolean\" === input.type)\n            return _ao6(input, _path, true && _exceptionable);\n        else if (\"string\" === input.type)\n            return _ao15(input, _path, true && _exceptionable);\n        else if (\"link\" === input.type)\n            return _ao12(input, _path, true && _exceptionable);\n        else if (\"formattedText\" === input.type)\n            return _ao14(input, _path, true && _exceptionable);\n        else if (\"image\" === input.type)\n            return _ao16(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(ArrayFieldDataEntryInput | MultiCollectionReferenceFieldDataEntryInput | CollectionReferenceFieldDataEntryInput | NumberFieldDataEntry | FileFieldDataEntryInput | EnumFieldDataEntryInput | DateFieldDataEntryInput | ColorFieldDataEntryInput | BooleanFieldDataEntry | StringFieldDataEntryInput | LinkFieldDataEntryInput | FormattedTextFieldDataEntryInput | ImageFieldDataEntryInput)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"addManagedCollectionItems2\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (Array.isArray(input[1]) && input[1].every((elem: any) => \"object\" === typeof elem && null !== elem && _io0(elem)))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addManagedCollectionItems2\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, items: ManagedCollectionItemInput[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Array<ManagedCollectionItemInput>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<ManagedCollectionItemInput>\",\n                value: input[1]\n            }, _errorFactory)) && input[1].every((elem: any, _index4: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index4 + \"]\",\n                expected: \"ManagedCollectionItemInput\",\n                value: elem\n            }, _errorFactory)) && _ao0(elem, _path + \"[1][\" + _index4 + \"]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index4 + \"]\",\n                expected: \"ManagedCollectionItemInput\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<ManagedCollectionItemInput>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, items: ManagedCollectionItemInput[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    removeManagedCollectionItems: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"removeManagedCollectionItems\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (Array.isArray(input[1]) && input[1].every((elem: any) => \"string\" === typeof elem))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"removeManagedCollectionItems\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, itemIds: string[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Array<string>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<string>\",\n                value: input[1]\n            }, _errorFactory)) && input[1].every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index2 + \"]\",\n                expected: \"string\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<string>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, itemIds: string[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getCollection: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getCollection\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getCollection\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    createCollection: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"createCollection\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"createCollection\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[name: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[name: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getActiveCollection: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getActiveCollection\"]> => Array.isArray(input) && input.length === 0; let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getActiveCollection\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) && (input.length === 0 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getCollections: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getCollections\"]> => Array.isArray(input) && input.length === 0; let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getCollections\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) && (input.length === 0 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getCollectionItems: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getCollectionItems\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getCollectionItems\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getCollectionItems2: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getCollectionItems2\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getCollectionItems2\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setCollectionItemOrder: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"setCollectionItemOrder\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (Array.isArray(input[1]) && input[1].every((elem: any) => \"string\" === typeof elem))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setCollectionItemOrder\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, itemIds: string[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Array<string>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<string>\",\n                value: input[1]\n            }, _errorFactory)) && input[1].every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index2 + \"]\",\n                expected: \"string\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<string>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, itemIds: string[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getCollectionFields: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getCollectionFields\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && \"string\" === typeof input[0] && (undefined === input[1] || true === input[1])); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getCollectionFields\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, includeDividers?: true | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, (true | undefined)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || true === input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(true | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, includeDividers?: true | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getCollectionFields2: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getCollectionFields2\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && \"string\" === typeof input[0] && (undefined === input[1] || true === input[1])); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getCollectionFields2\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, includeDividers?: true | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, (true | undefined)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || true === input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(true | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, includeDividers?: true | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    addCollectionFields: (() => { const _io0 = (input: any): boolean => \"boolean\" === input.type && \"string\" === typeof input.name; const _io1 = (input: any): boolean => \"color\" === input.type && \"string\" === typeof input.name; const _io2 = (input: any): boolean => \"number\" === input.type && \"string\" === typeof input.name; const _io3 = (input: any): boolean => \"string\" === input.type && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required); const _io4 = (input: any): boolean => \"formattedText\" === input.type && (undefined === input.contentType || \"auto\" === input.contentType || \"markdown\" === input.contentType || \"html\" === input.contentType) && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required); const _io5 = (input: any): boolean => \"image\" === input.type && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required); const _io6 = (input: any): boolean => \"link\" === input.type && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required); const _io7 = (input: any): boolean => \"date\" === input.type && (undefined === input.displayTime || \"boolean\" === typeof input.displayTime) && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required); const _io8 = (input: any): boolean => \"file\" === input.type && \"string\" === typeof input.name && (Array.isArray(input.allowedFileTypes) && input.allowedFileTypes.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.required || \"boolean\" === typeof input.required); const _io9 = (input: any): boolean => \"collectionReference\" === input.type && \"string\" === typeof input.name && \"string\" === typeof input.collectionId && (undefined === input.required || \"boolean\" === typeof input.required); const _io10 = (input: any): boolean => \"multiCollectionReference\" === input.type && \"string\" === typeof input.name && \"string\" === typeof input.collectionId && (undefined === input.required || \"boolean\" === typeof input.required); const _io11 = (input: any): boolean => Array.isArray(input.fields) && (input.fields.length === 1 && (\"object\" === typeof input.fields[0] && null !== input.fields[0] && _io12(input.fields[0]))) && \"array\" === input.type && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required); const _io12 = (input: any): boolean => \"image\" === input.type && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required); const _io13 = (input: any): boolean => Array.isArray(input.cases) && input.cases.every((elem: any) => \"object\" === typeof elem && null !== elem && _io14(elem)) && \"enum\" === input.type && \"string\" === typeof input.name; const _io14 = (input: any): boolean => \"string\" === typeof input.name && (undefined === input.nameByLocale || \"object\" === typeof input.nameByLocale && null !== input.nameByLocale && false === Array.isArray(input.nameByLocale) && _io15(input.nameByLocale)); const _io15 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && _iu1(value);\n    }); const _io16 = (input: any): boolean => \"set\" === input.action && \"string\" === typeof input.value && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io17 = (input: any): boolean => \"clear\" === input.action; const _io18 = (input: any): boolean => \"ignore\" === input.action && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io19 = (input: any): boolean => \"divider\" === input.type && \"string\" === typeof input.name; const _io20 = (input: any): boolean => \"boolean\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name); const _io21 = (input: any): boolean => \"color\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name); const _io22 = (input: any): boolean => \"number\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name); const _io23 = (input: any): boolean => \"string\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.required || \"boolean\" === typeof input.required); const _io24 = (input: any): boolean => \"formattedText\" === input.type && (undefined === input.contentType || \"auto\" === input.contentType || \"markdown\" === input.contentType || \"html\" === input.contentType) && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.required || \"boolean\" === typeof input.required); const _io25 = (input: any): boolean => \"image\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.required || \"boolean\" === typeof input.required); const _io26 = (input: any): boolean => \"link\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.required || \"boolean\" === typeof input.required); const _io27 = (input: any): boolean => \"date\" === input.type && (undefined === input.displayTime || \"boolean\" === typeof input.displayTime) && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.required || \"boolean\" === typeof input.required); const _io28 = (input: any): boolean => \"file\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.allowedFileTypes || Array.isArray(input.allowedFileTypes) && input.allowedFileTypes.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.required || \"boolean\" === typeof input.required); const _io29 = (input: any): boolean => \"enum\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name); const _io30 = (input: any): boolean => \"collectionReference\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.required || \"boolean\" === typeof input.required); const _io31 = (input: any): boolean => \"multiCollectionReference\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.required || \"boolean\" === typeof input.required); const _io32 = (input: any): boolean => \"divider\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name); const _io33 = (input: any): boolean => \"unsupported\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name); const _io34 = (input: any): boolean => (undefined === input.fields || Array.isArray(input.fields) && (input.fields.length === 1 && (\"object\" === typeof input.fields[0] && null !== input.fields[0] && _io35(input.fields[0])))) && \"array\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.required || \"boolean\" === typeof input.required); const _io35 = (input: any): boolean => \"image\" === input.type && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required); const _iu0 = (input: any): any => (() => {\n        if (undefined !== input.cases)\n            return _io13(input);\n        else if (\"unsupported\" === input.type)\n            return _io33(input);\n        else\n            return (() => {\n                if (\"enum\" === input.type)\n                    return _io29(input);\n                else\n                    return (() => {\n                        if (_io2(input))\n                            return _io2(input);\n                        if (_io1(input))\n                            return _io1(input);\n                        if (_io0(input))\n                            return _io0(input);\n                        if (_io6(input))\n                            return _io6(input);\n                        if (_io3(input))\n                            return _io3(input);\n                        if (_io4(input))\n                            return _io4(input);\n                        if (_io5(input))\n                            return _io5(input);\n                        if (_io7(input))\n                            return _io7(input);\n                        if (_io8(input))\n                            return _io8(input);\n                        if (_io10(input))\n                            return _io10(input);\n                        if (_io9(input))\n                            return _io9(input);\n                        if (_io11(input))\n                            return _io11(input);\n                        if (_io19(input))\n                            return _io19(input);\n                        if (_io22(input))\n                            return _io22(input);\n                        if (_io21(input))\n                            return _io21(input);\n                        if (_io20(input))\n                            return _io20(input);\n                        if (_io31(input))\n                            return _io31(input);\n                        if (_io30(input))\n                            return _io30(input);\n                        if (_io26(input))\n                            return _io26(input);\n                        if (_io25(input))\n                            return _io25(input);\n                        if (_io23(input))\n                            return _io23(input);\n                        if (_io24(input))\n                            return _io24(input);\n                        if (_io27(input))\n                            return _io27(input);\n                        if (_io28(input))\n                            return _io28(input);\n                        if (_io32(input))\n                            return _io32(input);\n                        if (_io34(input))\n                            return _io34(input);\n                        return false;\n                    })();\n            })();\n    })(); const _iu1 = (input: any): any => (() => {\n        if (\"set\" === input.action)\n            return _io16(input);\n        else if (\"clear\" === input.action)\n            return _io17(input);\n        else if (\"ignore\" === input.action)\n            return _io18(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"boolean\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"boolean\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"color\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"color\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"number\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"number\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)); const _ao3 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"string\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao4 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"formattedText\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"formattedText\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.contentType || \"auto\" === input.contentType || \"markdown\" === input.contentType || \"html\" === input.contentType || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".contentType\",\n        expected: \"(\\\"auto\\\" | \\\"html\\\" | \\\"markdown\\\" | undefined)\",\n        value: input.contentType\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao5 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"image\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"image\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao6 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"link\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"link\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao7 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"date\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"date\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.displayTime || \"boolean\" === typeof input.displayTime || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".displayTime\",\n        expected: \"(boolean | undefined)\",\n        value: input.displayTime\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao8 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"file\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"file\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && ((Array.isArray(input.allowedFileTypes) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes\",\n        expected: \"Array<string>\",\n        value: input.allowedFileTypes\n    }, _errorFactory)) && input.allowedFileTypes.every((elem: any, _index6: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes[\" + _index6 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes\",\n        expected: \"Array<string>\",\n        value: input.allowedFileTypes\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao9 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"collectionReference\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"collectionReference\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (\"string\" === typeof input.collectionId || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".collectionId\",\n        expected: \"string\",\n        value: input.collectionId\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao10 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"multiCollectionReference\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"multiCollectionReference\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (\"string\" === typeof input.collectionId || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".collectionId\",\n        expected: \"string\",\n        value: input.collectionId\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao11 = (input: any, _path: string, _exceptionable: boolean = true): boolean => ((Array.isArray(input.fields) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields\",\n        expected: \"[{ type: \\\"image\\\"; name: string; required?: boolean | undefined; }]\",\n        value: input.fields\n    }, _errorFactory)) && ((input.fields.length === 1 || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields\",\n        expected: \"[__type.o12]\",\n        value: input.fields\n    }, _errorFactory)) && ((\"object\" === typeof input.fields[0] && null !== input.fields[0] || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields[0]\",\n        expected: \"__type.o12\",\n        value: input.fields[0]\n    }, _errorFactory)) && _ao12(input.fields[0], _path + \".fields[0]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields[0]\",\n        expected: \"__type.o12\",\n        value: input.fields[0]\n    }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields\",\n        expected: \"[{ type: \\\"image\\\"; name: string; required?: boolean | undefined; }]\",\n        value: input.fields\n    }, _errorFactory)) && (\"array\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"array\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao12 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"image\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"image\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao13 = (input: any, _path: string, _exceptionable: boolean = true): boolean => ((Array.isArray(input.cases) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cases\",\n        expected: \"Array<__type>\",\n        value: input.cases\n    }, _errorFactory)) && input.cases.every((elem: any, _index7: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cases[\" + _index7 + \"]\",\n        expected: \"__type.o14\",\n        value: elem\n    }, _errorFactory)) && _ao14(elem, _path + \".cases[\" + _index7 + \"]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cases[\" + _index7 + \"]\",\n        expected: \"__type.o14\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cases\",\n        expected: \"Array<__type>\",\n        value: input.cases\n    }, _errorFactory)) && (\"enum\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"enum\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)); const _ao14 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.nameByLocale || (\"object\" === typeof input.nameByLocale && null !== input.nameByLocale && false === Array.isArray(input.nameByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".nameByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.nameByLocale\n    }, _errorFactory)) && _ao15(input.nameByLocale, _path + \".nameByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".nameByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.nameByLocale\n    }, _errorFactory)); const _ao15 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type.o15 | __type.o16 | __type.o17)\",\n            value: value\n        }, _errorFactory)) && _au1(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type.o15 | __type.o16 | __type.o17)\",\n            value: value\n        }, _errorFactory);\n    }); const _ao16 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"set\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"set\\\"\",\n        value: input.action\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao17 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"clear\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"clear\\\"\",\n        value: input.action\n    }, _errorFactory); const _ao18 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"ignore\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"ignore\\\"\",\n        value: input.action\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao19 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"divider\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"divider\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)); const _ao20 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"boolean\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"boolean\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao21 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"color\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"color\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao22 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"number\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"number\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao23 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"string\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao24 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"formattedText\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"formattedText\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.contentType || \"auto\" === input.contentType || \"markdown\" === input.contentType || \"html\" === input.contentType || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".contentType\",\n        expected: \"(\\\"auto\\\" | \\\"html\\\" | \\\"markdown\\\" | undefined)\",\n        value: input.contentType\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao25 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"image\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"image\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao26 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"link\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"link\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao27 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"date\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"date\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.displayTime || \"boolean\" === typeof input.displayTime || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".displayTime\",\n        expected: \"(boolean | undefined)\",\n        value: input.displayTime\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao28 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"file\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"file\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.allowedFileTypes || (Array.isArray(input.allowedFileTypes) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.allowedFileTypes\n    }, _errorFactory)) && input.allowedFileTypes.every((elem: any, _index8: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes[\" + _index8 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.allowedFileTypes\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao29 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"enum\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"enum\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao30 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"collectionReference\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"collectionReference\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao31 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"multiCollectionReference\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"multiCollectionReference\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao32 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"divider\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"divider\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao33 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"unsupported\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"unsupported\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao34 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.fields || (Array.isArray(input.fields) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields\",\n        expected: \"([CreateArrayItemField] | undefined)\",\n        value: input.fields\n    }, _errorFactory)) && ((input.fields.length === 1 || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields\",\n        expected: \"[CreateArrayItemField]\",\n        value: input.fields\n    }, _errorFactory)) && ((\"object\" === typeof input.fields[0] && null !== input.fields[0] || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields[0]\",\n        expected: \"CreateArrayItemField\",\n        value: input.fields[0]\n    }, _errorFactory)) && _ao35(input.fields[0], _path + \".fields[0]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields[0]\",\n        expected: \"CreateArrayItemField\",\n        value: input.fields[0]\n    }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields\",\n        expected: \"([CreateArrayItemField] | undefined)\",\n        value: input.fields\n    }, _errorFactory)) && (\"array\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"array\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao35 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"image\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"image\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (undefined !== input.cases)\n            return _ao13(input, _path, true && _exceptionable);\n        else if (\"unsupported\" === input.type)\n            return _ao33(input, _path, true && _exceptionable);\n        else\n            return (() => {\n                if (\"enum\" === input.type)\n                    return _ao29(input, _path, true && _exceptionable);\n                else\n                    return _ao2(input, _path, false && _exceptionable) || _ao1(input, _path, false && _exceptionable) || _ao0(input, _path, false && _exceptionable) || _ao6(input, _path, false && _exceptionable) || _ao3(input, _path, false && _exceptionable) || _ao4(input, _path, false && _exceptionable) || _ao5(input, _path, false && _exceptionable) || _ao7(input, _path, false && _exceptionable) || _ao8(input, _path, false && _exceptionable) || _ao10(input, _path, false && _exceptionable) || _ao9(input, _path, false && _exceptionable) || _ao11(input, _path, false && _exceptionable) || _ao19(input, _path, false && _exceptionable) || _ao22(input, _path, false && _exceptionable) || _ao21(input, _path, false && _exceptionable) || _ao20(input, _path, false && _exceptionable) || _ao31(input, _path, false && _exceptionable) || _ao30(input, _path, false && _exceptionable) || _ao26(input, _path, false && _exceptionable) || _ao25(input, _path, false && _exceptionable) || _ao23(input, _path, false && _exceptionable) || _ao24(input, _path, false && _exceptionable) || _ao27(input, _path, false && _exceptionable) || _ao28(input, _path, false && _exceptionable) || _ao32(input, _path, false && _exceptionable) || _ao34(input, _path, false && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                        method: \"typia.createAssert\",\n                        path: _path,\n                        expected: \"(__type.o2 | __type.o1 | __type | __type.o6 | __type.o3 | __type.o4 | __type.o5 | __type.o7 | __type.o8 | __type.o10 | __type.o9 | __type.o11 | __type.o18 | __type.o21 | __type.o20 | __type.o19 | __type.o30 | __type.o29 | __type.o25 | __type.o24 | __type.o22 | __type.o23 | __type.o26 | __type.o27 | __type.o31 | __type.o33)\",\n                        value: input\n                    }, _errorFactory);\n            })();\n    })(); const _au1 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"set\" === input.action)\n            return _ao16(input, _path, true && _exceptionable);\n        else if (\"clear\" === input.action)\n            return _ao17(input, _path, true && _exceptionable);\n        else if (\"ignore\" === input.action)\n            return _ao18(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(__type.o15 | __type.o16 | __type.o17)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"addCollectionFields\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (Array.isArray(input[1]) && input[1].every((elem: any) => \"object\" === typeof elem && null !== elem && _iu0(elem)))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addCollectionFields\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, fields: FieldInput[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Array<FieldInput>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<FieldInput>\",\n                value: input[1]\n            }, _errorFactory)) && input[1].every((elem: any, _index5: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index5 + \"]\",\n                expected: \"(__type | __type.o1 | __type.o10 | __type.o11 | __type.o13 | __type.o18 | __type.o19 | __type.o2 | __type.o20 | __type.o21 | __type.o22 | __type.o23 | __type.o24 | __type.o25 | __type.o26 | __type.o27 | __type.o28 | __type.o29 | __type.o3 | __type.o30 | __type.o31 | __type.o32 | __type.o33 | __type.o4 | __type.o5 | __type.o6 | __type.o7 | __type.o8 | __type.o9)\",\n                value: elem\n            }, _errorFactory)) && _au0(elem, _path + \"[1][\" + _index5 + \"]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index5 + \"]\",\n                expected: \"(__type | __type.o1 | __type.o10 | __type.o11 | __type.o13 | __type.o18 | __type.o19 | __type.o2 | __type.o20 | __type.o21 | __type.o22 | __type.o23 | __type.o24 | __type.o25 | __type.o26 | __type.o27 | __type.o28 | __type.o29 | __type.o3 | __type.o30 | __type.o31 | __type.o32 | __type.o33 | __type.o4 | __type.o5 | __type.o6 | __type.o7 | __type.o8 | __type.o9)\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<FieldInput>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, fields: FieldInput[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    addCollectionFields2: (() => { const _io0 = (input: any): boolean => \"boolean\" === input.type && \"string\" === typeof input.name; const _io1 = (input: any): boolean => \"color\" === input.type && \"string\" === typeof input.name; const _io2 = (input: any): boolean => \"number\" === input.type && \"string\" === typeof input.name; const _io3 = (input: any): boolean => \"string\" === input.type && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required); const _io4 = (input: any): boolean => \"formattedText\" === input.type && (undefined === input.contentType || \"auto\" === input.contentType || \"markdown\" === input.contentType || \"html\" === input.contentType) && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required); const _io5 = (input: any): boolean => \"image\" === input.type && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required); const _io6 = (input: any): boolean => \"link\" === input.type && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required); const _io7 = (input: any): boolean => \"date\" === input.type && (undefined === input.displayTime || \"boolean\" === typeof input.displayTime) && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required); const _io8 = (input: any): boolean => \"file\" === input.type && \"string\" === typeof input.name && (Array.isArray(input.allowedFileTypes) && input.allowedFileTypes.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.required || \"boolean\" === typeof input.required); const _io9 = (input: any): boolean => \"collectionReference\" === input.type && \"string\" === typeof input.name && \"string\" === typeof input.collectionId && (undefined === input.required || \"boolean\" === typeof input.required); const _io10 = (input: any): boolean => \"multiCollectionReference\" === input.type && \"string\" === typeof input.name && \"string\" === typeof input.collectionId && (undefined === input.required || \"boolean\" === typeof input.required); const _io11 = (input: any): boolean => Array.isArray(input.fields) && (input.fields.length === 1 && (\"object\" === typeof input.fields[0] && null !== input.fields[0] && _io12(input.fields[0]))) && \"array\" === input.type && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required); const _io12 = (input: any): boolean => \"image\" === input.type && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required); const _io13 = (input: any): boolean => Array.isArray(input.cases) && input.cases.every((elem: any) => \"object\" === typeof elem && null !== elem && _io14(elem)) && \"enum\" === input.type && \"string\" === typeof input.name; const _io14 = (input: any): boolean => \"string\" === typeof input.name && (undefined === input.nameByLocale || \"object\" === typeof input.nameByLocale && null !== input.nameByLocale && false === Array.isArray(input.nameByLocale) && _io15(input.nameByLocale)); const _io15 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && _iu1(value);\n    }); const _io16 = (input: any): boolean => \"set\" === input.action && \"string\" === typeof input.value && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io17 = (input: any): boolean => \"clear\" === input.action; const _io18 = (input: any): boolean => \"ignore\" === input.action && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io19 = (input: any): boolean => \"divider\" === input.type && \"string\" === typeof input.name; const _io20 = (input: any): boolean => \"boolean\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name); const _io21 = (input: any): boolean => \"color\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name); const _io22 = (input: any): boolean => \"number\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name); const _io23 = (input: any): boolean => \"string\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.required || \"boolean\" === typeof input.required); const _io24 = (input: any): boolean => \"formattedText\" === input.type && (undefined === input.contentType || \"auto\" === input.contentType || \"markdown\" === input.contentType || \"html\" === input.contentType) && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.required || \"boolean\" === typeof input.required); const _io25 = (input: any): boolean => \"image\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.required || \"boolean\" === typeof input.required); const _io26 = (input: any): boolean => \"link\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.required || \"boolean\" === typeof input.required); const _io27 = (input: any): boolean => \"date\" === input.type && (undefined === input.displayTime || \"boolean\" === typeof input.displayTime) && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.required || \"boolean\" === typeof input.required); const _io28 = (input: any): boolean => \"file\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.allowedFileTypes || Array.isArray(input.allowedFileTypes) && input.allowedFileTypes.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.required || \"boolean\" === typeof input.required); const _io29 = (input: any): boolean => \"enum\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name); const _io30 = (input: any): boolean => \"collectionReference\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.required || \"boolean\" === typeof input.required); const _io31 = (input: any): boolean => \"multiCollectionReference\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.required || \"boolean\" === typeof input.required); const _io32 = (input: any): boolean => \"divider\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name); const _io33 = (input: any): boolean => \"unsupported\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name); const _io34 = (input: any): boolean => (undefined === input.fields || Array.isArray(input.fields) && (input.fields.length === 1 && (\"object\" === typeof input.fields[0] && null !== input.fields[0] && _io35(input.fields[0])))) && \"array\" === input.type && \"string\" === typeof input.id && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.required || \"boolean\" === typeof input.required); const _io35 = (input: any): boolean => \"image\" === input.type && \"string\" === typeof input.name && (undefined === input.required || \"boolean\" === typeof input.required); const _iu0 = (input: any): any => (() => {\n        if (undefined !== input.cases)\n            return _io13(input);\n        else if (\"unsupported\" === input.type)\n            return _io33(input);\n        else\n            return (() => {\n                if (\"enum\" === input.type)\n                    return _io29(input);\n                else\n                    return (() => {\n                        if (_io2(input))\n                            return _io2(input);\n                        if (_io1(input))\n                            return _io1(input);\n                        if (_io0(input))\n                            return _io0(input);\n                        if (_io6(input))\n                            return _io6(input);\n                        if (_io3(input))\n                            return _io3(input);\n                        if (_io4(input))\n                            return _io4(input);\n                        if (_io5(input))\n                            return _io5(input);\n                        if (_io7(input))\n                            return _io7(input);\n                        if (_io8(input))\n                            return _io8(input);\n                        if (_io10(input))\n                            return _io10(input);\n                        if (_io9(input))\n                            return _io9(input);\n                        if (_io11(input))\n                            return _io11(input);\n                        if (_io19(input))\n                            return _io19(input);\n                        if (_io22(input))\n                            return _io22(input);\n                        if (_io21(input))\n                            return _io21(input);\n                        if (_io20(input))\n                            return _io20(input);\n                        if (_io31(input))\n                            return _io31(input);\n                        if (_io30(input))\n                            return _io30(input);\n                        if (_io26(input))\n                            return _io26(input);\n                        if (_io25(input))\n                            return _io25(input);\n                        if (_io23(input))\n                            return _io23(input);\n                        if (_io24(input))\n                            return _io24(input);\n                        if (_io27(input))\n                            return _io27(input);\n                        if (_io28(input))\n                            return _io28(input);\n                        if (_io32(input))\n                            return _io32(input);\n                        if (_io34(input))\n                            return _io34(input);\n                        return false;\n                    })();\n            })();\n    })(); const _iu1 = (input: any): any => (() => {\n        if (\"set\" === input.action)\n            return _io16(input);\n        else if (\"clear\" === input.action)\n            return _io17(input);\n        else if (\"ignore\" === input.action)\n            return _io18(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"boolean\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"boolean\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"color\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"color\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"number\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"number\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)); const _ao3 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"string\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao4 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"formattedText\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"formattedText\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.contentType || \"auto\" === input.contentType || \"markdown\" === input.contentType || \"html\" === input.contentType || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".contentType\",\n        expected: \"(\\\"auto\\\" | \\\"html\\\" | \\\"markdown\\\" | undefined)\",\n        value: input.contentType\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao5 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"image\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"image\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao6 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"link\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"link\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao7 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"date\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"date\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.displayTime || \"boolean\" === typeof input.displayTime || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".displayTime\",\n        expected: \"(boolean | undefined)\",\n        value: input.displayTime\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao8 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"file\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"file\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && ((Array.isArray(input.allowedFileTypes) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes\",\n        expected: \"Array<string>\",\n        value: input.allowedFileTypes\n    }, _errorFactory)) && input.allowedFileTypes.every((elem: any, _index6: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes[\" + _index6 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes\",\n        expected: \"Array<string>\",\n        value: input.allowedFileTypes\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao9 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"collectionReference\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"collectionReference\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (\"string\" === typeof input.collectionId || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".collectionId\",\n        expected: \"string\",\n        value: input.collectionId\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao10 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"multiCollectionReference\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"multiCollectionReference\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (\"string\" === typeof input.collectionId || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".collectionId\",\n        expected: \"string\",\n        value: input.collectionId\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao11 = (input: any, _path: string, _exceptionable: boolean = true): boolean => ((Array.isArray(input.fields) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields\",\n        expected: \"[{ type: \\\"image\\\"; name: string; required?: boolean | undefined; }]\",\n        value: input.fields\n    }, _errorFactory)) && ((input.fields.length === 1 || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields\",\n        expected: \"[__type.o12]\",\n        value: input.fields\n    }, _errorFactory)) && ((\"object\" === typeof input.fields[0] && null !== input.fields[0] || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields[0]\",\n        expected: \"__type.o12\",\n        value: input.fields[0]\n    }, _errorFactory)) && _ao12(input.fields[0], _path + \".fields[0]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields[0]\",\n        expected: \"__type.o12\",\n        value: input.fields[0]\n    }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields\",\n        expected: \"[{ type: \\\"image\\\"; name: string; required?: boolean | undefined; }]\",\n        value: input.fields\n    }, _errorFactory)) && (\"array\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"array\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao12 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"image\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"image\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao13 = (input: any, _path: string, _exceptionable: boolean = true): boolean => ((Array.isArray(input.cases) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cases\",\n        expected: \"Array<__type>\",\n        value: input.cases\n    }, _errorFactory)) && input.cases.every((elem: any, _index7: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cases[\" + _index7 + \"]\",\n        expected: \"__type.o14\",\n        value: elem\n    }, _errorFactory)) && _ao14(elem, _path + \".cases[\" + _index7 + \"]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cases[\" + _index7 + \"]\",\n        expected: \"__type.o14\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cases\",\n        expected: \"Array<__type>\",\n        value: input.cases\n    }, _errorFactory)) && (\"enum\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"enum\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)); const _ao14 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.nameByLocale || (\"object\" === typeof input.nameByLocale && null !== input.nameByLocale && false === Array.isArray(input.nameByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".nameByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.nameByLocale\n    }, _errorFactory)) && _ao15(input.nameByLocale, _path + \".nameByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".nameByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.nameByLocale\n    }, _errorFactory)); const _ao15 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type.o15 | __type.o16 | __type.o17)\",\n            value: value\n        }, _errorFactory)) && _au1(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type.o15 | __type.o16 | __type.o17)\",\n            value: value\n        }, _errorFactory);\n    }); const _ao16 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"set\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"set\\\"\",\n        value: input.action\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao17 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"clear\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"clear\\\"\",\n        value: input.action\n    }, _errorFactory); const _ao18 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"ignore\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"ignore\\\"\",\n        value: input.action\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao19 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"divider\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"divider\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)); const _ao20 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"boolean\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"boolean\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao21 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"color\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"color\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao22 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"number\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"number\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao23 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"string\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao24 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"formattedText\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"formattedText\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.contentType || \"auto\" === input.contentType || \"markdown\" === input.contentType || \"html\" === input.contentType || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".contentType\",\n        expected: \"(\\\"auto\\\" | \\\"html\\\" | \\\"markdown\\\" | undefined)\",\n        value: input.contentType\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao25 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"image\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"image\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao26 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"link\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"link\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao27 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"date\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"date\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.displayTime || \"boolean\" === typeof input.displayTime || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".displayTime\",\n        expected: \"(boolean | undefined)\",\n        value: input.displayTime\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao28 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"file\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"file\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.allowedFileTypes || (Array.isArray(input.allowedFileTypes) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.allowedFileTypes\n    }, _errorFactory)) && input.allowedFileTypes.every((elem: any, _index8: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes[\" + _index8 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.allowedFileTypes\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao29 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"enum\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"enum\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao30 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"collectionReference\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"collectionReference\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao31 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"multiCollectionReference\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"multiCollectionReference\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao32 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"divider\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"divider\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao33 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"unsupported\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"unsupported\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao34 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.fields || (Array.isArray(input.fields) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields\",\n        expected: \"([CreateArrayItemField] | undefined)\",\n        value: input.fields\n    }, _errorFactory)) && ((input.fields.length === 1 || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields\",\n        expected: \"[CreateArrayItemField]\",\n        value: input.fields\n    }, _errorFactory)) && ((\"object\" === typeof input.fields[0] && null !== input.fields[0] || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields[0]\",\n        expected: \"CreateArrayItemField\",\n        value: input.fields[0]\n    }, _errorFactory)) && _ao35(input.fields[0], _path + \".fields[0]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields[0]\",\n        expected: \"CreateArrayItemField\",\n        value: input.fields[0]\n    }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fields\",\n        expected: \"([CreateArrayItemField] | undefined)\",\n        value: input.fields\n    }, _errorFactory)) && (\"array\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"array\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _ao35 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"image\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"image\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.required || \"boolean\" === typeof input.required || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".required\",\n        expected: \"(boolean | undefined)\",\n        value: input.required\n    }, _errorFactory)); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (undefined !== input.cases)\n            return _ao13(input, _path, true && _exceptionable);\n        else if (\"unsupported\" === input.type)\n            return _ao33(input, _path, true && _exceptionable);\n        else\n            return (() => {\n                if (\"enum\" === input.type)\n                    return _ao29(input, _path, true && _exceptionable);\n                else\n                    return _ao2(input, _path, false && _exceptionable) || _ao1(input, _path, false && _exceptionable) || _ao0(input, _path, false && _exceptionable) || _ao6(input, _path, false && _exceptionable) || _ao3(input, _path, false && _exceptionable) || _ao4(input, _path, false && _exceptionable) || _ao5(input, _path, false && _exceptionable) || _ao7(input, _path, false && _exceptionable) || _ao8(input, _path, false && _exceptionable) || _ao10(input, _path, false && _exceptionable) || _ao9(input, _path, false && _exceptionable) || _ao11(input, _path, false && _exceptionable) || _ao19(input, _path, false && _exceptionable) || _ao22(input, _path, false && _exceptionable) || _ao21(input, _path, false && _exceptionable) || _ao20(input, _path, false && _exceptionable) || _ao31(input, _path, false && _exceptionable) || _ao30(input, _path, false && _exceptionable) || _ao26(input, _path, false && _exceptionable) || _ao25(input, _path, false && _exceptionable) || _ao23(input, _path, false && _exceptionable) || _ao24(input, _path, false && _exceptionable) || _ao27(input, _path, false && _exceptionable) || _ao28(input, _path, false && _exceptionable) || _ao32(input, _path, false && _exceptionable) || _ao34(input, _path, false && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                        method: \"typia.createAssert\",\n                        path: _path,\n                        expected: \"(__type.o2 | __type.o1 | __type | __type.o6 | __type.o3 | __type.o4 | __type.o5 | __type.o7 | __type.o8 | __type.o10 | __type.o9 | __type.o11 | __type.o18 | __type.o21 | __type.o20 | __type.o19 | __type.o30 | __type.o29 | __type.o25 | __type.o24 | __type.o22 | __type.o23 | __type.o26 | __type.o27 | __type.o31 | __type.o33)\",\n                        value: input\n                    }, _errorFactory);\n            })();\n    })(); const _au1 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"set\" === input.action)\n            return _ao16(input, _path, true && _exceptionable);\n        else if (\"clear\" === input.action)\n            return _ao17(input, _path, true && _exceptionable);\n        else if (\"ignore\" === input.action)\n            return _ao18(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(__type.o15 | __type.o16 | __type.o17)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"addCollectionFields2\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (Array.isArray(input[1]) && input[1].every((elem: any) => \"object\" === typeof elem && null !== elem && _iu0(elem)))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addCollectionFields2\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, fields: FieldInput[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Array<FieldInput>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<FieldInput>\",\n                value: input[1]\n            }, _errorFactory)) && input[1].every((elem: any, _index5: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index5 + \"]\",\n                expected: \"(__type | __type.o1 | __type.o10 | __type.o11 | __type.o13 | __type.o18 | __type.o19 | __type.o2 | __type.o20 | __type.o21 | __type.o22 | __type.o23 | __type.o24 | __type.o25 | __type.o26 | __type.o27 | __type.o28 | __type.o29 | __type.o3 | __type.o30 | __type.o31 | __type.o32 | __type.o33 | __type.o4 | __type.o5 | __type.o6 | __type.o7 | __type.o8 | __type.o9)\",\n                value: elem\n            }, _errorFactory)) && _au0(elem, _path + \"[1][\" + _index5 + \"]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index5 + \"]\",\n                expected: \"(__type | __type.o1 | __type.o10 | __type.o11 | __type.o13 | __type.o18 | __type.o19 | __type.o2 | __type.o20 | __type.o21 | __type.o22 | __type.o23 | __type.o24 | __type.o25 | __type.o26 | __type.o27 | __type.o28 | __type.o29 | __type.o3 | __type.o30 | __type.o31 | __type.o32 | __type.o33 | __type.o4 | __type.o5 | __type.o6 | __type.o7 | __type.o8 | __type.o9)\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<FieldInput>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, fields: FieldInput[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    removeCollectionFields: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"removeCollectionFields\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (Array.isArray(input[1]) && input[1].every((elem: any) => \"string\" === typeof elem))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"removeCollectionFields\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, fieldIds: string[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Array<string>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<string>\",\n                value: input[1]\n            }, _errorFactory)) && input[1].every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index2 + \"]\",\n                expected: \"string\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<string>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, fieldIds: string[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setCollectionFieldOrder: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"setCollectionFieldOrder\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (Array.isArray(input[1]) && input[1].every((elem: any) => \"string\" === typeof elem))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setCollectionFieldOrder\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, fieldIds: string[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Array<string>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<string>\",\n                value: input[1]\n            }, _errorFactory)) && input[1].every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index2 + \"]\",\n                expected: \"string\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<string>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, fieldIds: string[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    addCollectionItems: (() => { const _io0 = (input: any): boolean => null !== input.id && undefined === input.id && \"string\" === typeof input.slug && (undefined === input.fieldData || \"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) && _io1(input.fieldData)) && (undefined === input.draft || \"boolean\" === typeof input.draft); const _io1 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _io2 = (input: any): boolean => \"string\" === typeof input.id && (undefined === input.slug || \"string\" === typeof input.slug) && (undefined === input.fieldData || \"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) && _io1(input.fieldData)) && (undefined === input.draft || \"boolean\" === typeof input.draft); const _iu0 = (input: any): any => (() => {\n        if (\"string\" === typeof input.id)\n            return _io2(input);\n        else\n            return _io0(input);\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (null !== input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"undefined\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"undefined\",\n        value: input.id\n    }, _errorFactory)) && (\"string\" === typeof input.slug || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".slug\",\n        expected: \"string\",\n        value: input.slug\n    }, _errorFactory)) && (undefined === input.fieldData || (\"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ApiV2FieldData | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && _ao1(input.fieldData, _path + \".fieldData\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ApiV2FieldData | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && (undefined === input.draft || \"boolean\" === typeof input.draft || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".draft\",\n        expected: \"(boolean | undefined)\",\n        value: input.draft\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.slug || \"string\" === typeof input.slug || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".slug\",\n        expected: \"(string | undefined)\",\n        value: input.slug\n    }, _errorFactory)) && (undefined === input.fieldData || (\"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ApiV2FieldData | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && _ao1(input.fieldData, _path + \".fieldData\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ApiV2FieldData | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && (undefined === input.draft || \"boolean\" === typeof input.draft || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".draft\",\n        expected: \"(boolean | undefined)\",\n        value: input.draft\n    }, _errorFactory)); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"string\" === typeof input.id)\n            return _ao2(input, _path, true && _exceptionable);\n        else\n            return _ao0(input, _path, true && _exceptionable);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"addCollectionItems\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (Array.isArray(input[1]) && input[1].every((elem: any) => \"object\" === typeof elem && null !== elem && _iu0(elem)))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addCollectionItems\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, items: ApiV2CollectionItemInput[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Array<ApiV2CollectionItemInput>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<ApiV2CollectionItemInput>\",\n                value: input[1]\n            }, _errorFactory)) && input[1].every((elem: any, _index2: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index2 + \"]\",\n                expected: \"(ApiV2CreateCollectionItem | ApiV2EditableCollectionItemAttributesWithId)\",\n                value: elem\n            }, _errorFactory)) && _au0(elem, _path + \"[1][\" + _index2 + \"]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index2 + \"]\",\n                expected: \"(ApiV2CreateCollectionItem | ApiV2EditableCollectionItemAttributesWithId)\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<ApiV2CollectionItemInput>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, items: ApiV2CollectionItemInput[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    addCollectionItems2: (() => { const _io0 = (input: any): boolean => null !== input.id && undefined === input.id && \"string\" === typeof input.slug && (undefined === input.slugByLocale || \"object\" === typeof input.slugByLocale && null !== input.slugByLocale && false === Array.isArray(input.slugByLocale) && _io1(input.slugByLocale)) && (undefined === input.fieldData || \"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) && _io5(input.fieldData)) && (undefined === input.statusByLocale || \"object\" === typeof input.statusByLocale && null !== input.statusByLocale && false === Array.isArray(input.statusByLocale) && _io23(input.statusByLocale)) && (undefined === input.draft || \"boolean\" === typeof input.draft); const _io1 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && _iu2(value);\n    }); const _io2 = (input: any): boolean => \"set\" === input.action && \"string\" === typeof input.value && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io3 = (input: any): boolean => \"clear\" === input.action; const _io4 = (input: any): boolean => \"ignore\" === input.action && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io5 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && _iu3(value);\n    }); const _io6 = (input: any): boolean => \"boolean\" === input.type && \"boolean\" === typeof input.value; const _io7 = (input: any): boolean => \"color\" === input.type && (undefined !== input.value && (null === input.value || \"string\" === typeof input.value || \"object\" === typeof input.value && null !== input.value && _io8(input.value))); const _io8 = (input: any): boolean => \"string\" === typeof input.id && \"string\" === typeof input.name && \"string\" === typeof input.path && \"ColorStyle\" === input.__class && \"string\" === typeof input.light && (null === input.dark || \"string\" === typeof input.dark); const _io9 = (input: any): boolean => \"date\" === input.type && (null === input.value || \"string\" === typeof input.value || \"number\" === typeof input.value); const _io10 = (input: any): boolean => \"enum\" === input.type && \"string\" === typeof input.value; const _io11 = (input: any): boolean => \"file\" === input.type && (null === input.value || \"string\" === typeof input.value); const _io12 = (input: any): boolean => \"link\" === input.type && (null === input.value || \"string\" === typeof input.value) && (undefined === input.valueByLocale || \"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) && _io1(input.valueByLocale)); const _io13 = (input: any): boolean => \"number\" === input.type && \"number\" === typeof input.value; const _io14 = (input: any): boolean => \"formattedText\" === input.type && \"string\" === typeof input.value && (undefined === input.contentType || \"auto\" === input.contentType || \"markdown\" === input.contentType || \"html\" === input.contentType) && (undefined === input.valueByLocale || \"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) && _io1(input.valueByLocale)); const _io15 = (input: any): boolean => \"string\" === input.type && \"string\" === typeof input.value && (undefined === input.valueByLocale || \"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) && _io1(input.valueByLocale)); const _io16 = (input: any): boolean => \"image\" === input.type && (null === input.value || \"string\" === typeof input.value) && (undefined === input.alt || \"string\" === typeof input.alt) && (undefined === input.altByLocale || \"object\" === typeof input.altByLocale && null !== input.altByLocale && false === Array.isArray(input.altByLocale) && _io1(input.altByLocale)); const _io17 = (input: any): boolean => \"collectionReference\" === input.type && (null === input.value || \"string\" === typeof input.value); const _io18 = (input: any): boolean => \"multiCollectionReference\" === input.type && (null === input.value || Array.isArray(input.value) && input.value.every((elem: any) => \"string\" === typeof elem)); const _io19 = (input: any): boolean => \"array\" === input.type && (Array.isArray(input.value) && input.value.every((elem: any) => \"object\" === typeof elem && null !== elem && false === Array.isArray(elem) && _iu1(elem))); const _io20 = (input: any): boolean => undefined === input.fieldData || \"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) && _io21(input.fieldData); const _io21 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && _io16(value);\n    }); const _io22 = (input: any): boolean => \"string\" === typeof input.id && (undefined === input.fieldData || \"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) && _io21(input.fieldData)); const _io23 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"excluded\" === value || \"ready\" === value;\n    }); const _io24 = (input: any): boolean => \"string\" === typeof input.id && (undefined === input.slug || \"string\" === typeof input.slug) && (undefined === input.slugByLocale || \"object\" === typeof input.slugByLocale && null !== input.slugByLocale && false === Array.isArray(input.slugByLocale) && _io1(input.slugByLocale)) && (undefined === input.fieldData || \"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) && _io5(input.fieldData)) && (undefined === input.statusByLocale || \"object\" === typeof input.statusByLocale && null !== input.statusByLocale && false === Array.isArray(input.statusByLocale) && _io25(input.statusByLocale)) && (undefined === input.draft || \"boolean\" === typeof input.draft); const _io25 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"excluded\" === value || \"ready\" === value;\n    }); const _iu0 = (input: any): any => (() => {\n        if (\"string\" === typeof input.id)\n            return _io24(input);\n        else\n            return _io0(input);\n    })(); const _iu1 = (input: any): any => (() => {\n        if (undefined !== input.id)\n            return _io22(input);\n        else\n            return _io20(input);\n    })(); const _iu2 = (input: any): any => (() => {\n        if (\"set\" === input.action)\n            return _io2(input);\n        else if (\"clear\" === input.action)\n            return _io3(input);\n        else if (\"ignore\" === input.action)\n            return _io4(input);\n        else\n            return false;\n    })(); const _iu3 = (input: any): any => (() => {\n        if (\"array\" === input.type)\n            return _io19(input);\n        else if (\"multiCollectionReference\" === input.type)\n            return _io18(input);\n        else if (\"collectionReference\" === input.type)\n            return _io17(input);\n        else if (\"number\" === input.type)\n            return _io13(input);\n        else if (\"file\" === input.type)\n            return _io11(input);\n        else if (\"enum\" === input.type)\n            return _io10(input);\n        else if (\"date\" === input.type)\n            return _io9(input);\n        else if (\"color\" === input.type)\n            return _io7(input);\n        else if (\"boolean\" === input.type)\n            return _io6(input);\n        else if (\"string\" === input.type)\n            return _io15(input);\n        else if (\"link\" === input.type)\n            return _io12(input);\n        else if (\"formattedText\" === input.type)\n            return _io14(input);\n        else if (\"image\" === input.type)\n            return _io16(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (null !== input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"undefined\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"undefined\",\n        value: input.id\n    }, _errorFactory)) && (\"string\" === typeof input.slug || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".slug\",\n        expected: \"string\",\n        value: input.slug\n    }, _errorFactory)) && (undefined === input.slugByLocale || (\"object\" === typeof input.slugByLocale && null !== input.slugByLocale && false === Array.isArray(input.slugByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".slugByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.slugByLocale\n    }, _errorFactory)) && _ao1(input.slugByLocale, _path + \".slugByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".slugByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.slugByLocale\n    }, _errorFactory)) && (undefined === input.fieldData || (\"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(FieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && _ao5(input.fieldData, _path + \".fieldData\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(FieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && (undefined === input.statusByLocale || (\"object\" === typeof input.statusByLocale && null !== input.statusByLocale && false === Array.isArray(input.statusByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".statusByLocale\",\n        expected: \"(LocalizationGroupStatusByLocale | undefined)\",\n        value: input.statusByLocale\n    }, _errorFactory)) && _ao23(input.statusByLocale, _path + \".statusByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".statusByLocale\",\n        expected: \"(LocalizationGroupStatusByLocale | undefined)\",\n        value: input.statusByLocale\n    }, _errorFactory)) && (undefined === input.draft || \"boolean\" === typeof input.draft || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".draft\",\n        expected: \"(boolean | undefined)\",\n        value: input.draft\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type | __type.o1 | __type.o2)\",\n            value: value\n        }, _errorFactory)) && _au2(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type | __type.o1 | __type.o2)\",\n            value: value\n        }, _errorFactory);\n    }); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"set\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"set\\\"\",\n        value: input.action\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao3 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"clear\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"clear\\\"\",\n        value: input.action\n    }, _errorFactory); const _ao4 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"ignore\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"ignore\\\"\",\n        value: input.action\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao5 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(ArrayFieldDataEntryInput | BooleanFieldDataEntry | CollectionReferenceFieldDataEntryInput | ColorFieldDataEntryInput | DateFieldDataEntryInput | EnumFieldDataEntryInput | FileFieldDataEntryInput | FormattedTextFieldDataEntryInput | ImageFieldDataEntryInput | LinkFieldDataEntryInput | MultiCollectionReferenceFieldDataEntryInput | NumberFieldDataEntry | StringFieldDataEntryInput)\",\n            value: value\n        }, _errorFactory)) && _au3(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(ArrayFieldDataEntryInput | BooleanFieldDataEntry | CollectionReferenceFieldDataEntryInput | ColorFieldDataEntryInput | DateFieldDataEntryInput | EnumFieldDataEntryInput | FileFieldDataEntryInput | FormattedTextFieldDataEntryInput | ImageFieldDataEntryInput | LinkFieldDataEntryInput | MultiCollectionReferenceFieldDataEntryInput | NumberFieldDataEntry | StringFieldDataEntryInput)\",\n            value: value\n        }, _errorFactory);\n    }); const _ao6 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"boolean\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"boolean\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"boolean\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"boolean\",\n        value: input.value\n    }, _errorFactory)); const _ao7 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"color\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"color\\\"\",\n        value: input.type\n    }, _errorFactory)) && ((undefined !== input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(ColorStyleData | null | string)\",\n        value: input.value\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || (\"object\" === typeof input.value && null !== input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(ColorStyleData | null | string)\",\n        value: input.value\n    }, _errorFactory)) && _ao8(input.value, _path + \".value\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(ColorStyleData | null | string)\",\n        value: input.value\n    }, _errorFactory))); const _ao8 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (\"string\" === typeof input.path || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".path\",\n        expected: \"string\",\n        value: input.path\n    }, _errorFactory)) && (\"ColorStyle\" === input.__class || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".__class\",\n        expected: \"\\\"ColorStyle\\\"\",\n        value: input.__class\n    }, _errorFactory)) && (\"string\" === typeof input.light || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".light\",\n        expected: \"string\",\n        value: input.light\n    }, _errorFactory)) && (null === input.dark || \"string\" === typeof input.dark || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".dark\",\n        expected: \"(null | string)\",\n        value: input.dark\n    }, _errorFactory)); const _ao9 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"date\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"date\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || \"number\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(null | number | string)\",\n        value: input.value\n    }, _errorFactory)); const _ao10 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"enum\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"enum\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)); const _ao11 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"file\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"file\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(null | string)\",\n        value: input.value\n    }, _errorFactory)); const _ao12 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"link\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"link\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(null | string)\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.valueByLocale || (\"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)) && _ao1(input.valueByLocale, _path + \".valueByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)); const _ao13 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"number\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"number\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"number\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"number\",\n        value: input.value\n    }, _errorFactory)); const _ao14 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"formattedText\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"formattedText\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.contentType || \"auto\" === input.contentType || \"markdown\" === input.contentType || \"html\" === input.contentType || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".contentType\",\n        expected: \"(\\\"auto\\\" | \\\"html\\\" | \\\"markdown\\\" | undefined)\",\n        value: input.contentType\n    }, _errorFactory)) && (undefined === input.valueByLocale || (\"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)) && _ao1(input.valueByLocale, _path + \".valueByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)); const _ao15 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"string\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.valueByLocale || (\"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)) && _ao1(input.valueByLocale, _path + \".valueByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)); const _ao16 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"image\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"image\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(null | string)\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.alt || \"string\" === typeof input.alt || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".alt\",\n        expected: \"(string | undefined)\",\n        value: input.alt\n    }, _errorFactory)) && (undefined === input.altByLocale || (\"object\" === typeof input.altByLocale && null !== input.altByLocale && false === Array.isArray(input.altByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.altByLocale\n    }, _errorFactory)) && _ao1(input.altByLocale, _path + \".altByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.altByLocale\n    }, _errorFactory)); const _ao17 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"collectionReference\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"collectionReference\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(null | string)\",\n        value: input.value\n    }, _errorFactory)); const _ao18 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"multiCollectionReference\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"multiCollectionReference\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || (Array.isArray(input.value) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(ReadonlyArray<string> | null)\",\n        value: input.value\n    }, _errorFactory)) && input.value.every((elem: any, _index5: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value[\" + _index5 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(ReadonlyArray<string> | null)\",\n        value: input.value\n    }, _errorFactory)); const _ao19 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"array\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"array\\\"\",\n        value: input.type\n    }, _errorFactory)) && ((Array.isArray(input.value) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"Array<ArrayItemInput>\",\n        value: input.value\n    }, _errorFactory)) && input.value.every((elem: any, _index6: number) => (\"object\" === typeof elem && null !== elem && false === Array.isArray(elem) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value[\" + _index6 + \"]\",\n        expected: \"(CreateArrayItem | UpdateArrayItem)\",\n        value: elem\n    }, _errorFactory)) && _au1(elem, _path + \".value[\" + _index6 + \"]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value[\" + _index6 + \"]\",\n        expected: \"(CreateArrayItem | UpdateArrayItem)\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"Array<ArrayItemInput>\",\n        value: input.value\n    }, _errorFactory)); const _ao20 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.fieldData || (\"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ArrayItemFieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && _ao21(input.fieldData, _path + \".fieldData\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ArrayItemFieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory); const _ao21 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"ImageFieldDataEntryInput\",\n            value: value\n        }, _errorFactory)) && _ao16(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"ImageFieldDataEntryInput\",\n            value: value\n        }, _errorFactory);\n    }); const _ao22 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.fieldData || (\"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ArrayItemFieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && _ao21(input.fieldData, _path + \".fieldData\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ArrayItemFieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)); const _ao23 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"excluded\" === value || \"ready\" === value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(\\\"excluded\\\" | \\\"ready\\\")\",\n            value: value\n        }, _errorFactory);\n    }); const _ao24 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.slug || \"string\" === typeof input.slug || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".slug\",\n        expected: \"(string | undefined)\",\n        value: input.slug\n    }, _errorFactory)) && (undefined === input.slugByLocale || (\"object\" === typeof input.slugByLocale && null !== input.slugByLocale && false === Array.isArray(input.slugByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".slugByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.slugByLocale\n    }, _errorFactory)) && _ao1(input.slugByLocale, _path + \".slugByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".slugByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.slugByLocale\n    }, _errorFactory)) && (undefined === input.fieldData || (\"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(FieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && _ao5(input.fieldData, _path + \".fieldData\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(FieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && (undefined === input.statusByLocale || (\"object\" === typeof input.statusByLocale && null !== input.statusByLocale && false === Array.isArray(input.statusByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".statusByLocale\",\n        expected: \"(Record<string, LocalizationGroupStatus> | undefined)\",\n        value: input.statusByLocale\n    }, _errorFactory)) && _ao25(input.statusByLocale, _path + \".statusByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".statusByLocale\",\n        expected: \"(Record<string, LocalizationGroupStatus> | undefined)\",\n        value: input.statusByLocale\n    }, _errorFactory)) && (undefined === input.draft || \"boolean\" === typeof input.draft || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".draft\",\n        expected: \"(boolean | undefined)\",\n        value: input.draft\n    }, _errorFactory)); const _ao25 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"excluded\" === value || \"ready\" === value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(\\\"excluded\\\" | \\\"ready\\\")\",\n            value: value\n        }, _errorFactory);\n    }); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"string\" === typeof input.id)\n            return _ao24(input, _path, true && _exceptionable);\n        else\n            return _ao0(input, _path, true && _exceptionable);\n    })(); const _au1 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (undefined !== input.id)\n            return _ao22(input, _path, true && _exceptionable);\n        else\n            return _ao20(input, _path, true && _exceptionable);\n    })(); const _au2 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"set\" === input.action)\n            return _ao2(input, _path, true && _exceptionable);\n        else if (\"clear\" === input.action)\n            return _ao3(input, _path, true && _exceptionable);\n        else if (\"ignore\" === input.action)\n            return _ao4(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(__type | __type.o1 | __type.o2)\",\n                value: input\n            }, _errorFactory);\n    })(); const _au3 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"array\" === input.type)\n            return _ao19(input, _path, true && _exceptionable);\n        else if (\"multiCollectionReference\" === input.type)\n            return _ao18(input, _path, true && _exceptionable);\n        else if (\"collectionReference\" === input.type)\n            return _ao17(input, _path, true && _exceptionable);\n        else if (\"number\" === input.type)\n            return _ao13(input, _path, true && _exceptionable);\n        else if (\"file\" === input.type)\n            return _ao11(input, _path, true && _exceptionable);\n        else if (\"enum\" === input.type)\n            return _ao10(input, _path, true && _exceptionable);\n        else if (\"date\" === input.type)\n            return _ao9(input, _path, true && _exceptionable);\n        else if (\"color\" === input.type)\n            return _ao7(input, _path, true && _exceptionable);\n        else if (\"boolean\" === input.type)\n            return _ao6(input, _path, true && _exceptionable);\n        else if (\"string\" === input.type)\n            return _ao15(input, _path, true && _exceptionable);\n        else if (\"link\" === input.type)\n            return _ao12(input, _path, true && _exceptionable);\n        else if (\"formattedText\" === input.type)\n            return _ao14(input, _path, true && _exceptionable);\n        else if (\"image\" === input.type)\n            return _ao16(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(ArrayFieldDataEntryInput | MultiCollectionReferenceFieldDataEntryInput | CollectionReferenceFieldDataEntryInput | NumberFieldDataEntry | FileFieldDataEntryInput | EnumFieldDataEntryInput | DateFieldDataEntryInput | ColorFieldDataEntryInput | BooleanFieldDataEntry | StringFieldDataEntryInput | LinkFieldDataEntryInput | FormattedTextFieldDataEntryInput | ImageFieldDataEntryInput)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"addCollectionItems2\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (Array.isArray(input[1]) && input[1].every((elem: any) => \"object\" === typeof elem && null !== elem && _iu0(elem)))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addCollectionItems2\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, items: CollectionItemInput[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Array<CollectionItemInput>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<CollectionItemInput>\",\n                value: input[1]\n            }, _errorFactory)) && input[1].every((elem: any, _index4: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index4 + \"]\",\n                expected: \"(CreateCollectionItem | EditableCollectionItemAttributesWithId)\",\n                value: elem\n            }, _errorFactory)) && _au0(elem, _path + \"[1][\" + _index4 + \"]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index4 + \"]\",\n                expected: \"(CreateCollectionItem | EditableCollectionItemAttributesWithId)\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<CollectionItemInput>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, items: CollectionItemInput[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setCollectionItemAttributes: (() => { const _io0 = (input: any): boolean => (undefined === input.slug || \"string\" === typeof input.slug) && (undefined === input.fieldData || \"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) && _io1(input.fieldData)) && (undefined === input.draft || \"boolean\" === typeof input.draft); const _io1 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.slug || \"string\" === typeof input.slug || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".slug\",\n        expected: \"(string | undefined)\",\n        value: input.slug\n    }, _errorFactory)) && (undefined === input.fieldData || (\"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ApiV2FieldData | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && _ao1(input.fieldData, _path + \".fieldData\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ApiV2FieldData | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && (undefined === input.draft || \"boolean\" === typeof input.draft || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".draft\",\n        expected: \"(boolean | undefined)\",\n        value: input.draft\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const __is = (input: any): input is Parameters<PluginMessageAPI[\"setCollectionItemAttributes\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setCollectionItemAttributes\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, attributes: ApiV2EditableCollectionItemAttributes]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, ApiV2EditableCollectionItemAttributes]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"ApiV2EditableCollectionItemAttributes\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"ApiV2EditableCollectionItemAttributes\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, attributes: ApiV2EditableCollectionItemAttributes]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setCollectionItemAttributes2: (() => { const _io0 = (input: any): boolean => (undefined === input.slug || \"string\" === typeof input.slug) && (undefined === input.slugByLocale || \"object\" === typeof input.slugByLocale && null !== input.slugByLocale && false === Array.isArray(input.slugByLocale) && _io1(input.slugByLocale)) && (undefined === input.fieldData || \"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) && _io5(input.fieldData)) && (undefined === input.statusByLocale || \"object\" === typeof input.statusByLocale && null !== input.statusByLocale && false === Array.isArray(input.statusByLocale) && _io23(input.statusByLocale)) && (undefined === input.draft || \"boolean\" === typeof input.draft); const _io1 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && _iu1(value);\n    }); const _io2 = (input: any): boolean => \"set\" === input.action && \"string\" === typeof input.value && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io3 = (input: any): boolean => \"clear\" === input.action; const _io4 = (input: any): boolean => \"ignore\" === input.action && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io5 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && _iu2(value);\n    }); const _io6 = (input: any): boolean => \"boolean\" === input.type && \"boolean\" === typeof input.value; const _io7 = (input: any): boolean => \"color\" === input.type && (undefined !== input.value && (null === input.value || \"string\" === typeof input.value || \"object\" === typeof input.value && null !== input.value && _io8(input.value))); const _io8 = (input: any): boolean => \"string\" === typeof input.id && \"string\" === typeof input.name && \"string\" === typeof input.path && \"ColorStyle\" === input.__class && \"string\" === typeof input.light && (null === input.dark || \"string\" === typeof input.dark); const _io9 = (input: any): boolean => \"date\" === input.type && (null === input.value || \"string\" === typeof input.value || \"number\" === typeof input.value); const _io10 = (input: any): boolean => \"enum\" === input.type && \"string\" === typeof input.value; const _io11 = (input: any): boolean => \"file\" === input.type && (null === input.value || \"string\" === typeof input.value); const _io12 = (input: any): boolean => \"link\" === input.type && (null === input.value || \"string\" === typeof input.value) && (undefined === input.valueByLocale || \"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) && _io1(input.valueByLocale)); const _io13 = (input: any): boolean => \"number\" === input.type && \"number\" === typeof input.value; const _io14 = (input: any): boolean => \"formattedText\" === input.type && \"string\" === typeof input.value && (undefined === input.contentType || \"auto\" === input.contentType || \"markdown\" === input.contentType || \"html\" === input.contentType) && (undefined === input.valueByLocale || \"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) && _io1(input.valueByLocale)); const _io15 = (input: any): boolean => \"string\" === input.type && \"string\" === typeof input.value && (undefined === input.valueByLocale || \"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) && _io1(input.valueByLocale)); const _io16 = (input: any): boolean => \"image\" === input.type && (null === input.value || \"string\" === typeof input.value) && (undefined === input.alt || \"string\" === typeof input.alt) && (undefined === input.altByLocale || \"object\" === typeof input.altByLocale && null !== input.altByLocale && false === Array.isArray(input.altByLocale) && _io1(input.altByLocale)); const _io17 = (input: any): boolean => \"collectionReference\" === input.type && (null === input.value || \"string\" === typeof input.value); const _io18 = (input: any): boolean => \"multiCollectionReference\" === input.type && (null === input.value || Array.isArray(input.value) && input.value.every((elem: any) => \"string\" === typeof elem)); const _io19 = (input: any): boolean => \"array\" === input.type && (Array.isArray(input.value) && input.value.every((elem: any) => \"object\" === typeof elem && null !== elem && false === Array.isArray(elem) && _iu0(elem))); const _io20 = (input: any): boolean => undefined === input.fieldData || \"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) && _io21(input.fieldData); const _io21 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && _io16(value);\n    }); const _io22 = (input: any): boolean => \"string\" === typeof input.id && (undefined === input.fieldData || \"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) && _io21(input.fieldData)); const _io23 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"excluded\" === value || \"ready\" === value;\n    }); const _iu0 = (input: any): any => (() => {\n        if (undefined !== input.id)\n            return _io22(input);\n        else\n            return _io20(input);\n    })(); const _iu1 = (input: any): any => (() => {\n        if (\"set\" === input.action)\n            return _io2(input);\n        else if (\"clear\" === input.action)\n            return _io3(input);\n        else if (\"ignore\" === input.action)\n            return _io4(input);\n        else\n            return false;\n    })(); const _iu2 = (input: any): any => (() => {\n        if (\"array\" === input.type)\n            return _io19(input);\n        else if (\"multiCollectionReference\" === input.type)\n            return _io18(input);\n        else if (\"collectionReference\" === input.type)\n            return _io17(input);\n        else if (\"number\" === input.type)\n            return _io13(input);\n        else if (\"file\" === input.type)\n            return _io11(input);\n        else if (\"enum\" === input.type)\n            return _io10(input);\n        else if (\"date\" === input.type)\n            return _io9(input);\n        else if (\"color\" === input.type)\n            return _io7(input);\n        else if (\"boolean\" === input.type)\n            return _io6(input);\n        else if (\"string\" === input.type)\n            return _io15(input);\n        else if (\"link\" === input.type)\n            return _io12(input);\n        else if (\"formattedText\" === input.type)\n            return _io14(input);\n        else if (\"image\" === input.type)\n            return _io16(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.slug || \"string\" === typeof input.slug || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".slug\",\n        expected: \"(string | undefined)\",\n        value: input.slug\n    }, _errorFactory)) && (undefined === input.slugByLocale || (\"object\" === typeof input.slugByLocale && null !== input.slugByLocale && false === Array.isArray(input.slugByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".slugByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.slugByLocale\n    }, _errorFactory)) && _ao1(input.slugByLocale, _path + \".slugByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".slugByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.slugByLocale\n    }, _errorFactory)) && (undefined === input.fieldData || (\"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(FieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && _ao5(input.fieldData, _path + \".fieldData\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(FieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && (undefined === input.statusByLocale || (\"object\" === typeof input.statusByLocale && null !== input.statusByLocale && false === Array.isArray(input.statusByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".statusByLocale\",\n        expected: \"(Record<string, LocalizationGroupStatus> | undefined)\",\n        value: input.statusByLocale\n    }, _errorFactory)) && _ao23(input.statusByLocale, _path + \".statusByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".statusByLocale\",\n        expected: \"(Record<string, LocalizationGroupStatus> | undefined)\",\n        value: input.statusByLocale\n    }, _errorFactory)) && (undefined === input.draft || \"boolean\" === typeof input.draft || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".draft\",\n        expected: \"(boolean | undefined)\",\n        value: input.draft\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type | __type.o1 | __type.o2)\",\n            value: value\n        }, _errorFactory)) && _au1(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type | __type.o1 | __type.o2)\",\n            value: value\n        }, _errorFactory);\n    }); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"set\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"set\\\"\",\n        value: input.action\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao3 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"clear\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"clear\\\"\",\n        value: input.action\n    }, _errorFactory); const _ao4 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"ignore\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"ignore\\\"\",\n        value: input.action\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao5 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(ArrayFieldDataEntryInput | BooleanFieldDataEntry | CollectionReferenceFieldDataEntryInput | ColorFieldDataEntryInput | DateFieldDataEntryInput | EnumFieldDataEntryInput | FileFieldDataEntryInput | FormattedTextFieldDataEntryInput | ImageFieldDataEntryInput | LinkFieldDataEntryInput | MultiCollectionReferenceFieldDataEntryInput | NumberFieldDataEntry | StringFieldDataEntryInput)\",\n            value: value\n        }, _errorFactory)) && _au2(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(ArrayFieldDataEntryInput | BooleanFieldDataEntry | CollectionReferenceFieldDataEntryInput | ColorFieldDataEntryInput | DateFieldDataEntryInput | EnumFieldDataEntryInput | FileFieldDataEntryInput | FormattedTextFieldDataEntryInput | ImageFieldDataEntryInput | LinkFieldDataEntryInput | MultiCollectionReferenceFieldDataEntryInput | NumberFieldDataEntry | StringFieldDataEntryInput)\",\n            value: value\n        }, _errorFactory);\n    }); const _ao6 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"boolean\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"boolean\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"boolean\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"boolean\",\n        value: input.value\n    }, _errorFactory)); const _ao7 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"color\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"color\\\"\",\n        value: input.type\n    }, _errorFactory)) && ((undefined !== input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(ColorStyleData | null | string)\",\n        value: input.value\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || (\"object\" === typeof input.value && null !== input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(ColorStyleData | null | string)\",\n        value: input.value\n    }, _errorFactory)) && _ao8(input.value, _path + \".value\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(ColorStyleData | null | string)\",\n        value: input.value\n    }, _errorFactory))); const _ao8 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (\"string\" === typeof input.path || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".path\",\n        expected: \"string\",\n        value: input.path\n    }, _errorFactory)) && (\"ColorStyle\" === input.__class || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".__class\",\n        expected: \"\\\"ColorStyle\\\"\",\n        value: input.__class\n    }, _errorFactory)) && (\"string\" === typeof input.light || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".light\",\n        expected: \"string\",\n        value: input.light\n    }, _errorFactory)) && (null === input.dark || \"string\" === typeof input.dark || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".dark\",\n        expected: \"(null | string)\",\n        value: input.dark\n    }, _errorFactory)); const _ao9 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"date\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"date\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || \"number\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(null | number | string)\",\n        value: input.value\n    }, _errorFactory)); const _ao10 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"enum\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"enum\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)); const _ao11 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"file\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"file\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(null | string)\",\n        value: input.value\n    }, _errorFactory)); const _ao12 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"link\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"link\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(null | string)\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.valueByLocale || (\"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)) && _ao1(input.valueByLocale, _path + \".valueByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)); const _ao13 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"number\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"number\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"number\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"number\",\n        value: input.value\n    }, _errorFactory)); const _ao14 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"formattedText\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"formattedText\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.contentType || \"auto\" === input.contentType || \"markdown\" === input.contentType || \"html\" === input.contentType || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".contentType\",\n        expected: \"(\\\"auto\\\" | \\\"html\\\" | \\\"markdown\\\" | undefined)\",\n        value: input.contentType\n    }, _errorFactory)) && (undefined === input.valueByLocale || (\"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)) && _ao1(input.valueByLocale, _path + \".valueByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)); const _ao15 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"string\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.valueByLocale || (\"object\" === typeof input.valueByLocale && null !== input.valueByLocale && false === Array.isArray(input.valueByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)) && _ao1(input.valueByLocale, _path + \".valueByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valueByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.valueByLocale\n    }, _errorFactory)); const _ao16 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"image\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"image\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(null | string)\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.alt || \"string\" === typeof input.alt || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".alt\",\n        expected: \"(string | undefined)\",\n        value: input.alt\n    }, _errorFactory)) && (undefined === input.altByLocale || (\"object\" === typeof input.altByLocale && null !== input.altByLocale && false === Array.isArray(input.altByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.altByLocale\n    }, _errorFactory)) && _ao1(input.altByLocale, _path + \".altByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.altByLocale\n    }, _errorFactory)); const _ao17 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"collectionReference\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"collectionReference\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || \"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(null | string)\",\n        value: input.value\n    }, _errorFactory)); const _ao18 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"multiCollectionReference\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"multiCollectionReference\\\"\",\n        value: input.type\n    }, _errorFactory)) && (null === input.value || (Array.isArray(input.value) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(ReadonlyArray<string> | null)\",\n        value: input.value\n    }, _errorFactory)) && input.value.every((elem: any, _index3: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value[\" + _index3 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"(ReadonlyArray<string> | null)\",\n        value: input.value\n    }, _errorFactory)); const _ao19 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"array\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"array\\\"\",\n        value: input.type\n    }, _errorFactory)) && ((Array.isArray(input.value) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"Array<ArrayItemInput>\",\n        value: input.value\n    }, _errorFactory)) && input.value.every((elem: any, _index4: number) => (\"object\" === typeof elem && null !== elem && false === Array.isArray(elem) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value[\" + _index4 + \"]\",\n        expected: \"(CreateArrayItem | UpdateArrayItem)\",\n        value: elem\n    }, _errorFactory)) && _au0(elem, _path + \".value[\" + _index4 + \"]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value[\" + _index4 + \"]\",\n        expected: \"(CreateArrayItem | UpdateArrayItem)\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"Array<ArrayItemInput>\",\n        value: input.value\n    }, _errorFactory)); const _ao20 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.fieldData || (\"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ArrayItemFieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && _ao21(input.fieldData, _path + \".fieldData\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ArrayItemFieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory); const _ao21 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"ImageFieldDataEntryInput\",\n            value: value\n        }, _errorFactory)) && _ao16(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"ImageFieldDataEntryInput\",\n            value: value\n        }, _errorFactory);\n    }); const _ao22 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.fieldData || (\"object\" === typeof input.fieldData && null !== input.fieldData && false === Array.isArray(input.fieldData) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ArrayItemFieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)) && _ao21(input.fieldData, _path + \".fieldData\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fieldData\",\n        expected: \"(ArrayItemFieldDataInput | undefined)\",\n        value: input.fieldData\n    }, _errorFactory)); const _ao23 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"excluded\" === value || \"ready\" === value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(\\\"excluded\\\" | \\\"ready\\\")\",\n            value: value\n        }, _errorFactory);\n    }); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (undefined !== input.id)\n            return _ao22(input, _path, true && _exceptionable);\n        else\n            return _ao20(input, _path, true && _exceptionable);\n    })(); const _au1 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"set\" === input.action)\n            return _ao2(input, _path, true && _exceptionable);\n        else if (\"clear\" === input.action)\n            return _ao3(input, _path, true && _exceptionable);\n        else if (\"ignore\" === input.action)\n            return _ao4(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(__type | __type.o1 | __type.o2)\",\n                value: input\n            }, _errorFactory);\n    })(); const _au2 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"array\" === input.type)\n            return _ao19(input, _path, true && _exceptionable);\n        else if (\"multiCollectionReference\" === input.type)\n            return _ao18(input, _path, true && _exceptionable);\n        else if (\"collectionReference\" === input.type)\n            return _ao17(input, _path, true && _exceptionable);\n        else if (\"number\" === input.type)\n            return _ao13(input, _path, true && _exceptionable);\n        else if (\"file\" === input.type)\n            return _ao11(input, _path, true && _exceptionable);\n        else if (\"enum\" === input.type)\n            return _ao10(input, _path, true && _exceptionable);\n        else if (\"date\" === input.type)\n            return _ao9(input, _path, true && _exceptionable);\n        else if (\"color\" === input.type)\n            return _ao7(input, _path, true && _exceptionable);\n        else if (\"boolean\" === input.type)\n            return _ao6(input, _path, true && _exceptionable);\n        else if (\"string\" === input.type)\n            return _ao15(input, _path, true && _exceptionable);\n        else if (\"link\" === input.type)\n            return _ao12(input, _path, true && _exceptionable);\n        else if (\"formattedText\" === input.type)\n            return _ao14(input, _path, true && _exceptionable);\n        else if (\"image\" === input.type)\n            return _ao16(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(ArrayFieldDataEntryInput | MultiCollectionReferenceFieldDataEntryInput | CollectionReferenceFieldDataEntryInput | NumberFieldDataEntry | FileFieldDataEntryInput | EnumFieldDataEntryInput | DateFieldDataEntryInput | ColorFieldDataEntryInput | BooleanFieldDataEntry | StringFieldDataEntryInput | LinkFieldDataEntryInput | FormattedTextFieldDataEntryInput | ImageFieldDataEntryInput)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"setCollectionItemAttributes2\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setCollectionItemAttributes2\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, attributes: EditableCollectionItemAttributes]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, EditableCollectionItemAttributes]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"EditableCollectionItemAttributes\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"EditableCollectionItemAttributes\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, attributes: EditableCollectionItemAttributes]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setActiveCollection: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"setActiveCollection\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setActiveCollection\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    addEnumCase: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.name && (undefined === input.nameByLocale || \"object\" === typeof input.nameByLocale && null !== input.nameByLocale && false === Array.isArray(input.nameByLocale) && _io1(input.nameByLocale)); const _io1 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && _iu0(value);\n    }); const _io2 = (input: any): boolean => \"set\" === input.action && \"string\" === typeof input.value && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io3 = (input: any): boolean => \"clear\" === input.action; const _io4 = (input: any): boolean => \"ignore\" === input.action && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _iu0 = (input: any): any => (() => {\n        if (\"set\" === input.action)\n            return _io2(input);\n        else if (\"clear\" === input.action)\n            return _io3(input);\n        else if (\"ignore\" === input.action)\n            return _io4(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.nameByLocale || (\"object\" === typeof input.nameByLocale && null !== input.nameByLocale && false === Array.isArray(input.nameByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".nameByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.nameByLocale\n    }, _errorFactory)) && _ao1(input.nameByLocale, _path + \".nameByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".nameByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.nameByLocale\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type | __type.o1 | __type.o2)\",\n            value: value\n        }, _errorFactory)) && _au0(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type | __type.o1 | __type.o2)\",\n            value: value\n        }, _errorFactory);\n    }); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"set\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"set\\\"\",\n        value: input.action\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao3 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"clear\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"clear\\\"\",\n        value: input.action\n    }, _errorFactory); const _ao4 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"ignore\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"ignore\\\"\",\n        value: input.action\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"set\" === input.action)\n            return _ao2(input, _path, true && _exceptionable);\n        else if (\"clear\" === input.action)\n            return _ao3(input, _path, true && _exceptionable);\n        else if (\"ignore\" === input.action)\n            return _ao4(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(__type | __type.o1 | __type.o2)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"addEnumCase\"]> => Array.isArray(input) && (input.length === 3 && \"string\" === typeof input[0] && \"string\" === typeof input[1] && (\"object\" === typeof input[2] && null !== input[2] && _io0(input[2]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addEnumCase\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, fieldId: string, attributes: CreateEnumCase]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 3 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, CreateEnumCase]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && ((\"object\" === typeof input[2] && null !== input[2] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"CreateEnumCase\",\n                value: input[2]\n            }, _errorFactory)) && _ao0(input[2], _path + \"[2]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"CreateEnumCase\",\n                value: input[2]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, fieldId: string, attributes: CreateEnumCase]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    updateEnumCase: (() => { const _io0 = (input: any): boolean => (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.nameByLocale || \"object\" === typeof input.nameByLocale && null !== input.nameByLocale && false === Array.isArray(input.nameByLocale) && _io1(input.nameByLocale)); const _io1 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && _iu0(value);\n    }); const _io2 = (input: any): boolean => \"set\" === input.action && \"string\" === typeof input.value && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io3 = (input: any): boolean => \"clear\" === input.action; const _io4 = (input: any): boolean => \"ignore\" === input.action && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _iu0 = (input: any): any => (() => {\n        if (\"set\" === input.action)\n            return _io2(input);\n        else if (\"clear\" === input.action)\n            return _io3(input);\n        else if (\"ignore\" === input.action)\n            return _io4(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.nameByLocale || (\"object\" === typeof input.nameByLocale && null !== input.nameByLocale && false === Array.isArray(input.nameByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".nameByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.nameByLocale\n    }, _errorFactory)) && _ao1(input.nameByLocale, _path + \".nameByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".nameByLocale\",\n        expected: \"(LocalizationSourceUpdate | undefined)\",\n        value: input.nameByLocale\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type | __type.o1 | __type.o2)\",\n            value: value\n        }, _errorFactory)) && _au0(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type | __type.o1 | __type.o2)\",\n            value: value\n        }, _errorFactory);\n    }); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"set\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"set\\\"\",\n        value: input.action\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao3 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"clear\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"clear\\\"\",\n        value: input.action\n    }, _errorFactory); const _ao4 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"ignore\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"ignore\\\"\",\n        value: input.action\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"set\" === input.action)\n            return _ao2(input, _path, true && _exceptionable);\n        else if (\"clear\" === input.action)\n            return _ao3(input, _path, true && _exceptionable);\n        else if (\"ignore\" === input.action)\n            return _ao4(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(__type | __type.o1 | __type.o2)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"updateEnumCase\"]> => Array.isArray(input) && (input.length === 4 && \"string\" === typeof input[0] && \"string\" === typeof input[1] && \"string\" === typeof input[2] && (\"object\" === typeof input[3] && null !== input[3] && false === Array.isArray(input[3]) && _io0(input[3]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"updateEnumCase\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, fieldId: string, caseId: string, attributes: UpdateEnumCase]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 4 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, string, UpdateEnumCase]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && (\"string\" === typeof input[2] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"string\",\n                value: input[2]\n            }, _errorFactory)) && ((\"object\" === typeof input[3] && null !== input[3] && false === Array.isArray(input[3]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[3]\",\n                expected: \"UpdateEnumCase\",\n                value: input[3]\n            }, _errorFactory)) && _ao0(input[3], _path + \"[3]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[3]\",\n                expected: \"UpdateEnumCase\",\n                value: input[3]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, fieldId: string, caseId: string, attributes: UpdateEnumCase]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    removeEnumCase: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"removeEnumCase\"]> => Array.isArray(input) && (input.length === 3 && \"string\" === typeof input[0] && \"string\" === typeof input[1] && \"string\" === typeof input[2]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"removeEnumCase\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, fieldId: string, caseId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 3 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && (\"string\" === typeof input[2] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"string\",\n                value: input[2]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, fieldId: string, caseId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setEnumCaseOrder: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"setEnumCaseOrder\"]> => Array.isArray(input) && (input.length === 3 && \"string\" === typeof input[0] && \"string\" === typeof input[1] && (Array.isArray(input[2]) && input[2].every((elem: any) => \"string\" === typeof elem))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setEnumCaseOrder\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, fieldId: string, caseIds: string[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 3 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, Array<string>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && ((Array.isArray(input[2]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"Array<string>\",\n                value: input[2]\n            }, _errorFactory)) && input[2].every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2][\" + _index2 + \"]\",\n                expected: \"string\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"Array<string>\",\n                value: input[2]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[collectionId: string, fieldId: string, caseIds: string[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    removeCollectionItems: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"removeCollectionItems\"]> => Array.isArray(input) && (input.length === 1 && (Array.isArray(input[0]) && input[0].every((elem: any) => \"string\" === typeof elem))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"removeCollectionItems\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[ids: string[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[Array<string>]\",\n                value: input\n            }, _errorFactory)) && ((Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<string>\",\n                value: input[0]\n            }, _errorFactory)) && input[0].every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index2 + \"]\",\n                expected: \"string\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<string>\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[ids: string[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getNodesWithType: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getNodesWithType\"]> => Array.isArray(input) && (input.length === 2 && (null === input[0] || \"string\" === typeof input[0]) && (\"SVGNode\" === input[1] || \"DesignPageNode\" === input[1] || \"WebPageNode\" === input[1] || \"ComponentNode\" === input[1] || \"VectorSetNode\" === input[1] || \"VectorSetItemNode\" === input[1] || \"ComponentInstanceNode\" === input[1] || \"FrameNode\" === input[1] || \"TextNode\" === input[1])); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getNodesWithType\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string | null, type: KnownNodeClass]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(null | string), (\\\"ComponentInstanceNode\\\" | \\\"ComponentNode\\\" | \\\"DesignPageNode\\\" | \\\"FrameNode\\\" | \\\"SVGNode\\\" | \\\"TextNode\\\" | \\\"VectorSetItemNode\\\" | \\\"VectorSetNode\\\" | \\\"WebPageNode\\\")]\",\n                value: input\n            }, _errorFactory)) && (null === input[0] || \"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(null | string)\",\n                value: input[0]\n            }, _errorFactory)) && (\"SVGNode\" === input[1] || \"DesignPageNode\" === input[1] || \"WebPageNode\" === input[1] || \"ComponentNode\" === input[1] || \"VectorSetNode\" === input[1] || \"VectorSetItemNode\" === input[1] || \"ComponentInstanceNode\" === input[1] || \"FrameNode\" === input[1] || \"TextNode\" === input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(\\\"ComponentInstanceNode\\\" | \\\"ComponentNode\\\" | \\\"DesignPageNode\\\" | \\\"FrameNode\\\" | \\\"SVGNode\\\" | \\\"TextNode\\\" | \\\"VectorSetItemNode\\\" | \\\"VectorSetNode\\\" | \\\"WebPageNode\\\")\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string | null, type: KnownNodeClass]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getNodesWithAttribute: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getNodesWithAttribute\"]> => Array.isArray(input) && (input.length === 2 && (null === input[0] || \"string\" === typeof input[0]) && \"string\" === typeof input[1]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getNodesWithAttribute\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string | null, attribute: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(null | string), string]\",\n                value: input\n            }, _errorFactory)) && (null === input[0] || \"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(null | string)\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string | null, attribute: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getNodesWithAttributeSet: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getNodesWithAttributeSet\"]> => Array.isArray(input) && (input.length === 2 && (null === input[0] || \"string\" === typeof input[0]) && \"string\" === typeof input[1]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getNodesWithAttributeSet\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string | null, attribute: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(null | string), string]\",\n                value: input\n            }, _errorFactory)) && (null === input[0] || \"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(null | string)\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string | null, attribute: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    notify: (() => { const _io0 = (input: any): boolean => (undefined === input.buttonText || \"string\" === typeof input.buttonText) && \"string\" === typeof input.notificationId && (undefined === input.variant || \"info\" === input.variant || \"success\" === input.variant || \"error\" === input.variant || \"warning\" === input.variant) && (undefined === input.durationMs || \"number\" === typeof input.durationMs); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.buttonText || \"string\" === typeof input.buttonText || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".buttonText\",\n        expected: \"(string | undefined)\",\n        value: input.buttonText\n    }, _errorFactory)) && (\"string\" === typeof input.notificationId || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".notificationId\",\n        expected: \"string\",\n        value: input.notificationId\n    }, _errorFactory)) && (undefined === input.variant || \"info\" === input.variant || \"success\" === input.variant || \"error\" === input.variant || \"warning\" === input.variant || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".variant\",\n        expected: \"(\\\"error\\\" | \\\"info\\\" | \\\"success\\\" | \\\"warning\\\" | undefined)\",\n        value: input.variant\n    }, _errorFactory)) && (undefined === input.durationMs || \"number\" === typeof input.durationMs || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".durationMs\",\n        expected: \"(number | undefined)\",\n        value: input.durationMs\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"notify\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (\"object\" === typeof input[1] && null !== input[1] && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"notify\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[message: string, options: NotifyOptionsData]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, NotifyOptionsData]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((\"object\" === typeof input[1] && null !== input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"NotifyOptionsData\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"NotifyOptionsData\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[message: string, options: NotifyOptionsData]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    closeNotification: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"closeNotification\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"closeNotification\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[notificationId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[notificationId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    zoomIntoView: (() => { const _io0 = (input: any): boolean => (undefined === input.maxZoom || \"number\" === typeof input.maxZoom) && (undefined === input.skipIfVisible || \"boolean\" === typeof input.skipIfVisible); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.maxZoom || \"number\" === typeof input.maxZoom || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".maxZoom\",\n        expected: \"(number | undefined)\",\n        value: input.maxZoom\n    }, _errorFactory)) && (undefined === input.skipIfVisible || \"boolean\" === typeof input.skipIfVisible || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".skipIfVisible\",\n        expected: \"(boolean | undefined)\",\n        value: input.skipIfVisible\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"zoomIntoView\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && (Array.isArray(input[0]) && input[0].every((elem: any) => \"string\" === typeof elem)) && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"zoomIntoView\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeIds: string[], options?: ZoomIntoViewOptions | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[Array<string>, (ZoomIntoViewOptions | undefined)]\",\n                value: input\n            }, _errorFactory)) && ((Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<string>\",\n                value: input[0]\n            }, _errorFactory)) && input[0].every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index2 + \"]\",\n                expected: \"string\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<string>\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(ZoomIntoViewOptions | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(ZoomIntoViewOptions | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeIds: string[], options?: ZoomIntoViewOptions | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    navigateTo: (() => { const _io0 = (input: any): boolean => (undefined === input.select || \"boolean\" === typeof input.select) && (null !== input.zoomIntoView && (undefined === input.zoomIntoView || \"boolean\" === typeof input.zoomIntoView || \"object\" === typeof input.zoomIntoView && null !== input.zoomIntoView && false === Array.isArray(input.zoomIntoView) && _io1(input.zoomIntoView))) && (undefined === input.scrollTo || \"object\" === typeof input.scrollTo && null !== input.scrollTo && false === Array.isArray(input.scrollTo) && _io2(input.scrollTo)); const _io1 = (input: any): boolean => (undefined === input.maxZoom || \"number\" === typeof input.maxZoom) && (undefined === input.skipIfVisible || \"boolean\" === typeof input.skipIfVisible); const _io2 = (input: any): boolean => (undefined === input.collectionFieldId || \"string\" === typeof input.collectionFieldId) && (undefined === input.codeFilePosition || \"object\" === typeof input.codeFilePosition && null !== input.codeFilePosition && _io3(input.codeFilePosition)); const _io3 = (input: any): boolean => \"number\" === typeof input.startLine && (undefined === input.startColumn || \"number\" === typeof input.startColumn) && (undefined === input.endLine || \"number\" === typeof input.endLine) && (undefined === input.endColumn || \"number\" === typeof input.endColumn); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.select || \"boolean\" === typeof input.select || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".select\",\n        expected: \"(boolean | undefined)\",\n        value: input.select\n    }, _errorFactory)) && ((null !== input.zoomIntoView || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".zoomIntoView\",\n        expected: \"(ZoomIntoViewOptions | boolean | undefined)\",\n        value: input.zoomIntoView\n    }, _errorFactory)) && (undefined === input.zoomIntoView || \"boolean\" === typeof input.zoomIntoView || (\"object\" === typeof input.zoomIntoView && null !== input.zoomIntoView && false === Array.isArray(input.zoomIntoView) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".zoomIntoView\",\n        expected: \"(ZoomIntoViewOptions | boolean | undefined)\",\n        value: input.zoomIntoView\n    }, _errorFactory)) && _ao1(input.zoomIntoView, _path + \".zoomIntoView\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".zoomIntoView\",\n        expected: \"(ZoomIntoViewOptions | boolean | undefined)\",\n        value: input.zoomIntoView\n    }, _errorFactory))) && (undefined === input.scrollTo || (\"object\" === typeof input.scrollTo && null !== input.scrollTo && false === Array.isArray(input.scrollTo) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".scrollTo\",\n        expected: \"(NavigableScrollToOptions | undefined)\",\n        value: input.scrollTo\n    }, _errorFactory)) && _ao2(input.scrollTo, _path + \".scrollTo\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".scrollTo\",\n        expected: \"(NavigableScrollToOptions | undefined)\",\n        value: input.scrollTo\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.maxZoom || \"number\" === typeof input.maxZoom || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".maxZoom\",\n        expected: \"(number | undefined)\",\n        value: input.maxZoom\n    }, _errorFactory)) && (undefined === input.skipIfVisible || \"boolean\" === typeof input.skipIfVisible || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".skipIfVisible\",\n        expected: \"(boolean | undefined)\",\n        value: input.skipIfVisible\n    }, _errorFactory)); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.collectionFieldId || \"string\" === typeof input.collectionFieldId || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".collectionFieldId\",\n        expected: \"(string | undefined)\",\n        value: input.collectionFieldId\n    }, _errorFactory)) && (undefined === input.codeFilePosition || (\"object\" === typeof input.codeFilePosition && null !== input.codeFilePosition || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".codeFilePosition\",\n        expected: \"(CodeFilePosition | undefined)\",\n        value: input.codeFilePosition\n    }, _errorFactory)) && _ao3(input.codeFilePosition, _path + \".codeFilePosition\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".codeFilePosition\",\n        expected: \"(CodeFilePosition | undefined)\",\n        value: input.codeFilePosition\n    }, _errorFactory)); const _ao3 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"number\" === typeof input.startLine || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".startLine\",\n        expected: \"number\",\n        value: input.startLine\n    }, _errorFactory)) && (undefined === input.startColumn || \"number\" === typeof input.startColumn || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".startColumn\",\n        expected: \"(number | undefined)\",\n        value: input.startColumn\n    }, _errorFactory)) && (undefined === input.endLine || \"number\" === typeof input.endLine || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".endLine\",\n        expected: \"(number | undefined)\",\n        value: input.endLine\n    }, _errorFactory)) && (undefined === input.endColumn || \"number\" === typeof input.endColumn || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".endColumn\",\n        expected: \"(number | undefined)\",\n        value: input.endColumn\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"navigateTo\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && \"string\" === typeof input[0] && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"navigateTo\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, opts?: NavigableOptions | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, (NavigableOptions | undefined)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(NavigableOptions | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(NavigableOptions | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, opts?: NavigableOptions | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    // Localization\n    getLocales: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getLocales\"]> => Array.isArray(input) && input.length === 0; let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getLocales\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) && (input.length === 0 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getDefaultLocale: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getDefaultLocale\"]> => Array.isArray(input) && input.length === 0; let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getDefaultLocale\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) && (input.length === 0 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getActiveLocale: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getActiveLocale\"]> => Array.isArray(input) && input.length === 0; let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getActiveLocale\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) && (input.length === 0 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getLocalizationGroups: (() => { const _io0 = (input: any): boolean => (undefined === input.groupIds || Array.isArray(input.groupIds) && input.groupIds.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.type || \"collection\" === input.type || \"collection-item\" === input.type || \"component\" === input.type || \"page\" === input.type || \"settings\" === input.type || \"template\" === input.type); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.groupIds || (Array.isArray(input.groupIds) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".groupIds\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.groupIds\n    }, _errorFactory)) && input.groupIds.every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".groupIds[\" + _index2 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".groupIds\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.groupIds\n    }, _errorFactory)) && (undefined === input.type || \"collection\" === input.type || \"collection-item\" === input.type || \"component\" === input.type || \"page\" === input.type || \"settings\" === input.type || \"template\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"(\\\"collection\\\" | \\\"collection-item\\\" | \\\"component\\\" | \\\"page\\\" | \\\"settings\\\" | \\\"template\\\" | undefined)\",\n        value: input.type\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"getLocalizationGroups\"]> => Array.isArray(input) && (0 <= input.length && 1 >= input.length && (undefined === input[0] || \"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getLocalizationGroups\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[filter?: GetLocalizationGroupsFilter | undefined]\",\n                value: input\n            }, _errorFactory)) && ((0 <= input.length && 1 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(GetLocalizationGroupsFilter | undefined)]\",\n                value: input\n            }, _errorFactory)) && (undefined === input[0] || (\"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(GetLocalizationGroupsFilter | undefined)\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(GetLocalizationGroupsFilter | undefined)\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[filter?: GetLocalizationGroupsFilter | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setLocalizationData: (() => { const _io0 = (input: any): boolean => (undefined === input.valuesBySource || \"object\" === typeof input.valuesBySource && null !== input.valuesBySource && false === Array.isArray(input.valuesBySource) && _io1(input.valuesBySource)) && (undefined === input.statusByLocaleByGroup || \"object\" === typeof input.statusByLocaleByGroup && null !== input.statusByLocaleByGroup && false === Array.isArray(input.statusByLocaleByGroup) && _io6(input.statusByLocaleByGroup)); const _io1 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && false === Array.isArray(value) && _io2(value);\n    }); const _io2 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && _iu0(value);\n    }); const _io3 = (input: any): boolean => \"set\" === input.action && \"string\" === typeof input.value && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io4 = (input: any): boolean => \"clear\" === input.action; const _io5 = (input: any): boolean => \"ignore\" === input.action && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io6 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && false === Array.isArray(value) && _io7(value);\n    }); const _io7 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"excluded\" === value || \"ready\" === value;\n    }); const _iu0 = (input: any): any => (() => {\n        if (\"set\" === input.action)\n            return _io3(input);\n        else if (\"clear\" === input.action)\n            return _io4(input);\n        else if (\"ignore\" === input.action)\n            return _io5(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.valuesBySource || (\"object\" === typeof input.valuesBySource && null !== input.valuesBySource && false === Array.isArray(input.valuesBySource) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valuesBySource\",\n        expected: \"(Record<string, LocalizationSourceUpdate> | undefined)\",\n        value: input.valuesBySource\n    }, _errorFactory)) && _ao1(input.valuesBySource, _path + \".valuesBySource\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".valuesBySource\",\n        expected: \"(Record<string, LocalizationSourceUpdate> | undefined)\",\n        value: input.valuesBySource\n    }, _errorFactory)) && (undefined === input.statusByLocaleByGroup || (\"object\" === typeof input.statusByLocaleByGroup && null !== input.statusByLocaleByGroup && false === Array.isArray(input.statusByLocaleByGroup) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".statusByLocaleByGroup\",\n        expected: \"(Record<string, LocalizationGroupStatusByLocale> | undefined)\",\n        value: input.statusByLocaleByGroup\n    }, _errorFactory)) && _ao6(input.statusByLocaleByGroup, _path + \".statusByLocaleByGroup\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".statusByLocaleByGroup\",\n        expected: \"(Record<string, LocalizationGroupStatusByLocale> | undefined)\",\n        value: input.statusByLocaleByGroup\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value && false === Array.isArray(value) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"LocalizationSourceUpdate\",\n            value: value\n        }, _errorFactory)) && _ao2(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"LocalizationSourceUpdate\",\n            value: value\n        }, _errorFactory);\n    }); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type | __type.o1 | __type.o2)\",\n            value: value\n        }, _errorFactory)) && _au0(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type | __type.o1 | __type.o2)\",\n            value: value\n        }, _errorFactory);\n    }); const _ao3 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"set\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"set\\\"\",\n        value: input.action\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao4 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"clear\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"clear\\\"\",\n        value: input.action\n    }, _errorFactory); const _ao5 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"ignore\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"ignore\\\"\",\n        value: input.action\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao6 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value && false === Array.isArray(value) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"LocalizationGroupStatusByLocale\",\n            value: value\n        }, _errorFactory)) && _ao7(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"LocalizationGroupStatusByLocale\",\n            value: value\n        }, _errorFactory);\n    }); const _ao7 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"excluded\" === value || \"ready\" === value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(\\\"excluded\\\" | \\\"ready\\\")\",\n            value: value\n        }, _errorFactory);\n    }); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"set\" === input.action)\n            return _ao3(input, _path, true && _exceptionable);\n        else if (\"clear\" === input.action)\n            return _ao4(input, _path, true && _exceptionable);\n        else if (\"ignore\" === input.action)\n            return _ao5(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(__type | __type.o1 | __type.o2)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"setLocalizationData\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setLocalizationData\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[update: LocalizationData]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[LocalizationData]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"LocalizationData\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"LocalizationData\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[update: LocalizationData]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    createLocale: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.language && (undefined === input.region || \"string\" === typeof input.region) && (undefined === input.fallbackLocaleId || \"string\" === typeof input.fallbackLocaleId) && (undefined === input.slug || \"string\" === typeof input.slug) && (undefined === input.name || \"string\" === typeof input.name) && (undefined === input.draft || \"boolean\" === typeof input.draft); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.language || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".language\",\n        expected: \"string\",\n        value: input.language\n    }, _errorFactory)) && (undefined === input.region || \"string\" === typeof input.region || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".region\",\n        expected: \"(string | undefined)\",\n        value: input.region\n    }, _errorFactory)) && (undefined === input.fallbackLocaleId || \"string\" === typeof input.fallbackLocaleId || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".fallbackLocaleId\",\n        expected: \"(string | undefined)\",\n        value: input.fallbackLocaleId\n    }, _errorFactory)) && (undefined === input.slug || \"string\" === typeof input.slug || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".slug\",\n        expected: \"(string | undefined)\",\n        value: input.slug\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.draft || \"boolean\" === typeof input.draft || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".draft\",\n        expected: \"(boolean | undefined)\",\n        value: input.draft\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"createLocale\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"createLocale\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: CreateLocaleInput]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[CreateLocaleInput]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"CreateLocaleInput\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"CreateLocaleInput\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: CreateLocaleInput]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getLocaleLanguages: noArguments,\n    getLocaleRegions: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getLocaleRegions\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getLocaleRegions\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[language: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[language: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    // Code File\n    // REMOVE ONCE CODE FILE API ARE RELEASED AND NO MORE USAGE OF `unstable_` METHODS\n    unstable_createCodeFile: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"unstable_createCodeFile\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && \"string\" === typeof input[1]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"unstable_createCodeFile\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[name: string, code: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[name: string, code: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    unstable_getCodeFiles: noArguments,\n    unstable_getCodeFile: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"unstable_getCodeFile\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"unstable_getCodeFile\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[idOrPath: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[idOrPath: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    unstable_setCodeFileContent: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"unstable_setCodeFileContent\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && \"string\" === typeof input[1]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"unstable_setCodeFileContent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, code: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, code: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    unstable_removeCodeFile: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"unstable_removeCodeFile\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"unstable_removeCodeFile\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    unstable_renameCodeFile: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"unstable_renameCodeFile\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && \"string\" === typeof input[1]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"unstable_renameCodeFile\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, newName: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, newName: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    unstable_getCodeFileVersions: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"unstable_getCodeFileVersions\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"unstable_getCodeFileVersions\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    unstable_getCodeFileVersionContent: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"unstable_getCodeFileVersionContent\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && \"string\" === typeof input[1]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"unstable_getCodeFileVersionContent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[fileId: string, versionId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[fileId: string, versionId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    unstable_getCodeFileLint2: (() => { const _io0 = (input: any): boolean => \"error\" === input[\"forbid-browser-apis\"] || \"warning\" === input[\"forbid-browser-apis\"]; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"error\" === input[\"forbid-browser-apis\"] || \"warning\" === input[\"forbid-browser-apis\"] || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \"[\\\"forbid-browser-apis\\\"]\",\n        expected: \"(\\\"error\\\" | \\\"warning\\\")\",\n        value: input[\"forbid-browser-apis\"]\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"unstable_getCodeFileLint2\"]> => Array.isArray(input) && (input.length === 3 && \"string\" === typeof input[0] && \"string\" === typeof input[1] && (\"object\" === typeof input[2] && null !== input[2] && _io0(input[2]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"unstable_getCodeFileLint2\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[fileName: string, content: string, rules: LintConfig]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 3 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, LintConfig]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && ((\"object\" === typeof input[2] && null !== input[2] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"LintConfig\",\n                value: input[2]\n            }, _errorFactory)) && _ao0(input[2], _path + \"[2]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"LintConfig\",\n                value: input[2]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[fileName: string, content: string, rules: LintConfig]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    unstable_getCodeFileTypecheck2: (() => { const _iv2 = new Set([\"none\", \"preserve\", \"react-native\", \"react\", \"react-jsx\", \"react-jsxdev\", 0, 1, 2, 3, 4, 5]); const _iv4 = new Set([\"none\", \"commonjs\", \"amd\", \"umd\", \"system\", \"es6\", \"es2015\", \"es2020\", \"es2022\", \"esnext\", \"node16\", \"node18\", \"node20\", \"nodenext\", \"preserve\", 0, 1, 2, 3, 4, 5, 6, 7, 99, 100, 101, 102, 199, 200]); const _iv5 = new Set([\"classic\", \"node\", \"node10\", \"node16\", \"nodenext\", \"bundler\", 1, 2, 3, 99, 100]); const _iv8 = new Set([\"es3\", \"es5\", \"es6\", \"es2015\", \"es2016\", \"es2017\", \"es2018\", \"es2019\", \"es2020\", \"es2021\", \"es2022\", \"es2023\", \"es2024\", \"esnext\", \"json\", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 99, 100]); const _av21 = new Set([\"none\", \"preserve\", \"react-native\", \"react\", \"react-jsx\", \"react-jsxdev\", 0, 1, 2, 3, 4, 5]); const _av23 = new Set([\"none\", \"commonjs\", \"amd\", \"umd\", \"system\", \"es6\", \"es2015\", \"es2020\", \"es2022\", \"esnext\", \"node16\", \"node18\", \"node20\", \"nodenext\", \"preserve\", 0, 1, 2, 3, 4, 5, 6, 7, 99, 100, 101, 102, 199, 200]); const _av24 = new Set([\"classic\", \"node\", \"node10\", \"node16\", \"nodenext\", \"bundler\", 1, 2, 3, 99, 100]); const _av27 = new Set([\"es3\", \"es5\", \"es6\", \"es2015\", \"es2016\", \"es2017\", \"es2018\", \"es2019\", \"es2020\", \"es2021\", \"es2022\", \"es2023\", \"es2024\", \"esnext\", \"json\", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 99, 100]); const _ip0 = (input: any) => {\n        const array = input;\n        const top = input[0];\n        if (0 === input.length)\n            return true;\n        const arrayPredicators = [\n            [\n                (top: any[]): any => \"string\" === typeof top || \"number\" === typeof top,\n                (entire: any[]): any => entire.every((elem: any) => \"string\" === typeof elem || \"number\" === typeof elem)\n            ] as const,\n            [\n                (top: any[]): any => \"string\" === typeof top,\n                (entire: any[]): any => entire.every((elem: any) => \"string\" === typeof elem)\n            ] as const,\n            [\n                (top: any[]): any => \"object\" === typeof top && null !== top && _io2(top),\n                (entire: any[]): any => entire.every((elem: any) => \"object\" === typeof elem && null !== elem && _io2(elem))\n            ] as const,\n            [\n                (top: any[]): any => \"object\" === typeof top && null !== top && _io3(top),\n                (entire: any[]): any => entire.every((elem: any) => \"object\" === typeof elem && null !== elem && _io3(elem))\n            ] as const\n        ];\n        const passed = arrayPredicators.filter((pred: any) => pred[0](top));\n        if (1 === passed.length)\n            return passed[0]![1](array);\n        else if (1 < passed.length)\n            for (const pred of passed)\n                if (array.every((value: any) => true === pred[0](value)))\n                    return pred[1](array);\n        return false;\n    }; const _ap1 = (input: any, _path: string, _exceptionable: boolean = true) => {\n        const array = input;\n        const top = input[0];\n        if (0 === input.length)\n            return true;\n        const arrayPredicators = [\n            [\n                (top: any[]): any => \"string\" === typeof top || \"number\" === typeof top,\n                (entire: any[]): any => entire.every((elem: any, _index34: number) => \"string\" === typeof elem || \"number\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                    method: \"typia.createAssert\",\n                    path: _path + \"[\" + _index34 + \"]\",\n                    expected: \"(number | string)\",\n                    value: elem\n                }, _errorFactory))\n            ] as const,\n            [\n                (top: any[]): any => \"string\" === typeof top,\n                (entire: any[]): any => entire.every((elem: any, _index35: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                    method: \"typia.createAssert\",\n                    path: _path + \"[\" + _index35 + \"]\",\n                    expected: \"string\",\n                    value: elem\n                }, _errorFactory))\n            ] as const,\n            [\n                (top: any[]): any => \"object\" === typeof top && null !== top && _ao2(top, _path, false && _exceptionable),\n                (entire: any[]): any => entire.every((elem: any, _index36: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                    method: \"typia.createAssert\",\n                    path: _path + \"[\" + _index36 + \"]\",\n                    expected: \"ts.PluginImport\",\n                    value: elem\n                }, _errorFactory)) && _ao2(elem, _path + \"[\" + _index36 + \"]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                    method: \"typia.createAssert\",\n                    path: _path + \"[\" + _index36 + \"]\",\n                    expected: \"ts.PluginImport\",\n                    value: elem\n                }, _errorFactory))\n            ] as const,\n            [\n                (top: any[]): any => \"object\" === typeof top && null !== top && _ao3(top, _path, false && _exceptionable),\n                (entire: any[]): any => entire.every((elem: any, _index37: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                    method: \"typia.createAssert\",\n                    path: _path + \"[\" + _index37 + \"]\",\n                    expected: \"ts.ProjectReference\",\n                    value: elem\n                }, _errorFactory)) && _ao3(elem, _path + \"[\" + _index37 + \"]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                    method: \"typia.createAssert\",\n                    path: _path + \"[\" + _index37 + \"]\",\n                    expected: \"ts.ProjectReference\",\n                    value: elem\n                }, _errorFactory))\n            ] as const\n        ];\n        const passed = arrayPredicators.filter((pred: any) => pred[0](top));\n        if (1 === passed.length)\n            return passed[0]![1](array);\n        else if (1 < passed.length)\n            for (const pred of passed)\n                if (array.every((value: any) => true === pred[0](value)))\n                    return pred[1](array);\n        return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path,\n            expected: \"(Array<string | number> | Array<string> | Array<ts.PluginImport> | Array<ts.ProjectReference>)\",\n            value: input\n        }, _errorFactory);\n    }; const _io0 = (input: any): boolean => (undefined === input.allowImportingTsExtensions || \"boolean\" === typeof input.allowImportingTsExtensions) && (undefined === input.allowJs || \"boolean\" === typeof input.allowJs) && (undefined === input.allowArbitraryExtensions || \"boolean\" === typeof input.allowArbitraryExtensions) && (undefined === input.allowSyntheticDefaultImports || \"boolean\" === typeof input.allowSyntheticDefaultImports) && (undefined === input.allowUmdGlobalAccess || \"boolean\" === typeof input.allowUmdGlobalAccess) && (undefined === input.allowUnreachableCode || \"boolean\" === typeof input.allowUnreachableCode) && (undefined === input.allowUnusedLabels || \"boolean\" === typeof input.allowUnusedLabels) && (undefined === input.alwaysStrict || \"boolean\" === typeof input.alwaysStrict) && (undefined === input.baseUrl || \"string\" === typeof input.baseUrl) && (undefined === input.charset || \"string\" === typeof input.charset) && (undefined === input.checkJs || \"boolean\" === typeof input.checkJs) && (undefined === input.customConditions || Array.isArray(input.customConditions) && input.customConditions.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.declaration || \"boolean\" === typeof input.declaration) && (undefined === input.declarationMap || \"boolean\" === typeof input.declarationMap) && (undefined === input.emitDeclarationOnly || \"boolean\" === typeof input.emitDeclarationOnly) && (undefined === input.declarationDir || \"string\" === typeof input.declarationDir) && (undefined === input.disableSizeLimit || \"boolean\" === typeof input.disableSizeLimit) && (undefined === input.disableSourceOfProjectReferenceRedirect || \"boolean\" === typeof input.disableSourceOfProjectReferenceRedirect) && (undefined === input.disableSolutionSearching || \"boolean\" === typeof input.disableSolutionSearching) && (undefined === input.disableReferencedProjectLoad || \"boolean\" === typeof input.disableReferencedProjectLoad) && (undefined === input.downlevelIteration || \"boolean\" === typeof input.downlevelIteration) && (undefined === input.emitBOM || \"boolean\" === typeof input.emitBOM) && (undefined === input.emitDecoratorMetadata || \"boolean\" === typeof input.emitDecoratorMetadata) && (undefined === input.exactOptionalPropertyTypes || \"boolean\" === typeof input.exactOptionalPropertyTypes) && (undefined === input.experimentalDecorators || \"boolean\" === typeof input.experimentalDecorators) && (undefined === input.forceConsistentCasingInFileNames || \"boolean\" === typeof input.forceConsistentCasingInFileNames) && (undefined === input.ignoreDeprecations || \"string\" === typeof input.ignoreDeprecations) && (undefined === input.importHelpers || \"boolean\" === typeof input.importHelpers) && (undefined === input.importsNotUsedAsValues || 0 === input.importsNotUsedAsValues || 1 === input.importsNotUsedAsValues || 2 === input.importsNotUsedAsValues) && (undefined === input.inlineSourceMap || \"boolean\" === typeof input.inlineSourceMap) && (undefined === input.inlineSources || \"boolean\" === typeof input.inlineSources) && (undefined === input.isolatedModules || \"boolean\" === typeof input.isolatedModules) && (undefined === input.isolatedDeclarations || \"boolean\" === typeof input.isolatedDeclarations) && (undefined === input.jsx || true === _iv2.has(input.jsx)) && (undefined === input.keyofStringsOnly || \"boolean\" === typeof input.keyofStringsOnly) && (undefined === input.lib || Array.isArray(input.lib) && input.lib.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.libReplacement || \"boolean\" === typeof input.libReplacement) && (undefined === input.locale || \"string\" === typeof input.locale) && (undefined === input.mapRoot || \"string\" === typeof input.mapRoot) && (undefined === input.maxNodeModuleJsDepth || \"number\" === typeof input.maxNodeModuleJsDepth) && (undefined === input[\"module\"] || true === _iv4.has(input[\"module\"])) && (undefined === input.moduleResolution || true === _iv5.has(input.moduleResolution)) && (undefined === input.moduleSuffixes || Array.isArray(input.moduleSuffixes) && input.moduleSuffixes.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.moduleDetection || 1 === input.moduleDetection || 2 === input.moduleDetection || 3 === input.moduleDetection) && (undefined === input.newLine || \"Crlf\" === input.newLine || \"Lf\" === input.newLine || 0 === input.newLine || 1 === input.newLine) && (undefined === input.noEmit || \"boolean\" === typeof input.noEmit) && (undefined === input.noCheck || \"boolean\" === typeof input.noCheck) && (undefined === input.noEmitHelpers || \"boolean\" === typeof input.noEmitHelpers) && (undefined === input.noEmitOnError || \"boolean\" === typeof input.noEmitOnError) && (undefined === input.noErrorTruncation || \"boolean\" === typeof input.noErrorTruncation) && (undefined === input.noFallthroughCasesInSwitch || \"boolean\" === typeof input.noFallthroughCasesInSwitch) && (undefined === input.noImplicitAny || \"boolean\" === typeof input.noImplicitAny) && (undefined === input.noImplicitReturns || \"boolean\" === typeof input.noImplicitReturns) && (undefined === input.noImplicitThis || \"boolean\" === typeof input.noImplicitThis) && (undefined === input.noStrictGenericChecks || \"boolean\" === typeof input.noStrictGenericChecks) && (undefined === input.noUnusedLocals || \"boolean\" === typeof input.noUnusedLocals) && (undefined === input.noUnusedParameters || \"boolean\" === typeof input.noUnusedParameters) && (undefined === input.noImplicitUseStrict || \"boolean\" === typeof input.noImplicitUseStrict) && (undefined === input.noPropertyAccessFromIndexSignature || \"boolean\" === typeof input.noPropertyAccessFromIndexSignature) && (undefined === input.assumeChangesOnlyAffectDirectDependencies || \"boolean\" === typeof input.assumeChangesOnlyAffectDirectDependencies) && (undefined === input.noLib || \"boolean\" === typeof input.noLib) && (undefined === input.noResolve || \"boolean\" === typeof input.noResolve) && (undefined === input.noUncheckedIndexedAccess || \"boolean\" === typeof input.noUncheckedIndexedAccess) && (undefined === input.out || \"string\" === typeof input.out) && (undefined === input.outDir || \"string\" === typeof input.outDir) && (undefined === input.outFile || \"string\" === typeof input.outFile) && (undefined === input.paths || \"object\" === typeof input.paths && null !== input.paths && false === Array.isArray(input.paths) && _io1(input.paths)) && (undefined === input.preserveConstEnums || \"boolean\" === typeof input.preserveConstEnums) && (undefined === input.noImplicitOverride || \"boolean\" === typeof input.noImplicitOverride) && (undefined === input.preserveSymlinks || \"boolean\" === typeof input.preserveSymlinks) && (undefined === input.preserveValueImports || \"boolean\" === typeof input.preserveValueImports) && (undefined === input.project || \"string\" === typeof input.project) && (undefined === input.reactNamespace || \"string\" === typeof input.reactNamespace) && (undefined === input.jsxFactory || \"string\" === typeof input.jsxFactory) && (undefined === input.jsxFragmentFactory || \"string\" === typeof input.jsxFragmentFactory) && (undefined === input.jsxImportSource || \"string\" === typeof input.jsxImportSource) && (undefined === input.composite || \"boolean\" === typeof input.composite) && (undefined === input.incremental || \"boolean\" === typeof input.incremental) && (undefined === input.tsBuildInfoFile || \"string\" === typeof input.tsBuildInfoFile) && (undefined === input.removeComments || \"boolean\" === typeof input.removeComments) && (undefined === input.resolvePackageJsonExports || \"boolean\" === typeof input.resolvePackageJsonExports) && (undefined === input.resolvePackageJsonImports || \"boolean\" === typeof input.resolvePackageJsonImports) && (undefined === input.rewriteRelativeImportExtensions || \"boolean\" === typeof input.rewriteRelativeImportExtensions) && (undefined === input.rootDir || \"string\" === typeof input.rootDir) && (undefined === input.rootDirs || Array.isArray(input.rootDirs) && input.rootDirs.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.skipLibCheck || \"boolean\" === typeof input.skipLibCheck) && (undefined === input.skipDefaultLibCheck || \"boolean\" === typeof input.skipDefaultLibCheck) && (undefined === input.sourceMap || \"boolean\" === typeof input.sourceMap) && (undefined === input.sourceRoot || \"string\" === typeof input.sourceRoot) && (undefined === input.strict || \"boolean\" === typeof input.strict) && (undefined === input.strictFunctionTypes || \"boolean\" === typeof input.strictFunctionTypes) && (undefined === input.strictBindCallApply || \"boolean\" === typeof input.strictBindCallApply) && (undefined === input.strictNullChecks || \"boolean\" === typeof input.strictNullChecks) && (undefined === input.strictPropertyInitialization || \"boolean\" === typeof input.strictPropertyInitialization) && (undefined === input.strictBuiltinIteratorReturn || \"boolean\" === typeof input.strictBuiltinIteratorReturn) && (undefined === input.stripInternal || \"boolean\" === typeof input.stripInternal) && (undefined === input.suppressExcessPropertyErrors || \"boolean\" === typeof input.suppressExcessPropertyErrors) && (undefined === input.suppressImplicitAnyIndexErrors || \"boolean\" === typeof input.suppressImplicitAnyIndexErrors) && (undefined === input.target || true === _iv8.has(input.target)) && (undefined === input.traceResolution || \"boolean\" === typeof input.traceResolution) && (undefined === input.useUnknownInCatchVariables || \"boolean\" === typeof input.useUnknownInCatchVariables) && (undefined === input.noUncheckedSideEffectImports || \"boolean\" === typeof input.noUncheckedSideEffectImports) && (undefined === input.resolveJsonModule || \"boolean\" === typeof input.resolveJsonModule) && (undefined === input.types || Array.isArray(input.types) && input.types.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.typeRoots || Array.isArray(input.typeRoots) && input.typeRoots.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.verbatimModuleSyntax || \"boolean\" === typeof input.verbatimModuleSyntax) && (undefined === input.erasableSyntaxOnly || \"boolean\" === typeof input.erasableSyntaxOnly) && (undefined === input.esModuleInterop || \"boolean\" === typeof input.esModuleInterop) && (undefined === input.useDefineForClassFields || \"boolean\" === typeof input.useDefineForClassFields) && Object.keys(input).every((key: any) => {\n        if ([\"allowImportingTsExtensions\", \"allowJs\", \"allowArbitraryExtensions\", \"allowSyntheticDefaultImports\", \"allowUmdGlobalAccess\", \"allowUnreachableCode\", \"allowUnusedLabels\", \"alwaysStrict\", \"baseUrl\", \"charset\", \"checkJs\", \"customConditions\", \"declaration\", \"declarationMap\", \"emitDeclarationOnly\", \"declarationDir\", \"disableSizeLimit\", \"disableSourceOfProjectReferenceRedirect\", \"disableSolutionSearching\", \"disableReferencedProjectLoad\", \"downlevelIteration\", \"emitBOM\", \"emitDecoratorMetadata\", \"exactOptionalPropertyTypes\", \"experimentalDecorators\", \"forceConsistentCasingInFileNames\", \"ignoreDeprecations\", \"importHelpers\", \"importsNotUsedAsValues\", \"inlineSourceMap\", \"inlineSources\", \"isolatedModules\", \"isolatedDeclarations\", \"jsx\", \"keyofStringsOnly\", \"lib\", \"libReplacement\", \"locale\", \"mapRoot\", \"maxNodeModuleJsDepth\", \"module\", \"moduleResolution\", \"moduleSuffixes\", \"moduleDetection\", \"newLine\", \"noEmit\", \"noCheck\", \"noEmitHelpers\", \"noEmitOnError\", \"noErrorTruncation\", \"noFallthroughCasesInSwitch\", \"noImplicitAny\", \"noImplicitReturns\", \"noImplicitThis\", \"noStrictGenericChecks\", \"noUnusedLocals\", \"noUnusedParameters\", \"noImplicitUseStrict\", \"noPropertyAccessFromIndexSignature\", \"assumeChangesOnlyAffectDirectDependencies\", \"noLib\", \"noResolve\", \"noUncheckedIndexedAccess\", \"out\", \"outDir\", \"outFile\", \"paths\", \"preserveConstEnums\", \"noImplicitOverride\", \"preserveSymlinks\", \"preserveValueImports\", \"project\", \"reactNamespace\", \"jsxFactory\", \"jsxFragmentFactory\", \"jsxImportSource\", \"composite\", \"incremental\", \"tsBuildInfoFile\", \"removeComments\", \"resolvePackageJsonExports\", \"resolvePackageJsonImports\", \"rewriteRelativeImportExtensions\", \"rootDir\", \"rootDirs\", \"skipLibCheck\", \"skipDefaultLibCheck\", \"sourceMap\", \"sourceRoot\", \"strict\", \"strictFunctionTypes\", \"strictBindCallApply\", \"strictNullChecks\", \"strictPropertyInitialization\", \"strictBuiltinIteratorReturn\", \"stripInternal\", \"suppressExcessPropertyErrors\", \"suppressImplicitAnyIndexErrors\", \"target\", \"traceResolution\", \"useUnknownInCatchVariables\", \"noUncheckedSideEffectImports\", \"resolveJsonModule\", \"types\", \"typeRoots\", \"verbatimModuleSyntax\", \"erasableSyntaxOnly\", \"esModuleInterop\", \"useDefineForClassFields\"].some((prop: any) => key === prop))\n            return true;\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return null === value || undefined === value || \"string\" === typeof value || \"number\" === typeof value || \"boolean\" === typeof value || (Array.isArray(value) && (_ip0(value) || false) || \"object\" === typeof value && null !== value && false === Array.isArray(value) && _io1(value));\n    }); const _io1 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return Array.isArray(value) && value.every((elem: any) => \"string\" === typeof elem);\n    }); const _io2 = (input: any): boolean => \"string\" === typeof input.name; const _io3 = (input: any): boolean => \"string\" === typeof input.path && (undefined === input.originalPath || \"string\" === typeof input.originalPath) && (undefined === input.prepend || \"boolean\" === typeof input.prepend) && (undefined === input.circular || \"boolean\" === typeof input.circular); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.allowImportingTsExtensions || \"boolean\" === typeof input.allowImportingTsExtensions || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowImportingTsExtensions\",\n        expected: \"(boolean | undefined)\",\n        value: input.allowImportingTsExtensions\n    }, _errorFactory)) && (undefined === input.allowJs || \"boolean\" === typeof input.allowJs || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowJs\",\n        expected: \"(boolean | undefined)\",\n        value: input.allowJs\n    }, _errorFactory)) && (undefined === input.allowArbitraryExtensions || \"boolean\" === typeof input.allowArbitraryExtensions || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowArbitraryExtensions\",\n        expected: \"(boolean | undefined)\",\n        value: input.allowArbitraryExtensions\n    }, _errorFactory)) && (undefined === input.allowSyntheticDefaultImports || \"boolean\" === typeof input.allowSyntheticDefaultImports || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowSyntheticDefaultImports\",\n        expected: \"(boolean | undefined)\",\n        value: input.allowSyntheticDefaultImports\n    }, _errorFactory)) && (undefined === input.allowUmdGlobalAccess || \"boolean\" === typeof input.allowUmdGlobalAccess || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowUmdGlobalAccess\",\n        expected: \"(boolean | undefined)\",\n        value: input.allowUmdGlobalAccess\n    }, _errorFactory)) && (undefined === input.allowUnreachableCode || \"boolean\" === typeof input.allowUnreachableCode || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowUnreachableCode\",\n        expected: \"(boolean | undefined)\",\n        value: input.allowUnreachableCode\n    }, _errorFactory)) && (undefined === input.allowUnusedLabels || \"boolean\" === typeof input.allowUnusedLabels || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowUnusedLabels\",\n        expected: \"(boolean | undefined)\",\n        value: input.allowUnusedLabels\n    }, _errorFactory)) && (undefined === input.alwaysStrict || \"boolean\" === typeof input.alwaysStrict || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".alwaysStrict\",\n        expected: \"(boolean | undefined)\",\n        value: input.alwaysStrict\n    }, _errorFactory)) && (undefined === input.baseUrl || \"string\" === typeof input.baseUrl || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".baseUrl\",\n        expected: \"(string | undefined)\",\n        value: input.baseUrl\n    }, _errorFactory)) && (undefined === input.charset || \"string\" === typeof input.charset || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".charset\",\n        expected: \"(string | undefined)\",\n        value: input.charset\n    }, _errorFactory)) && (undefined === input.checkJs || \"boolean\" === typeof input.checkJs || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".checkJs\",\n        expected: \"(boolean | undefined)\",\n        value: input.checkJs\n    }, _errorFactory)) && (undefined === input.customConditions || (Array.isArray(input.customConditions) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".customConditions\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.customConditions\n    }, _errorFactory)) && input.customConditions.every((elem: any, _index20: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".customConditions[\" + _index20 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".customConditions\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.customConditions\n    }, _errorFactory)) && (undefined === input.declaration || \"boolean\" === typeof input.declaration || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".declaration\",\n        expected: \"(boolean | undefined)\",\n        value: input.declaration\n    }, _errorFactory)) && (undefined === input.declarationMap || \"boolean\" === typeof input.declarationMap || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".declarationMap\",\n        expected: \"(boolean | undefined)\",\n        value: input.declarationMap\n    }, _errorFactory)) && (undefined === input.emitDeclarationOnly || \"boolean\" === typeof input.emitDeclarationOnly || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".emitDeclarationOnly\",\n        expected: \"(boolean | undefined)\",\n        value: input.emitDeclarationOnly\n    }, _errorFactory)) && (undefined === input.declarationDir || \"string\" === typeof input.declarationDir || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".declarationDir\",\n        expected: \"(string | undefined)\",\n        value: input.declarationDir\n    }, _errorFactory)) && (undefined === input.disableSizeLimit || \"boolean\" === typeof input.disableSizeLimit || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".disableSizeLimit\",\n        expected: \"(boolean | undefined)\",\n        value: input.disableSizeLimit\n    }, _errorFactory)) && (undefined === input.disableSourceOfProjectReferenceRedirect || \"boolean\" === typeof input.disableSourceOfProjectReferenceRedirect || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".disableSourceOfProjectReferenceRedirect\",\n        expected: \"(boolean | undefined)\",\n        value: input.disableSourceOfProjectReferenceRedirect\n    }, _errorFactory)) && (undefined === input.disableSolutionSearching || \"boolean\" === typeof input.disableSolutionSearching || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".disableSolutionSearching\",\n        expected: \"(boolean | undefined)\",\n        value: input.disableSolutionSearching\n    }, _errorFactory)) && (undefined === input.disableReferencedProjectLoad || \"boolean\" === typeof input.disableReferencedProjectLoad || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".disableReferencedProjectLoad\",\n        expected: \"(boolean | undefined)\",\n        value: input.disableReferencedProjectLoad\n    }, _errorFactory)) && (undefined === input.downlevelIteration || \"boolean\" === typeof input.downlevelIteration || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".downlevelIteration\",\n        expected: \"(boolean | undefined)\",\n        value: input.downlevelIteration\n    }, _errorFactory)) && (undefined === input.emitBOM || \"boolean\" === typeof input.emitBOM || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".emitBOM\",\n        expected: \"(boolean | undefined)\",\n        value: input.emitBOM\n    }, _errorFactory)) && (undefined === input.emitDecoratorMetadata || \"boolean\" === typeof input.emitDecoratorMetadata || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".emitDecoratorMetadata\",\n        expected: \"(boolean | undefined)\",\n        value: input.emitDecoratorMetadata\n    }, _errorFactory)) && (undefined === input.exactOptionalPropertyTypes || \"boolean\" === typeof input.exactOptionalPropertyTypes || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".exactOptionalPropertyTypes\",\n        expected: \"(boolean | undefined)\",\n        value: input.exactOptionalPropertyTypes\n    }, _errorFactory)) && (undefined === input.experimentalDecorators || \"boolean\" === typeof input.experimentalDecorators || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".experimentalDecorators\",\n        expected: \"(boolean | undefined)\",\n        value: input.experimentalDecorators\n    }, _errorFactory)) && (undefined === input.forceConsistentCasingInFileNames || \"boolean\" === typeof input.forceConsistentCasingInFileNames || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".forceConsistentCasingInFileNames\",\n        expected: \"(boolean | undefined)\",\n        value: input.forceConsistentCasingInFileNames\n    }, _errorFactory)) && (undefined === input.ignoreDeprecations || \"string\" === typeof input.ignoreDeprecations || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".ignoreDeprecations\",\n        expected: \"(string | undefined)\",\n        value: input.ignoreDeprecations\n    }, _errorFactory)) && (undefined === input.importHelpers || \"boolean\" === typeof input.importHelpers || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".importHelpers\",\n        expected: \"(boolean | undefined)\",\n        value: input.importHelpers\n    }, _errorFactory)) && (undefined === input.importsNotUsedAsValues || 0 === input.importsNotUsedAsValues || 1 === input.importsNotUsedAsValues || 2 === input.importsNotUsedAsValues || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".importsNotUsedAsValues\",\n        expected: \"(0 | 1 | 2 | undefined)\",\n        value: input.importsNotUsedAsValues\n    }, _errorFactory)) && (undefined === input.inlineSourceMap || \"boolean\" === typeof input.inlineSourceMap || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".inlineSourceMap\",\n        expected: \"(boolean | undefined)\",\n        value: input.inlineSourceMap\n    }, _errorFactory)) && (undefined === input.inlineSources || \"boolean\" === typeof input.inlineSources || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".inlineSources\",\n        expected: \"(boolean | undefined)\",\n        value: input.inlineSources\n    }, _errorFactory)) && (undefined === input.isolatedModules || \"boolean\" === typeof input.isolatedModules || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".isolatedModules\",\n        expected: \"(boolean | undefined)\",\n        value: input.isolatedModules\n    }, _errorFactory)) && (undefined === input.isolatedDeclarations || \"boolean\" === typeof input.isolatedDeclarations || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".isolatedDeclarations\",\n        expected: \"(boolean | undefined)\",\n        value: input.isolatedDeclarations\n    }, _errorFactory)) && (undefined === input.jsx || true === _av21.has(input.jsx) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".jsx\",\n        expected: \"(\\\"none\\\" | \\\"preserve\\\" | \\\"react\\\" | \\\"react-jsx\\\" | \\\"react-jsxdev\\\" | \\\"react-native\\\" | 0 | 1 | 2 | 3 | 4 | 5 | undefined)\",\n        value: input.jsx\n    }, _errorFactory)) && (undefined === input.keyofStringsOnly || \"boolean\" === typeof input.keyofStringsOnly || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".keyofStringsOnly\",\n        expected: \"(boolean | undefined)\",\n        value: input.keyofStringsOnly\n    }, _errorFactory)) && (undefined === input.lib || (Array.isArray(input.lib) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".lib\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.lib\n    }, _errorFactory)) && input.lib.every((elem: any, _index22: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".lib[\" + _index22 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".lib\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.lib\n    }, _errorFactory)) && (undefined === input.libReplacement || \"boolean\" === typeof input.libReplacement || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".libReplacement\",\n        expected: \"(boolean | undefined)\",\n        value: input.libReplacement\n    }, _errorFactory)) && (undefined === input.locale || \"string\" === typeof input.locale || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".locale\",\n        expected: \"(string | undefined)\",\n        value: input.locale\n    }, _errorFactory)) && (undefined === input.mapRoot || \"string\" === typeof input.mapRoot || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".mapRoot\",\n        expected: \"(string | undefined)\",\n        value: input.mapRoot\n    }, _errorFactory)) && (undefined === input.maxNodeModuleJsDepth || \"number\" === typeof input.maxNodeModuleJsDepth || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".maxNodeModuleJsDepth\",\n        expected: \"(number | undefined)\",\n        value: input.maxNodeModuleJsDepth\n    }, _errorFactory)) && (undefined === input[\"module\"] || true === _av23.has(input[\"module\"]) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \"[\\\"module\\\"]\",\n        expected: \"(\\\"amd\\\" | \\\"commonjs\\\" | \\\"es2015\\\" | \\\"es2020\\\" | \\\"es2022\\\" | \\\"es6\\\" | \\\"esnext\\\" | \\\"node16\\\" | \\\"node18\\\" | \\\"node20\\\" | \\\"nodenext\\\" | \\\"none\\\" | \\\"preserve\\\" | \\\"system\\\" | \\\"umd\\\" | 0 | 1 | 100 | 101 | 102 | 199 | 2 | 200 | 3 | 4 | 5 | 6 | 7 | 99 | undefined)\",\n        value: input[\"module\"]\n    }, _errorFactory)) && (undefined === input.moduleResolution || true === _av24.has(input.moduleResolution) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".moduleResolution\",\n        expected: \"(\\\"bundler\\\" | \\\"classic\\\" | \\\"node\\\" | \\\"node10\\\" | \\\"node16\\\" | \\\"nodenext\\\" | 1 | 100 | 2 | 3 | 99 | undefined)\",\n        value: input.moduleResolution\n    }, _errorFactory)) && (undefined === input.moduleSuffixes || (Array.isArray(input.moduleSuffixes) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".moduleSuffixes\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.moduleSuffixes\n    }, _errorFactory)) && input.moduleSuffixes.every((elem: any, _index25: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".moduleSuffixes[\" + _index25 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".moduleSuffixes\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.moduleSuffixes\n    }, _errorFactory)) && (undefined === input.moduleDetection || 1 === input.moduleDetection || 2 === input.moduleDetection || 3 === input.moduleDetection || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".moduleDetection\",\n        expected: \"(1 | 2 | 3 | undefined)\",\n        value: input.moduleDetection\n    }, _errorFactory)) && (undefined === input.newLine || \"Crlf\" === input.newLine || \"Lf\" === input.newLine || 0 === input.newLine || 1 === input.newLine || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".newLine\",\n        expected: \"(\\\"Crlf\\\" | \\\"Lf\\\" | 0 | 1 | undefined)\",\n        value: input.newLine\n    }, _errorFactory)) && (undefined === input.noEmit || \"boolean\" === typeof input.noEmit || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noEmit\",\n        expected: \"(boolean | undefined)\",\n        value: input.noEmit\n    }, _errorFactory)) && (undefined === input.noCheck || \"boolean\" === typeof input.noCheck || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noCheck\",\n        expected: \"(boolean | undefined)\",\n        value: input.noCheck\n    }, _errorFactory)) && (undefined === input.noEmitHelpers || \"boolean\" === typeof input.noEmitHelpers || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noEmitHelpers\",\n        expected: \"(boolean | undefined)\",\n        value: input.noEmitHelpers\n    }, _errorFactory)) && (undefined === input.noEmitOnError || \"boolean\" === typeof input.noEmitOnError || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noEmitOnError\",\n        expected: \"(boolean | undefined)\",\n        value: input.noEmitOnError\n    }, _errorFactory)) && (undefined === input.noErrorTruncation || \"boolean\" === typeof input.noErrorTruncation || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noErrorTruncation\",\n        expected: \"(boolean | undefined)\",\n        value: input.noErrorTruncation\n    }, _errorFactory)) && (undefined === input.noFallthroughCasesInSwitch || \"boolean\" === typeof input.noFallthroughCasesInSwitch || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noFallthroughCasesInSwitch\",\n        expected: \"(boolean | undefined)\",\n        value: input.noFallthroughCasesInSwitch\n    }, _errorFactory)) && (undefined === input.noImplicitAny || \"boolean\" === typeof input.noImplicitAny || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noImplicitAny\",\n        expected: \"(boolean | undefined)\",\n        value: input.noImplicitAny\n    }, _errorFactory)) && (undefined === input.noImplicitReturns || \"boolean\" === typeof input.noImplicitReturns || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noImplicitReturns\",\n        expected: \"(boolean | undefined)\",\n        value: input.noImplicitReturns\n    }, _errorFactory)) && (undefined === input.noImplicitThis || \"boolean\" === typeof input.noImplicitThis || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noImplicitThis\",\n        expected: \"(boolean | undefined)\",\n        value: input.noImplicitThis\n    }, _errorFactory)) && (undefined === input.noStrictGenericChecks || \"boolean\" === typeof input.noStrictGenericChecks || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noStrictGenericChecks\",\n        expected: \"(boolean | undefined)\",\n        value: input.noStrictGenericChecks\n    }, _errorFactory)) && (undefined === input.noUnusedLocals || \"boolean\" === typeof input.noUnusedLocals || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noUnusedLocals\",\n        expected: \"(boolean | undefined)\",\n        value: input.noUnusedLocals\n    }, _errorFactory)) && (undefined === input.noUnusedParameters || \"boolean\" === typeof input.noUnusedParameters || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noUnusedParameters\",\n        expected: \"(boolean | undefined)\",\n        value: input.noUnusedParameters\n    }, _errorFactory)) && (undefined === input.noImplicitUseStrict || \"boolean\" === typeof input.noImplicitUseStrict || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noImplicitUseStrict\",\n        expected: \"(boolean | undefined)\",\n        value: input.noImplicitUseStrict\n    }, _errorFactory)) && (undefined === input.noPropertyAccessFromIndexSignature || \"boolean\" === typeof input.noPropertyAccessFromIndexSignature || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noPropertyAccessFromIndexSignature\",\n        expected: \"(boolean | undefined)\",\n        value: input.noPropertyAccessFromIndexSignature\n    }, _errorFactory)) && (undefined === input.assumeChangesOnlyAffectDirectDependencies || \"boolean\" === typeof input.assumeChangesOnlyAffectDirectDependencies || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".assumeChangesOnlyAffectDirectDependencies\",\n        expected: \"(boolean | undefined)\",\n        value: input.assumeChangesOnlyAffectDirectDependencies\n    }, _errorFactory)) && (undefined === input.noLib || \"boolean\" === typeof input.noLib || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noLib\",\n        expected: \"(boolean | undefined)\",\n        value: input.noLib\n    }, _errorFactory)) && (undefined === input.noResolve || \"boolean\" === typeof input.noResolve || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noResolve\",\n        expected: \"(boolean | undefined)\",\n        value: input.noResolve\n    }, _errorFactory)) && (undefined === input.noUncheckedIndexedAccess || \"boolean\" === typeof input.noUncheckedIndexedAccess || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noUncheckedIndexedAccess\",\n        expected: \"(boolean | undefined)\",\n        value: input.noUncheckedIndexedAccess\n    }, _errorFactory)) && (undefined === input.out || \"string\" === typeof input.out || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".out\",\n        expected: \"(string | undefined)\",\n        value: input.out\n    }, _errorFactory)) && (undefined === input.outDir || \"string\" === typeof input.outDir || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".outDir\",\n        expected: \"(string | undefined)\",\n        value: input.outDir\n    }, _errorFactory)) && (undefined === input.outFile || \"string\" === typeof input.outFile || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".outFile\",\n        expected: \"(string | undefined)\",\n        value: input.outFile\n    }, _errorFactory)) && (undefined === input.paths || (\"object\" === typeof input.paths && null !== input.paths && false === Array.isArray(input.paths) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".paths\",\n        expected: \"(ts.MapLike<Array<string>> | undefined)\",\n        value: input.paths\n    }, _errorFactory)) && _ao1(input.paths, _path + \".paths\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".paths\",\n        expected: \"(ts.MapLike<Array<string>> | undefined)\",\n        value: input.paths\n    }, _errorFactory)) && (undefined === input.preserveConstEnums || \"boolean\" === typeof input.preserveConstEnums || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".preserveConstEnums\",\n        expected: \"(boolean | undefined)\",\n        value: input.preserveConstEnums\n    }, _errorFactory)) && (undefined === input.noImplicitOverride || \"boolean\" === typeof input.noImplicitOverride || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noImplicitOverride\",\n        expected: \"(boolean | undefined)\",\n        value: input.noImplicitOverride\n    }, _errorFactory)) && (undefined === input.preserveSymlinks || \"boolean\" === typeof input.preserveSymlinks || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".preserveSymlinks\",\n        expected: \"(boolean | undefined)\",\n        value: input.preserveSymlinks\n    }, _errorFactory)) && (undefined === input.preserveValueImports || \"boolean\" === typeof input.preserveValueImports || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".preserveValueImports\",\n        expected: \"(boolean | undefined)\",\n        value: input.preserveValueImports\n    }, _errorFactory)) && (undefined === input.project || \"string\" === typeof input.project || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".project\",\n        expected: \"(string | undefined)\",\n        value: input.project\n    }, _errorFactory)) && (undefined === input.reactNamespace || \"string\" === typeof input.reactNamespace || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".reactNamespace\",\n        expected: \"(string | undefined)\",\n        value: input.reactNamespace\n    }, _errorFactory)) && (undefined === input.jsxFactory || \"string\" === typeof input.jsxFactory || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".jsxFactory\",\n        expected: \"(string | undefined)\",\n        value: input.jsxFactory\n    }, _errorFactory)) && (undefined === input.jsxFragmentFactory || \"string\" === typeof input.jsxFragmentFactory || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".jsxFragmentFactory\",\n        expected: \"(string | undefined)\",\n        value: input.jsxFragmentFactory\n    }, _errorFactory)) && (undefined === input.jsxImportSource || \"string\" === typeof input.jsxImportSource || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".jsxImportSource\",\n        expected: \"(string | undefined)\",\n        value: input.jsxImportSource\n    }, _errorFactory)) && (undefined === input.composite || \"boolean\" === typeof input.composite || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".composite\",\n        expected: \"(boolean | undefined)\",\n        value: input.composite\n    }, _errorFactory)) && (undefined === input.incremental || \"boolean\" === typeof input.incremental || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".incremental\",\n        expected: \"(boolean | undefined)\",\n        value: input.incremental\n    }, _errorFactory)) && (undefined === input.tsBuildInfoFile || \"string\" === typeof input.tsBuildInfoFile || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".tsBuildInfoFile\",\n        expected: \"(string | undefined)\",\n        value: input.tsBuildInfoFile\n    }, _errorFactory)) && (undefined === input.removeComments || \"boolean\" === typeof input.removeComments || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".removeComments\",\n        expected: \"(boolean | undefined)\",\n        value: input.removeComments\n    }, _errorFactory)) && (undefined === input.resolvePackageJsonExports || \"boolean\" === typeof input.resolvePackageJsonExports || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolvePackageJsonExports\",\n        expected: \"(boolean | undefined)\",\n        value: input.resolvePackageJsonExports\n    }, _errorFactory)) && (undefined === input.resolvePackageJsonImports || \"boolean\" === typeof input.resolvePackageJsonImports || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolvePackageJsonImports\",\n        expected: \"(boolean | undefined)\",\n        value: input.resolvePackageJsonImports\n    }, _errorFactory)) && (undefined === input.rewriteRelativeImportExtensions || \"boolean\" === typeof input.rewriteRelativeImportExtensions || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".rewriteRelativeImportExtensions\",\n        expected: \"(boolean | undefined)\",\n        value: input.rewriteRelativeImportExtensions\n    }, _errorFactory)) && (undefined === input.rootDir || \"string\" === typeof input.rootDir || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".rootDir\",\n        expected: \"(string | undefined)\",\n        value: input.rootDir\n    }, _errorFactory)) && (undefined === input.rootDirs || (Array.isArray(input.rootDirs) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".rootDirs\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.rootDirs\n    }, _errorFactory)) && input.rootDirs.every((elem: any, _index26: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".rootDirs[\" + _index26 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".rootDirs\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.rootDirs\n    }, _errorFactory)) && (undefined === input.skipLibCheck || \"boolean\" === typeof input.skipLibCheck || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".skipLibCheck\",\n        expected: \"(boolean | undefined)\",\n        value: input.skipLibCheck\n    }, _errorFactory)) && (undefined === input.skipDefaultLibCheck || \"boolean\" === typeof input.skipDefaultLibCheck || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".skipDefaultLibCheck\",\n        expected: \"(boolean | undefined)\",\n        value: input.skipDefaultLibCheck\n    }, _errorFactory)) && (undefined === input.sourceMap || \"boolean\" === typeof input.sourceMap || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".sourceMap\",\n        expected: \"(boolean | undefined)\",\n        value: input.sourceMap\n    }, _errorFactory)) && (undefined === input.sourceRoot || \"string\" === typeof input.sourceRoot || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".sourceRoot\",\n        expected: \"(string | undefined)\",\n        value: input.sourceRoot\n    }, _errorFactory)) && (undefined === input.strict || \"boolean\" === typeof input.strict || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".strict\",\n        expected: \"(boolean | undefined)\",\n        value: input.strict\n    }, _errorFactory)) && (undefined === input.strictFunctionTypes || \"boolean\" === typeof input.strictFunctionTypes || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".strictFunctionTypes\",\n        expected: \"(boolean | undefined)\",\n        value: input.strictFunctionTypes\n    }, _errorFactory)) && (undefined === input.strictBindCallApply || \"boolean\" === typeof input.strictBindCallApply || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".strictBindCallApply\",\n        expected: \"(boolean | undefined)\",\n        value: input.strictBindCallApply\n    }, _errorFactory)) && (undefined === input.strictNullChecks || \"boolean\" === typeof input.strictNullChecks || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".strictNullChecks\",\n        expected: \"(boolean | undefined)\",\n        value: input.strictNullChecks\n    }, _errorFactory)) && (undefined === input.strictPropertyInitialization || \"boolean\" === typeof input.strictPropertyInitialization || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".strictPropertyInitialization\",\n        expected: \"(boolean | undefined)\",\n        value: input.strictPropertyInitialization\n    }, _errorFactory)) && (undefined === input.strictBuiltinIteratorReturn || \"boolean\" === typeof input.strictBuiltinIteratorReturn || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".strictBuiltinIteratorReturn\",\n        expected: \"(boolean | undefined)\",\n        value: input.strictBuiltinIteratorReturn\n    }, _errorFactory)) && (undefined === input.stripInternal || \"boolean\" === typeof input.stripInternal || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".stripInternal\",\n        expected: \"(boolean | undefined)\",\n        value: input.stripInternal\n    }, _errorFactory)) && (undefined === input.suppressExcessPropertyErrors || \"boolean\" === typeof input.suppressExcessPropertyErrors || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".suppressExcessPropertyErrors\",\n        expected: \"(boolean | undefined)\",\n        value: input.suppressExcessPropertyErrors\n    }, _errorFactory)) && (undefined === input.suppressImplicitAnyIndexErrors || \"boolean\" === typeof input.suppressImplicitAnyIndexErrors || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".suppressImplicitAnyIndexErrors\",\n        expected: \"(boolean | undefined)\",\n        value: input.suppressImplicitAnyIndexErrors\n    }, _errorFactory)) && (undefined === input.target || true === _av27.has(input.target) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".target\",\n        expected: \"(\\\"es2015\\\" | \\\"es2016\\\" | \\\"es2017\\\" | \\\"es2018\\\" | \\\"es2019\\\" | \\\"es2020\\\" | \\\"es2021\\\" | \\\"es2022\\\" | \\\"es2023\\\" | \\\"es2024\\\" | \\\"es3\\\" | \\\"es5\\\" | \\\"es6\\\" | \\\"esnext\\\" | \\\"json\\\" | 0 | 1 | 10 | 100 | 11 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 99 | undefined)\",\n        value: input.target\n    }, _errorFactory)) && (undefined === input.traceResolution || \"boolean\" === typeof input.traceResolution || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".traceResolution\",\n        expected: \"(boolean | undefined)\",\n        value: input.traceResolution\n    }, _errorFactory)) && (undefined === input.useUnknownInCatchVariables || \"boolean\" === typeof input.useUnknownInCatchVariables || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".useUnknownInCatchVariables\",\n        expected: \"(boolean | undefined)\",\n        value: input.useUnknownInCatchVariables\n    }, _errorFactory)) && (undefined === input.noUncheckedSideEffectImports || \"boolean\" === typeof input.noUncheckedSideEffectImports || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noUncheckedSideEffectImports\",\n        expected: \"(boolean | undefined)\",\n        value: input.noUncheckedSideEffectImports\n    }, _errorFactory)) && (undefined === input.resolveJsonModule || \"boolean\" === typeof input.resolveJsonModule || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolveJsonModule\",\n        expected: \"(boolean | undefined)\",\n        value: input.resolveJsonModule\n    }, _errorFactory)) && (undefined === input.types || (Array.isArray(input.types) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".types\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.types\n    }, _errorFactory)) && input.types.every((elem: any, _index28: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".types[\" + _index28 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".types\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.types\n    }, _errorFactory)) && (undefined === input.typeRoots || (Array.isArray(input.typeRoots) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".typeRoots\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.typeRoots\n    }, _errorFactory)) && input.typeRoots.every((elem: any, _index29: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".typeRoots[\" + _index29 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".typeRoots\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.typeRoots\n    }, _errorFactory)) && (undefined === input.verbatimModuleSyntax || \"boolean\" === typeof input.verbatimModuleSyntax || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".verbatimModuleSyntax\",\n        expected: \"(boolean | undefined)\",\n        value: input.verbatimModuleSyntax\n    }, _errorFactory)) && (undefined === input.erasableSyntaxOnly || \"boolean\" === typeof input.erasableSyntaxOnly || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".erasableSyntaxOnly\",\n        expected: \"(boolean | undefined)\",\n        value: input.erasableSyntaxOnly\n    }, _errorFactory)) && (undefined === input.esModuleInterop || \"boolean\" === typeof input.esModuleInterop || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".esModuleInterop\",\n        expected: \"(boolean | undefined)\",\n        value: input.esModuleInterop\n    }, _errorFactory)) && (undefined === input.useDefineForClassFields || \"boolean\" === typeof input.useDefineForClassFields || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".useDefineForClassFields\",\n        expected: \"(boolean | undefined)\",\n        value: input.useDefineForClassFields\n    }, _errorFactory)) && (false === _exceptionable || Object.keys(input).every((key: any) => {\n        if ([\"allowImportingTsExtensions\", \"allowJs\", \"allowArbitraryExtensions\", \"allowSyntheticDefaultImports\", \"allowUmdGlobalAccess\", \"allowUnreachableCode\", \"allowUnusedLabels\", \"alwaysStrict\", \"baseUrl\", \"charset\", \"checkJs\", \"customConditions\", \"declaration\", \"declarationMap\", \"emitDeclarationOnly\", \"declarationDir\", \"disableSizeLimit\", \"disableSourceOfProjectReferenceRedirect\", \"disableSolutionSearching\", \"disableReferencedProjectLoad\", \"downlevelIteration\", \"emitBOM\", \"emitDecoratorMetadata\", \"exactOptionalPropertyTypes\", \"experimentalDecorators\", \"forceConsistentCasingInFileNames\", \"ignoreDeprecations\", \"importHelpers\", \"importsNotUsedAsValues\", \"inlineSourceMap\", \"inlineSources\", \"isolatedModules\", \"isolatedDeclarations\", \"jsx\", \"keyofStringsOnly\", \"lib\", \"libReplacement\", \"locale\", \"mapRoot\", \"maxNodeModuleJsDepth\", \"module\", \"moduleResolution\", \"moduleSuffixes\", \"moduleDetection\", \"newLine\", \"noEmit\", \"noCheck\", \"noEmitHelpers\", \"noEmitOnError\", \"noErrorTruncation\", \"noFallthroughCasesInSwitch\", \"noImplicitAny\", \"noImplicitReturns\", \"noImplicitThis\", \"noStrictGenericChecks\", \"noUnusedLocals\", \"noUnusedParameters\", \"noImplicitUseStrict\", \"noPropertyAccessFromIndexSignature\", \"assumeChangesOnlyAffectDirectDependencies\", \"noLib\", \"noResolve\", \"noUncheckedIndexedAccess\", \"out\", \"outDir\", \"outFile\", \"paths\", \"preserveConstEnums\", \"noImplicitOverride\", \"preserveSymlinks\", \"preserveValueImports\", \"project\", \"reactNamespace\", \"jsxFactory\", \"jsxFragmentFactory\", \"jsxImportSource\", \"composite\", \"incremental\", \"tsBuildInfoFile\", \"removeComments\", \"resolvePackageJsonExports\", \"resolvePackageJsonImports\", \"rewriteRelativeImportExtensions\", \"rootDir\", \"rootDirs\", \"skipLibCheck\", \"skipDefaultLibCheck\", \"sourceMap\", \"sourceRoot\", \"strict\", \"strictFunctionTypes\", \"strictBindCallApply\", \"strictNullChecks\", \"strictPropertyInitialization\", \"strictBuiltinIteratorReturn\", \"stripInternal\", \"suppressExcessPropertyErrors\", \"suppressImplicitAnyIndexErrors\", \"target\", \"traceResolution\", \"useUnknownInCatchVariables\", \"noUncheckedSideEffectImports\", \"resolveJsonModule\", \"types\", \"typeRoots\", \"verbatimModuleSyntax\", \"erasableSyntaxOnly\", \"esModuleInterop\", \"useDefineForClassFields\"].some((prop: any) => key === prop))\n            return true;\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return null === value || undefined === value || \"string\" === typeof value || \"number\" === typeof value || \"boolean\" === typeof value || (Array.isArray(value) && (_ap1(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"Array<string | number> | Array<string> | Array<ts.PluginImport> | Array<ts.ProjectReference>\",\n            value: value\n        }, _errorFactory)) || \"object\" === typeof value && null !== value && false === Array.isArray(value) && _ao1(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(Array<string | number> | Array<string> | Array<ts.PluginImport> | Array<ts.ProjectReference> | boolean | null | number | string | ts.MapLike<Array<string>> | undefined)\",\n            value: value\n        }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(Array<string | number> | Array<string> | Array<ts.PluginImport> | Array<ts.ProjectReference> | boolean | null | number | string | ts.MapLike<Array<string>> | undefined)\",\n            value: value\n        }, _errorFactory);\n    })); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (Array.isArray(value) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"Array<string>\",\n            value: value\n        }, _errorFactory)) && value.every((elem: any, _index38: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key) + \"[\" + _index38 + \"]\",\n            expected: \"string\",\n            value: elem\n        }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"Array<string>\",\n            value: value\n        }, _errorFactory);\n    }); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory); const _ao3 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.path || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".path\",\n        expected: \"string\",\n        value: input.path\n    }, _errorFactory)) && (undefined === input.originalPath || \"string\" === typeof input.originalPath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".originalPath\",\n        expected: \"(string | undefined)\",\n        value: input.originalPath\n    }, _errorFactory)) && (undefined === input.prepend || \"boolean\" === typeof input.prepend || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".prepend\",\n        expected: \"(boolean | undefined)\",\n        value: input.prepend\n    }, _errorFactory)) && (undefined === input.circular || \"boolean\" === typeof input.circular || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".circular\",\n        expected: \"(boolean | undefined)\",\n        value: input.circular\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"unstable_getCodeFileTypecheck2\"]> => Array.isArray(input) && (2 <= input.length && 3 >= input.length && \"string\" === typeof input[0] && \"string\" === typeof input[1] && (undefined === input[2] || \"object\" === typeof input[2] && null !== input[2] && false === Array.isArray(input[2]) && _io0(input[2]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"unstable_getCodeFileTypecheck2\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[fileName: string, content: string, compilerOptions?: ChangePropertyTypes<ChangeStringIndexSignature<CompilerOptions, CompilerOptionsValue>, { jsx: ts.server.protocol.JsxEmit | ts.JsxEmit; module: ts.server.protocol.ModuleKind | ts.ModuleKind; moduleResolution: ts.server.protocol.ModuleResolutionKind | ts.ModuleReso...\",\n                value: input\n            }, _errorFactory)) && ((2 <= input.length && 3 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, (ts.server.protocol.ChangePropertyTypes<ts.server.protocol.ChangeStringIndexSignature<ts.CompilerOptions, ts.CompilerOptionsValue>, __type> | undefined)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && (undefined === input[2] || (\"object\" === typeof input[2] && null !== input[2] && false === Array.isArray(input[2]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"(ts.server.protocol.ChangePropertyTypes<ts.server.protocol.ChangeStringIndexSignature<ts.CompilerOptions, ts.CompilerOptionsValue>, __type> | undefined)\",\n                value: input[2]\n            }, _errorFactory)) && _ao0(input[2], _path + \"[2]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"(ts.server.protocol.ChangePropertyTypes<ts.server.protocol.ChangeStringIndexSignature<ts.CompilerOptions, ts.CompilerOptionsValue>, __type> | undefined)\",\n                value: input[2]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[fileName: string, content: string, compilerOptions?: ChangePropertyTypes<ChangeStringIndexSignature<CompilerOptions, CompilerOptionsValue>, { jsx: ts.server.protocol.JsxEmit | ts.JsxEmit; module: ts.server.protocol.ModuleKind | ts.ModuleKind; moduleResolution: ts.server.protocol.ModuleResolutionKind | ts.ModuleReso...\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    // END REMOVE\n    createCodeFile: (() => { const _io0 = (input: any): boolean => undefined === input.editViaPlugin || \"boolean\" === typeof input.editViaPlugin; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.editViaPlugin || \"boolean\" === typeof input.editViaPlugin || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".editViaPlugin\",\n        expected: \"(boolean | undefined)\",\n        value: input.editViaPlugin\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"createCodeFile\"]> => Array.isArray(input) && (2 <= input.length && 3 >= input.length && \"string\" === typeof input[0] && \"string\" === typeof input[1] && (undefined === input[2] || \"object\" === typeof input[2] && null !== input[2] && false === Array.isArray(input[2]) && _io0(input[2]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"createCodeFile\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[name: string, code: string, options?: { editViaPlugin?: boolean | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory)) && ((2 <= input.length && 3 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, (__type | undefined)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && (undefined === input[2] || (\"object\" === typeof input[2] && null !== input[2] && false === Array.isArray(input[2]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"(__type | undefined)\",\n                value: input[2]\n            }, _errorFactory)) && _ao0(input[2], _path + \"[2]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"(__type | undefined)\",\n                value: input[2]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[name: string, code: string, options?: { editViaPlugin?: boolean | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getCodeFiles: noArguments,\n    getCodeFile: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getCodeFile\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getCodeFile\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[idOrPath: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[idOrPath: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setCodeFileContent: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"setCodeFileContent\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && \"string\" === typeof input[1]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setCodeFileContent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, code: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, code: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    removeCodeFile: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"removeCodeFile\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"removeCodeFile\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    renameCodeFile: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"renameCodeFile\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && \"string\" === typeof input[1]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"renameCodeFile\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, newName: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, newName: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getCodeFileVersions: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getCodeFileVersions\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getCodeFileVersions\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getCodeFileVersionContent: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getCodeFileVersionContent\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && \"string\" === typeof input[1]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getCodeFileVersionContent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[fileId: string, versionId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[fileId: string, versionId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    typecheckCode: (() => { const _iv2 = new Set([\"none\", \"preserve\", \"react-native\", \"react\", \"react-jsx\", \"react-jsxdev\", 0, 1, 2, 3, 4, 5]); const _iv4 = new Set([\"none\", \"commonjs\", \"amd\", \"umd\", \"system\", \"es6\", \"es2015\", \"es2020\", \"es2022\", \"esnext\", \"node16\", \"node18\", \"node20\", \"nodenext\", \"preserve\", 0, 1, 2, 3, 4, 5, 6, 7, 99, 100, 101, 102, 199, 200]); const _iv5 = new Set([\"classic\", \"node\", \"node10\", \"node16\", \"nodenext\", \"bundler\", 1, 2, 3, 99, 100]); const _iv8 = new Set([\"es3\", \"es5\", \"es6\", \"es2015\", \"es2016\", \"es2017\", \"es2018\", \"es2019\", \"es2020\", \"es2021\", \"es2022\", \"es2023\", \"es2024\", \"esnext\", \"json\", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 99, 100]); const _av21 = new Set([\"none\", \"preserve\", \"react-native\", \"react\", \"react-jsx\", \"react-jsxdev\", 0, 1, 2, 3, 4, 5]); const _av23 = new Set([\"none\", \"commonjs\", \"amd\", \"umd\", \"system\", \"es6\", \"es2015\", \"es2020\", \"es2022\", \"esnext\", \"node16\", \"node18\", \"node20\", \"nodenext\", \"preserve\", 0, 1, 2, 3, 4, 5, 6, 7, 99, 100, 101, 102, 199, 200]); const _av24 = new Set([\"classic\", \"node\", \"node10\", \"node16\", \"nodenext\", \"bundler\", 1, 2, 3, 99, 100]); const _av27 = new Set([\"es3\", \"es5\", \"es6\", \"es2015\", \"es2016\", \"es2017\", \"es2018\", \"es2019\", \"es2020\", \"es2021\", \"es2022\", \"es2023\", \"es2024\", \"esnext\", \"json\", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 99, 100]); const _ip0 = (input: any) => {\n        const array = input;\n        const top = input[0];\n        if (0 === input.length)\n            return true;\n        const arrayPredicators = [\n            [\n                (top: any[]): any => \"string\" === typeof top || \"number\" === typeof top,\n                (entire: any[]): any => entire.every((elem: any) => \"string\" === typeof elem || \"number\" === typeof elem)\n            ] as const,\n            [\n                (top: any[]): any => \"string\" === typeof top,\n                (entire: any[]): any => entire.every((elem: any) => \"string\" === typeof elem)\n            ] as const,\n            [\n                (top: any[]): any => \"object\" === typeof top && null !== top && _io2(top),\n                (entire: any[]): any => entire.every((elem: any) => \"object\" === typeof elem && null !== elem && _io2(elem))\n            ] as const,\n            [\n                (top: any[]): any => \"object\" === typeof top && null !== top && _io3(top),\n                (entire: any[]): any => entire.every((elem: any) => \"object\" === typeof elem && null !== elem && _io3(elem))\n            ] as const\n        ];\n        const passed = arrayPredicators.filter((pred: any) => pred[0](top));\n        if (1 === passed.length)\n            return passed[0]![1](array);\n        else if (1 < passed.length)\n            for (const pred of passed)\n                if (array.every((value: any) => true === pred[0](value)))\n                    return pred[1](array);\n        return false;\n    }; const _ap1 = (input: any, _path: string, _exceptionable: boolean = true) => {\n        const array = input;\n        const top = input[0];\n        if (0 === input.length)\n            return true;\n        const arrayPredicators = [\n            [\n                (top: any[]): any => \"string\" === typeof top || \"number\" === typeof top,\n                (entire: any[]): any => entire.every((elem: any, _index34: number) => \"string\" === typeof elem || \"number\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                    method: \"typia.createAssert\",\n                    path: _path + \"[\" + _index34 + \"]\",\n                    expected: \"(number | string)\",\n                    value: elem\n                }, _errorFactory))\n            ] as const,\n            [\n                (top: any[]): any => \"string\" === typeof top,\n                (entire: any[]): any => entire.every((elem: any, _index35: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                    method: \"typia.createAssert\",\n                    path: _path + \"[\" + _index35 + \"]\",\n                    expected: \"string\",\n                    value: elem\n                }, _errorFactory))\n            ] as const,\n            [\n                (top: any[]): any => \"object\" === typeof top && null !== top && _ao2(top, _path, false && _exceptionable),\n                (entire: any[]): any => entire.every((elem: any, _index36: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                    method: \"typia.createAssert\",\n                    path: _path + \"[\" + _index36 + \"]\",\n                    expected: \"ts.PluginImport\",\n                    value: elem\n                }, _errorFactory)) && _ao2(elem, _path + \"[\" + _index36 + \"]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                    method: \"typia.createAssert\",\n                    path: _path + \"[\" + _index36 + \"]\",\n                    expected: \"ts.PluginImport\",\n                    value: elem\n                }, _errorFactory))\n            ] as const,\n            [\n                (top: any[]): any => \"object\" === typeof top && null !== top && _ao3(top, _path, false && _exceptionable),\n                (entire: any[]): any => entire.every((elem: any, _index37: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                    method: \"typia.createAssert\",\n                    path: _path + \"[\" + _index37 + \"]\",\n                    expected: \"ts.ProjectReference\",\n                    value: elem\n                }, _errorFactory)) && _ao3(elem, _path + \"[\" + _index37 + \"]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                    method: \"typia.createAssert\",\n                    path: _path + \"[\" + _index37 + \"]\",\n                    expected: \"ts.ProjectReference\",\n                    value: elem\n                }, _errorFactory))\n            ] as const\n        ];\n        const passed = arrayPredicators.filter((pred: any) => pred[0](top));\n        if (1 === passed.length)\n            return passed[0]![1](array);\n        else if (1 < passed.length)\n            for (const pred of passed)\n                if (array.every((value: any) => true === pred[0](value)))\n                    return pred[1](array);\n        return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path,\n            expected: \"(Array<string | number> | Array<string> | Array<ts.PluginImport> | Array<ts.ProjectReference>)\",\n            value: input\n        }, _errorFactory);\n    }; const _io0 = (input: any): boolean => (undefined === input.allowImportingTsExtensions || \"boolean\" === typeof input.allowImportingTsExtensions) && (undefined === input.allowJs || \"boolean\" === typeof input.allowJs) && (undefined === input.allowArbitraryExtensions || \"boolean\" === typeof input.allowArbitraryExtensions) && (undefined === input.allowSyntheticDefaultImports || \"boolean\" === typeof input.allowSyntheticDefaultImports) && (undefined === input.allowUmdGlobalAccess || \"boolean\" === typeof input.allowUmdGlobalAccess) && (undefined === input.allowUnreachableCode || \"boolean\" === typeof input.allowUnreachableCode) && (undefined === input.allowUnusedLabels || \"boolean\" === typeof input.allowUnusedLabels) && (undefined === input.alwaysStrict || \"boolean\" === typeof input.alwaysStrict) && (undefined === input.baseUrl || \"string\" === typeof input.baseUrl) && (undefined === input.charset || \"string\" === typeof input.charset) && (undefined === input.checkJs || \"boolean\" === typeof input.checkJs) && (undefined === input.customConditions || Array.isArray(input.customConditions) && input.customConditions.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.declaration || \"boolean\" === typeof input.declaration) && (undefined === input.declarationMap || \"boolean\" === typeof input.declarationMap) && (undefined === input.emitDeclarationOnly || \"boolean\" === typeof input.emitDeclarationOnly) && (undefined === input.declarationDir || \"string\" === typeof input.declarationDir) && (undefined === input.disableSizeLimit || \"boolean\" === typeof input.disableSizeLimit) && (undefined === input.disableSourceOfProjectReferenceRedirect || \"boolean\" === typeof input.disableSourceOfProjectReferenceRedirect) && (undefined === input.disableSolutionSearching || \"boolean\" === typeof input.disableSolutionSearching) && (undefined === input.disableReferencedProjectLoad || \"boolean\" === typeof input.disableReferencedProjectLoad) && (undefined === input.downlevelIteration || \"boolean\" === typeof input.downlevelIteration) && (undefined === input.emitBOM || \"boolean\" === typeof input.emitBOM) && (undefined === input.emitDecoratorMetadata || \"boolean\" === typeof input.emitDecoratorMetadata) && (undefined === input.exactOptionalPropertyTypes || \"boolean\" === typeof input.exactOptionalPropertyTypes) && (undefined === input.experimentalDecorators || \"boolean\" === typeof input.experimentalDecorators) && (undefined === input.forceConsistentCasingInFileNames || \"boolean\" === typeof input.forceConsistentCasingInFileNames) && (undefined === input.ignoreDeprecations || \"string\" === typeof input.ignoreDeprecations) && (undefined === input.importHelpers || \"boolean\" === typeof input.importHelpers) && (undefined === input.importsNotUsedAsValues || 0 === input.importsNotUsedAsValues || 1 === input.importsNotUsedAsValues || 2 === input.importsNotUsedAsValues) && (undefined === input.inlineSourceMap || \"boolean\" === typeof input.inlineSourceMap) && (undefined === input.inlineSources || \"boolean\" === typeof input.inlineSources) && (undefined === input.isolatedModules || \"boolean\" === typeof input.isolatedModules) && (undefined === input.isolatedDeclarations || \"boolean\" === typeof input.isolatedDeclarations) && (undefined === input.jsx || true === _iv2.has(input.jsx)) && (undefined === input.keyofStringsOnly || \"boolean\" === typeof input.keyofStringsOnly) && (undefined === input.lib || Array.isArray(input.lib) && input.lib.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.libReplacement || \"boolean\" === typeof input.libReplacement) && (undefined === input.locale || \"string\" === typeof input.locale) && (undefined === input.mapRoot || \"string\" === typeof input.mapRoot) && (undefined === input.maxNodeModuleJsDepth || \"number\" === typeof input.maxNodeModuleJsDepth) && (undefined === input[\"module\"] || true === _iv4.has(input[\"module\"])) && (undefined === input.moduleResolution || true === _iv5.has(input.moduleResolution)) && (undefined === input.moduleSuffixes || Array.isArray(input.moduleSuffixes) && input.moduleSuffixes.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.moduleDetection || 1 === input.moduleDetection || 2 === input.moduleDetection || 3 === input.moduleDetection) && (undefined === input.newLine || \"Crlf\" === input.newLine || \"Lf\" === input.newLine || 0 === input.newLine || 1 === input.newLine) && (undefined === input.noEmit || \"boolean\" === typeof input.noEmit) && (undefined === input.noCheck || \"boolean\" === typeof input.noCheck) && (undefined === input.noEmitHelpers || \"boolean\" === typeof input.noEmitHelpers) && (undefined === input.noEmitOnError || \"boolean\" === typeof input.noEmitOnError) && (undefined === input.noErrorTruncation || \"boolean\" === typeof input.noErrorTruncation) && (undefined === input.noFallthroughCasesInSwitch || \"boolean\" === typeof input.noFallthroughCasesInSwitch) && (undefined === input.noImplicitAny || \"boolean\" === typeof input.noImplicitAny) && (undefined === input.noImplicitReturns || \"boolean\" === typeof input.noImplicitReturns) && (undefined === input.noImplicitThis || \"boolean\" === typeof input.noImplicitThis) && (undefined === input.noStrictGenericChecks || \"boolean\" === typeof input.noStrictGenericChecks) && (undefined === input.noUnusedLocals || \"boolean\" === typeof input.noUnusedLocals) && (undefined === input.noUnusedParameters || \"boolean\" === typeof input.noUnusedParameters) && (undefined === input.noImplicitUseStrict || \"boolean\" === typeof input.noImplicitUseStrict) && (undefined === input.noPropertyAccessFromIndexSignature || \"boolean\" === typeof input.noPropertyAccessFromIndexSignature) && (undefined === input.assumeChangesOnlyAffectDirectDependencies || \"boolean\" === typeof input.assumeChangesOnlyAffectDirectDependencies) && (undefined === input.noLib || \"boolean\" === typeof input.noLib) && (undefined === input.noResolve || \"boolean\" === typeof input.noResolve) && (undefined === input.noUncheckedIndexedAccess || \"boolean\" === typeof input.noUncheckedIndexedAccess) && (undefined === input.out || \"string\" === typeof input.out) && (undefined === input.outDir || \"string\" === typeof input.outDir) && (undefined === input.outFile || \"string\" === typeof input.outFile) && (undefined === input.paths || \"object\" === typeof input.paths && null !== input.paths && false === Array.isArray(input.paths) && _io1(input.paths)) && (undefined === input.preserveConstEnums || \"boolean\" === typeof input.preserveConstEnums) && (undefined === input.noImplicitOverride || \"boolean\" === typeof input.noImplicitOverride) && (undefined === input.preserveSymlinks || \"boolean\" === typeof input.preserveSymlinks) && (undefined === input.preserveValueImports || \"boolean\" === typeof input.preserveValueImports) && (undefined === input.project || \"string\" === typeof input.project) && (undefined === input.reactNamespace || \"string\" === typeof input.reactNamespace) && (undefined === input.jsxFactory || \"string\" === typeof input.jsxFactory) && (undefined === input.jsxFragmentFactory || \"string\" === typeof input.jsxFragmentFactory) && (undefined === input.jsxImportSource || \"string\" === typeof input.jsxImportSource) && (undefined === input.composite || \"boolean\" === typeof input.composite) && (undefined === input.incremental || \"boolean\" === typeof input.incremental) && (undefined === input.tsBuildInfoFile || \"string\" === typeof input.tsBuildInfoFile) && (undefined === input.removeComments || \"boolean\" === typeof input.removeComments) && (undefined === input.resolvePackageJsonExports || \"boolean\" === typeof input.resolvePackageJsonExports) && (undefined === input.resolvePackageJsonImports || \"boolean\" === typeof input.resolvePackageJsonImports) && (undefined === input.rewriteRelativeImportExtensions || \"boolean\" === typeof input.rewriteRelativeImportExtensions) && (undefined === input.rootDir || \"string\" === typeof input.rootDir) && (undefined === input.rootDirs || Array.isArray(input.rootDirs) && input.rootDirs.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.skipLibCheck || \"boolean\" === typeof input.skipLibCheck) && (undefined === input.skipDefaultLibCheck || \"boolean\" === typeof input.skipDefaultLibCheck) && (undefined === input.sourceMap || \"boolean\" === typeof input.sourceMap) && (undefined === input.sourceRoot || \"string\" === typeof input.sourceRoot) && (undefined === input.strict || \"boolean\" === typeof input.strict) && (undefined === input.strictFunctionTypes || \"boolean\" === typeof input.strictFunctionTypes) && (undefined === input.strictBindCallApply || \"boolean\" === typeof input.strictBindCallApply) && (undefined === input.strictNullChecks || \"boolean\" === typeof input.strictNullChecks) && (undefined === input.strictPropertyInitialization || \"boolean\" === typeof input.strictPropertyInitialization) && (undefined === input.strictBuiltinIteratorReturn || \"boolean\" === typeof input.strictBuiltinIteratorReturn) && (undefined === input.stripInternal || \"boolean\" === typeof input.stripInternal) && (undefined === input.suppressExcessPropertyErrors || \"boolean\" === typeof input.suppressExcessPropertyErrors) && (undefined === input.suppressImplicitAnyIndexErrors || \"boolean\" === typeof input.suppressImplicitAnyIndexErrors) && (undefined === input.target || true === _iv8.has(input.target)) && (undefined === input.traceResolution || \"boolean\" === typeof input.traceResolution) && (undefined === input.useUnknownInCatchVariables || \"boolean\" === typeof input.useUnknownInCatchVariables) && (undefined === input.noUncheckedSideEffectImports || \"boolean\" === typeof input.noUncheckedSideEffectImports) && (undefined === input.resolveJsonModule || \"boolean\" === typeof input.resolveJsonModule) && (undefined === input.types || Array.isArray(input.types) && input.types.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.typeRoots || Array.isArray(input.typeRoots) && input.typeRoots.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.verbatimModuleSyntax || \"boolean\" === typeof input.verbatimModuleSyntax) && (undefined === input.erasableSyntaxOnly || \"boolean\" === typeof input.erasableSyntaxOnly) && (undefined === input.esModuleInterop || \"boolean\" === typeof input.esModuleInterop) && (undefined === input.useDefineForClassFields || \"boolean\" === typeof input.useDefineForClassFields) && Object.keys(input).every((key: any) => {\n        if ([\"allowImportingTsExtensions\", \"allowJs\", \"allowArbitraryExtensions\", \"allowSyntheticDefaultImports\", \"allowUmdGlobalAccess\", \"allowUnreachableCode\", \"allowUnusedLabels\", \"alwaysStrict\", \"baseUrl\", \"charset\", \"checkJs\", \"customConditions\", \"declaration\", \"declarationMap\", \"emitDeclarationOnly\", \"declarationDir\", \"disableSizeLimit\", \"disableSourceOfProjectReferenceRedirect\", \"disableSolutionSearching\", \"disableReferencedProjectLoad\", \"downlevelIteration\", \"emitBOM\", \"emitDecoratorMetadata\", \"exactOptionalPropertyTypes\", \"experimentalDecorators\", \"forceConsistentCasingInFileNames\", \"ignoreDeprecations\", \"importHelpers\", \"importsNotUsedAsValues\", \"inlineSourceMap\", \"inlineSources\", \"isolatedModules\", \"isolatedDeclarations\", \"jsx\", \"keyofStringsOnly\", \"lib\", \"libReplacement\", \"locale\", \"mapRoot\", \"maxNodeModuleJsDepth\", \"module\", \"moduleResolution\", \"moduleSuffixes\", \"moduleDetection\", \"newLine\", \"noEmit\", \"noCheck\", \"noEmitHelpers\", \"noEmitOnError\", \"noErrorTruncation\", \"noFallthroughCasesInSwitch\", \"noImplicitAny\", \"noImplicitReturns\", \"noImplicitThis\", \"noStrictGenericChecks\", \"noUnusedLocals\", \"noUnusedParameters\", \"noImplicitUseStrict\", \"noPropertyAccessFromIndexSignature\", \"assumeChangesOnlyAffectDirectDependencies\", \"noLib\", \"noResolve\", \"noUncheckedIndexedAccess\", \"out\", \"outDir\", \"outFile\", \"paths\", \"preserveConstEnums\", \"noImplicitOverride\", \"preserveSymlinks\", \"preserveValueImports\", \"project\", \"reactNamespace\", \"jsxFactory\", \"jsxFragmentFactory\", \"jsxImportSource\", \"composite\", \"incremental\", \"tsBuildInfoFile\", \"removeComments\", \"resolvePackageJsonExports\", \"resolvePackageJsonImports\", \"rewriteRelativeImportExtensions\", \"rootDir\", \"rootDirs\", \"skipLibCheck\", \"skipDefaultLibCheck\", \"sourceMap\", \"sourceRoot\", \"strict\", \"strictFunctionTypes\", \"strictBindCallApply\", \"strictNullChecks\", \"strictPropertyInitialization\", \"strictBuiltinIteratorReturn\", \"stripInternal\", \"suppressExcessPropertyErrors\", \"suppressImplicitAnyIndexErrors\", \"target\", \"traceResolution\", \"useUnknownInCatchVariables\", \"noUncheckedSideEffectImports\", \"resolveJsonModule\", \"types\", \"typeRoots\", \"verbatimModuleSyntax\", \"erasableSyntaxOnly\", \"esModuleInterop\", \"useDefineForClassFields\"].some((prop: any) => key === prop))\n            return true;\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return null === value || undefined === value || \"string\" === typeof value || \"number\" === typeof value || \"boolean\" === typeof value || (Array.isArray(value) && (_ip0(value) || false) || \"object\" === typeof value && null !== value && false === Array.isArray(value) && _io1(value));\n    }); const _io1 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return Array.isArray(value) && value.every((elem: any) => \"string\" === typeof elem);\n    }); const _io2 = (input: any): boolean => \"string\" === typeof input.name; const _io3 = (input: any): boolean => \"string\" === typeof input.path && (undefined === input.originalPath || \"string\" === typeof input.originalPath) && (undefined === input.prepend || \"boolean\" === typeof input.prepend) && (undefined === input.circular || \"boolean\" === typeof input.circular); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.allowImportingTsExtensions || \"boolean\" === typeof input.allowImportingTsExtensions || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowImportingTsExtensions\",\n        expected: \"(boolean | undefined)\",\n        value: input.allowImportingTsExtensions\n    }, _errorFactory)) && (undefined === input.allowJs || \"boolean\" === typeof input.allowJs || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowJs\",\n        expected: \"(boolean | undefined)\",\n        value: input.allowJs\n    }, _errorFactory)) && (undefined === input.allowArbitraryExtensions || \"boolean\" === typeof input.allowArbitraryExtensions || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowArbitraryExtensions\",\n        expected: \"(boolean | undefined)\",\n        value: input.allowArbitraryExtensions\n    }, _errorFactory)) && (undefined === input.allowSyntheticDefaultImports || \"boolean\" === typeof input.allowSyntheticDefaultImports || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowSyntheticDefaultImports\",\n        expected: \"(boolean | undefined)\",\n        value: input.allowSyntheticDefaultImports\n    }, _errorFactory)) && (undefined === input.allowUmdGlobalAccess || \"boolean\" === typeof input.allowUmdGlobalAccess || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowUmdGlobalAccess\",\n        expected: \"(boolean | undefined)\",\n        value: input.allowUmdGlobalAccess\n    }, _errorFactory)) && (undefined === input.allowUnreachableCode || \"boolean\" === typeof input.allowUnreachableCode || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowUnreachableCode\",\n        expected: \"(boolean | undefined)\",\n        value: input.allowUnreachableCode\n    }, _errorFactory)) && (undefined === input.allowUnusedLabels || \"boolean\" === typeof input.allowUnusedLabels || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowUnusedLabels\",\n        expected: \"(boolean | undefined)\",\n        value: input.allowUnusedLabels\n    }, _errorFactory)) && (undefined === input.alwaysStrict || \"boolean\" === typeof input.alwaysStrict || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".alwaysStrict\",\n        expected: \"(boolean | undefined)\",\n        value: input.alwaysStrict\n    }, _errorFactory)) && (undefined === input.baseUrl || \"string\" === typeof input.baseUrl || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".baseUrl\",\n        expected: \"(string | undefined)\",\n        value: input.baseUrl\n    }, _errorFactory)) && (undefined === input.charset || \"string\" === typeof input.charset || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".charset\",\n        expected: \"(string | undefined)\",\n        value: input.charset\n    }, _errorFactory)) && (undefined === input.checkJs || \"boolean\" === typeof input.checkJs || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".checkJs\",\n        expected: \"(boolean | undefined)\",\n        value: input.checkJs\n    }, _errorFactory)) && (undefined === input.customConditions || (Array.isArray(input.customConditions) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".customConditions\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.customConditions\n    }, _errorFactory)) && input.customConditions.every((elem: any, _index20: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".customConditions[\" + _index20 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".customConditions\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.customConditions\n    }, _errorFactory)) && (undefined === input.declaration || \"boolean\" === typeof input.declaration || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".declaration\",\n        expected: \"(boolean | undefined)\",\n        value: input.declaration\n    }, _errorFactory)) && (undefined === input.declarationMap || \"boolean\" === typeof input.declarationMap || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".declarationMap\",\n        expected: \"(boolean | undefined)\",\n        value: input.declarationMap\n    }, _errorFactory)) && (undefined === input.emitDeclarationOnly || \"boolean\" === typeof input.emitDeclarationOnly || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".emitDeclarationOnly\",\n        expected: \"(boolean | undefined)\",\n        value: input.emitDeclarationOnly\n    }, _errorFactory)) && (undefined === input.declarationDir || \"string\" === typeof input.declarationDir || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".declarationDir\",\n        expected: \"(string | undefined)\",\n        value: input.declarationDir\n    }, _errorFactory)) && (undefined === input.disableSizeLimit || \"boolean\" === typeof input.disableSizeLimit || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".disableSizeLimit\",\n        expected: \"(boolean | undefined)\",\n        value: input.disableSizeLimit\n    }, _errorFactory)) && (undefined === input.disableSourceOfProjectReferenceRedirect || \"boolean\" === typeof input.disableSourceOfProjectReferenceRedirect || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".disableSourceOfProjectReferenceRedirect\",\n        expected: \"(boolean | undefined)\",\n        value: input.disableSourceOfProjectReferenceRedirect\n    }, _errorFactory)) && (undefined === input.disableSolutionSearching || \"boolean\" === typeof input.disableSolutionSearching || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".disableSolutionSearching\",\n        expected: \"(boolean | undefined)\",\n        value: input.disableSolutionSearching\n    }, _errorFactory)) && (undefined === input.disableReferencedProjectLoad || \"boolean\" === typeof input.disableReferencedProjectLoad || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".disableReferencedProjectLoad\",\n        expected: \"(boolean | undefined)\",\n        value: input.disableReferencedProjectLoad\n    }, _errorFactory)) && (undefined === input.downlevelIteration || \"boolean\" === typeof input.downlevelIteration || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".downlevelIteration\",\n        expected: \"(boolean | undefined)\",\n        value: input.downlevelIteration\n    }, _errorFactory)) && (undefined === input.emitBOM || \"boolean\" === typeof input.emitBOM || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".emitBOM\",\n        expected: \"(boolean | undefined)\",\n        value: input.emitBOM\n    }, _errorFactory)) && (undefined === input.emitDecoratorMetadata || \"boolean\" === typeof input.emitDecoratorMetadata || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".emitDecoratorMetadata\",\n        expected: \"(boolean | undefined)\",\n        value: input.emitDecoratorMetadata\n    }, _errorFactory)) && (undefined === input.exactOptionalPropertyTypes || \"boolean\" === typeof input.exactOptionalPropertyTypes || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".exactOptionalPropertyTypes\",\n        expected: \"(boolean | undefined)\",\n        value: input.exactOptionalPropertyTypes\n    }, _errorFactory)) && (undefined === input.experimentalDecorators || \"boolean\" === typeof input.experimentalDecorators || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".experimentalDecorators\",\n        expected: \"(boolean | undefined)\",\n        value: input.experimentalDecorators\n    }, _errorFactory)) && (undefined === input.forceConsistentCasingInFileNames || \"boolean\" === typeof input.forceConsistentCasingInFileNames || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".forceConsistentCasingInFileNames\",\n        expected: \"(boolean | undefined)\",\n        value: input.forceConsistentCasingInFileNames\n    }, _errorFactory)) && (undefined === input.ignoreDeprecations || \"string\" === typeof input.ignoreDeprecations || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".ignoreDeprecations\",\n        expected: \"(string | undefined)\",\n        value: input.ignoreDeprecations\n    }, _errorFactory)) && (undefined === input.importHelpers || \"boolean\" === typeof input.importHelpers || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".importHelpers\",\n        expected: \"(boolean | undefined)\",\n        value: input.importHelpers\n    }, _errorFactory)) && (undefined === input.importsNotUsedAsValues || 0 === input.importsNotUsedAsValues || 1 === input.importsNotUsedAsValues || 2 === input.importsNotUsedAsValues || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".importsNotUsedAsValues\",\n        expected: \"(0 | 1 | 2 | undefined)\",\n        value: input.importsNotUsedAsValues\n    }, _errorFactory)) && (undefined === input.inlineSourceMap || \"boolean\" === typeof input.inlineSourceMap || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".inlineSourceMap\",\n        expected: \"(boolean | undefined)\",\n        value: input.inlineSourceMap\n    }, _errorFactory)) && (undefined === input.inlineSources || \"boolean\" === typeof input.inlineSources || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".inlineSources\",\n        expected: \"(boolean | undefined)\",\n        value: input.inlineSources\n    }, _errorFactory)) && (undefined === input.isolatedModules || \"boolean\" === typeof input.isolatedModules || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".isolatedModules\",\n        expected: \"(boolean | undefined)\",\n        value: input.isolatedModules\n    }, _errorFactory)) && (undefined === input.isolatedDeclarations || \"boolean\" === typeof input.isolatedDeclarations || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".isolatedDeclarations\",\n        expected: \"(boolean | undefined)\",\n        value: input.isolatedDeclarations\n    }, _errorFactory)) && (undefined === input.jsx || true === _av21.has(input.jsx) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".jsx\",\n        expected: \"(\\\"none\\\" | \\\"preserve\\\" | \\\"react\\\" | \\\"react-jsx\\\" | \\\"react-jsxdev\\\" | \\\"react-native\\\" | 0 | 1 | 2 | 3 | 4 | 5 | undefined)\",\n        value: input.jsx\n    }, _errorFactory)) && (undefined === input.keyofStringsOnly || \"boolean\" === typeof input.keyofStringsOnly || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".keyofStringsOnly\",\n        expected: \"(boolean | undefined)\",\n        value: input.keyofStringsOnly\n    }, _errorFactory)) && (undefined === input.lib || (Array.isArray(input.lib) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".lib\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.lib\n    }, _errorFactory)) && input.lib.every((elem: any, _index22: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".lib[\" + _index22 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".lib\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.lib\n    }, _errorFactory)) && (undefined === input.libReplacement || \"boolean\" === typeof input.libReplacement || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".libReplacement\",\n        expected: \"(boolean | undefined)\",\n        value: input.libReplacement\n    }, _errorFactory)) && (undefined === input.locale || \"string\" === typeof input.locale || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".locale\",\n        expected: \"(string | undefined)\",\n        value: input.locale\n    }, _errorFactory)) && (undefined === input.mapRoot || \"string\" === typeof input.mapRoot || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".mapRoot\",\n        expected: \"(string | undefined)\",\n        value: input.mapRoot\n    }, _errorFactory)) && (undefined === input.maxNodeModuleJsDepth || \"number\" === typeof input.maxNodeModuleJsDepth || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".maxNodeModuleJsDepth\",\n        expected: \"(number | undefined)\",\n        value: input.maxNodeModuleJsDepth\n    }, _errorFactory)) && (undefined === input[\"module\"] || true === _av23.has(input[\"module\"]) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \"[\\\"module\\\"]\",\n        expected: \"(\\\"amd\\\" | \\\"commonjs\\\" | \\\"es2015\\\" | \\\"es2020\\\" | \\\"es2022\\\" | \\\"es6\\\" | \\\"esnext\\\" | \\\"node16\\\" | \\\"node18\\\" | \\\"node20\\\" | \\\"nodenext\\\" | \\\"none\\\" | \\\"preserve\\\" | \\\"system\\\" | \\\"umd\\\" | 0 | 1 | 100 | 101 | 102 | 199 | 2 | 200 | 3 | 4 | 5 | 6 | 7 | 99 | undefined)\",\n        value: input[\"module\"]\n    }, _errorFactory)) && (undefined === input.moduleResolution || true === _av24.has(input.moduleResolution) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".moduleResolution\",\n        expected: \"(\\\"bundler\\\" | \\\"classic\\\" | \\\"node\\\" | \\\"node10\\\" | \\\"node16\\\" | \\\"nodenext\\\" | 1 | 100 | 2 | 3 | 99 | undefined)\",\n        value: input.moduleResolution\n    }, _errorFactory)) && (undefined === input.moduleSuffixes || (Array.isArray(input.moduleSuffixes) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".moduleSuffixes\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.moduleSuffixes\n    }, _errorFactory)) && input.moduleSuffixes.every((elem: any, _index25: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".moduleSuffixes[\" + _index25 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".moduleSuffixes\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.moduleSuffixes\n    }, _errorFactory)) && (undefined === input.moduleDetection || 1 === input.moduleDetection || 2 === input.moduleDetection || 3 === input.moduleDetection || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".moduleDetection\",\n        expected: \"(1 | 2 | 3 | undefined)\",\n        value: input.moduleDetection\n    }, _errorFactory)) && (undefined === input.newLine || \"Crlf\" === input.newLine || \"Lf\" === input.newLine || 0 === input.newLine || 1 === input.newLine || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".newLine\",\n        expected: \"(\\\"Crlf\\\" | \\\"Lf\\\" | 0 | 1 | undefined)\",\n        value: input.newLine\n    }, _errorFactory)) && (undefined === input.noEmit || \"boolean\" === typeof input.noEmit || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noEmit\",\n        expected: \"(boolean | undefined)\",\n        value: input.noEmit\n    }, _errorFactory)) && (undefined === input.noCheck || \"boolean\" === typeof input.noCheck || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noCheck\",\n        expected: \"(boolean | undefined)\",\n        value: input.noCheck\n    }, _errorFactory)) && (undefined === input.noEmitHelpers || \"boolean\" === typeof input.noEmitHelpers || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noEmitHelpers\",\n        expected: \"(boolean | undefined)\",\n        value: input.noEmitHelpers\n    }, _errorFactory)) && (undefined === input.noEmitOnError || \"boolean\" === typeof input.noEmitOnError || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noEmitOnError\",\n        expected: \"(boolean | undefined)\",\n        value: input.noEmitOnError\n    }, _errorFactory)) && (undefined === input.noErrorTruncation || \"boolean\" === typeof input.noErrorTruncation || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noErrorTruncation\",\n        expected: \"(boolean | undefined)\",\n        value: input.noErrorTruncation\n    }, _errorFactory)) && (undefined === input.noFallthroughCasesInSwitch || \"boolean\" === typeof input.noFallthroughCasesInSwitch || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noFallthroughCasesInSwitch\",\n        expected: \"(boolean | undefined)\",\n        value: input.noFallthroughCasesInSwitch\n    }, _errorFactory)) && (undefined === input.noImplicitAny || \"boolean\" === typeof input.noImplicitAny || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noImplicitAny\",\n        expected: \"(boolean | undefined)\",\n        value: input.noImplicitAny\n    }, _errorFactory)) && (undefined === input.noImplicitReturns || \"boolean\" === typeof input.noImplicitReturns || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noImplicitReturns\",\n        expected: \"(boolean | undefined)\",\n        value: input.noImplicitReturns\n    }, _errorFactory)) && (undefined === input.noImplicitThis || \"boolean\" === typeof input.noImplicitThis || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noImplicitThis\",\n        expected: \"(boolean | undefined)\",\n        value: input.noImplicitThis\n    }, _errorFactory)) && (undefined === input.noStrictGenericChecks || \"boolean\" === typeof input.noStrictGenericChecks || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noStrictGenericChecks\",\n        expected: \"(boolean | undefined)\",\n        value: input.noStrictGenericChecks\n    }, _errorFactory)) && (undefined === input.noUnusedLocals || \"boolean\" === typeof input.noUnusedLocals || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noUnusedLocals\",\n        expected: \"(boolean | undefined)\",\n        value: input.noUnusedLocals\n    }, _errorFactory)) && (undefined === input.noUnusedParameters || \"boolean\" === typeof input.noUnusedParameters || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noUnusedParameters\",\n        expected: \"(boolean | undefined)\",\n        value: input.noUnusedParameters\n    }, _errorFactory)) && (undefined === input.noImplicitUseStrict || \"boolean\" === typeof input.noImplicitUseStrict || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noImplicitUseStrict\",\n        expected: \"(boolean | undefined)\",\n        value: input.noImplicitUseStrict\n    }, _errorFactory)) && (undefined === input.noPropertyAccessFromIndexSignature || \"boolean\" === typeof input.noPropertyAccessFromIndexSignature || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noPropertyAccessFromIndexSignature\",\n        expected: \"(boolean | undefined)\",\n        value: input.noPropertyAccessFromIndexSignature\n    }, _errorFactory)) && (undefined === input.assumeChangesOnlyAffectDirectDependencies || \"boolean\" === typeof input.assumeChangesOnlyAffectDirectDependencies || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".assumeChangesOnlyAffectDirectDependencies\",\n        expected: \"(boolean | undefined)\",\n        value: input.assumeChangesOnlyAffectDirectDependencies\n    }, _errorFactory)) && (undefined === input.noLib || \"boolean\" === typeof input.noLib || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noLib\",\n        expected: \"(boolean | undefined)\",\n        value: input.noLib\n    }, _errorFactory)) && (undefined === input.noResolve || \"boolean\" === typeof input.noResolve || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noResolve\",\n        expected: \"(boolean | undefined)\",\n        value: input.noResolve\n    }, _errorFactory)) && (undefined === input.noUncheckedIndexedAccess || \"boolean\" === typeof input.noUncheckedIndexedAccess || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noUncheckedIndexedAccess\",\n        expected: \"(boolean | undefined)\",\n        value: input.noUncheckedIndexedAccess\n    }, _errorFactory)) && (undefined === input.out || \"string\" === typeof input.out || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".out\",\n        expected: \"(string | undefined)\",\n        value: input.out\n    }, _errorFactory)) && (undefined === input.outDir || \"string\" === typeof input.outDir || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".outDir\",\n        expected: \"(string | undefined)\",\n        value: input.outDir\n    }, _errorFactory)) && (undefined === input.outFile || \"string\" === typeof input.outFile || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".outFile\",\n        expected: \"(string | undefined)\",\n        value: input.outFile\n    }, _errorFactory)) && (undefined === input.paths || (\"object\" === typeof input.paths && null !== input.paths && false === Array.isArray(input.paths) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".paths\",\n        expected: \"(ts.MapLike<Array<string>> | undefined)\",\n        value: input.paths\n    }, _errorFactory)) && _ao1(input.paths, _path + \".paths\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".paths\",\n        expected: \"(ts.MapLike<Array<string>> | undefined)\",\n        value: input.paths\n    }, _errorFactory)) && (undefined === input.preserveConstEnums || \"boolean\" === typeof input.preserveConstEnums || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".preserveConstEnums\",\n        expected: \"(boolean | undefined)\",\n        value: input.preserveConstEnums\n    }, _errorFactory)) && (undefined === input.noImplicitOverride || \"boolean\" === typeof input.noImplicitOverride || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noImplicitOverride\",\n        expected: \"(boolean | undefined)\",\n        value: input.noImplicitOverride\n    }, _errorFactory)) && (undefined === input.preserveSymlinks || \"boolean\" === typeof input.preserveSymlinks || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".preserveSymlinks\",\n        expected: \"(boolean | undefined)\",\n        value: input.preserveSymlinks\n    }, _errorFactory)) && (undefined === input.preserveValueImports || \"boolean\" === typeof input.preserveValueImports || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".preserveValueImports\",\n        expected: \"(boolean | undefined)\",\n        value: input.preserveValueImports\n    }, _errorFactory)) && (undefined === input.project || \"string\" === typeof input.project || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".project\",\n        expected: \"(string | undefined)\",\n        value: input.project\n    }, _errorFactory)) && (undefined === input.reactNamespace || \"string\" === typeof input.reactNamespace || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".reactNamespace\",\n        expected: \"(string | undefined)\",\n        value: input.reactNamespace\n    }, _errorFactory)) && (undefined === input.jsxFactory || \"string\" === typeof input.jsxFactory || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".jsxFactory\",\n        expected: \"(string | undefined)\",\n        value: input.jsxFactory\n    }, _errorFactory)) && (undefined === input.jsxFragmentFactory || \"string\" === typeof input.jsxFragmentFactory || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".jsxFragmentFactory\",\n        expected: \"(string | undefined)\",\n        value: input.jsxFragmentFactory\n    }, _errorFactory)) && (undefined === input.jsxImportSource || \"string\" === typeof input.jsxImportSource || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".jsxImportSource\",\n        expected: \"(string | undefined)\",\n        value: input.jsxImportSource\n    }, _errorFactory)) && (undefined === input.composite || \"boolean\" === typeof input.composite || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".composite\",\n        expected: \"(boolean | undefined)\",\n        value: input.composite\n    }, _errorFactory)) && (undefined === input.incremental || \"boolean\" === typeof input.incremental || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".incremental\",\n        expected: \"(boolean | undefined)\",\n        value: input.incremental\n    }, _errorFactory)) && (undefined === input.tsBuildInfoFile || \"string\" === typeof input.tsBuildInfoFile || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".tsBuildInfoFile\",\n        expected: \"(string | undefined)\",\n        value: input.tsBuildInfoFile\n    }, _errorFactory)) && (undefined === input.removeComments || \"boolean\" === typeof input.removeComments || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".removeComments\",\n        expected: \"(boolean | undefined)\",\n        value: input.removeComments\n    }, _errorFactory)) && (undefined === input.resolvePackageJsonExports || \"boolean\" === typeof input.resolvePackageJsonExports || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolvePackageJsonExports\",\n        expected: \"(boolean | undefined)\",\n        value: input.resolvePackageJsonExports\n    }, _errorFactory)) && (undefined === input.resolvePackageJsonImports || \"boolean\" === typeof input.resolvePackageJsonImports || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolvePackageJsonImports\",\n        expected: \"(boolean | undefined)\",\n        value: input.resolvePackageJsonImports\n    }, _errorFactory)) && (undefined === input.rewriteRelativeImportExtensions || \"boolean\" === typeof input.rewriteRelativeImportExtensions || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".rewriteRelativeImportExtensions\",\n        expected: \"(boolean | undefined)\",\n        value: input.rewriteRelativeImportExtensions\n    }, _errorFactory)) && (undefined === input.rootDir || \"string\" === typeof input.rootDir || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".rootDir\",\n        expected: \"(string | undefined)\",\n        value: input.rootDir\n    }, _errorFactory)) && (undefined === input.rootDirs || (Array.isArray(input.rootDirs) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".rootDirs\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.rootDirs\n    }, _errorFactory)) && input.rootDirs.every((elem: any, _index26: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".rootDirs[\" + _index26 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".rootDirs\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.rootDirs\n    }, _errorFactory)) && (undefined === input.skipLibCheck || \"boolean\" === typeof input.skipLibCheck || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".skipLibCheck\",\n        expected: \"(boolean | undefined)\",\n        value: input.skipLibCheck\n    }, _errorFactory)) && (undefined === input.skipDefaultLibCheck || \"boolean\" === typeof input.skipDefaultLibCheck || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".skipDefaultLibCheck\",\n        expected: \"(boolean | undefined)\",\n        value: input.skipDefaultLibCheck\n    }, _errorFactory)) && (undefined === input.sourceMap || \"boolean\" === typeof input.sourceMap || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".sourceMap\",\n        expected: \"(boolean | undefined)\",\n        value: input.sourceMap\n    }, _errorFactory)) && (undefined === input.sourceRoot || \"string\" === typeof input.sourceRoot || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".sourceRoot\",\n        expected: \"(string | undefined)\",\n        value: input.sourceRoot\n    }, _errorFactory)) && (undefined === input.strict || \"boolean\" === typeof input.strict || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".strict\",\n        expected: \"(boolean | undefined)\",\n        value: input.strict\n    }, _errorFactory)) && (undefined === input.strictFunctionTypes || \"boolean\" === typeof input.strictFunctionTypes || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".strictFunctionTypes\",\n        expected: \"(boolean | undefined)\",\n        value: input.strictFunctionTypes\n    }, _errorFactory)) && (undefined === input.strictBindCallApply || \"boolean\" === typeof input.strictBindCallApply || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".strictBindCallApply\",\n        expected: \"(boolean | undefined)\",\n        value: input.strictBindCallApply\n    }, _errorFactory)) && (undefined === input.strictNullChecks || \"boolean\" === typeof input.strictNullChecks || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".strictNullChecks\",\n        expected: \"(boolean | undefined)\",\n        value: input.strictNullChecks\n    }, _errorFactory)) && (undefined === input.strictPropertyInitialization || \"boolean\" === typeof input.strictPropertyInitialization || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".strictPropertyInitialization\",\n        expected: \"(boolean | undefined)\",\n        value: input.strictPropertyInitialization\n    }, _errorFactory)) && (undefined === input.strictBuiltinIteratorReturn || \"boolean\" === typeof input.strictBuiltinIteratorReturn || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".strictBuiltinIteratorReturn\",\n        expected: \"(boolean | undefined)\",\n        value: input.strictBuiltinIteratorReturn\n    }, _errorFactory)) && (undefined === input.stripInternal || \"boolean\" === typeof input.stripInternal || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".stripInternal\",\n        expected: \"(boolean | undefined)\",\n        value: input.stripInternal\n    }, _errorFactory)) && (undefined === input.suppressExcessPropertyErrors || \"boolean\" === typeof input.suppressExcessPropertyErrors || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".suppressExcessPropertyErrors\",\n        expected: \"(boolean | undefined)\",\n        value: input.suppressExcessPropertyErrors\n    }, _errorFactory)) && (undefined === input.suppressImplicitAnyIndexErrors || \"boolean\" === typeof input.suppressImplicitAnyIndexErrors || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".suppressImplicitAnyIndexErrors\",\n        expected: \"(boolean | undefined)\",\n        value: input.suppressImplicitAnyIndexErrors\n    }, _errorFactory)) && (undefined === input.target || true === _av27.has(input.target) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".target\",\n        expected: \"(\\\"es2015\\\" | \\\"es2016\\\" | \\\"es2017\\\" | \\\"es2018\\\" | \\\"es2019\\\" | \\\"es2020\\\" | \\\"es2021\\\" | \\\"es2022\\\" | \\\"es2023\\\" | \\\"es2024\\\" | \\\"es3\\\" | \\\"es5\\\" | \\\"es6\\\" | \\\"esnext\\\" | \\\"json\\\" | 0 | 1 | 10 | 100 | 11 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 99 | undefined)\",\n        value: input.target\n    }, _errorFactory)) && (undefined === input.traceResolution || \"boolean\" === typeof input.traceResolution || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".traceResolution\",\n        expected: \"(boolean | undefined)\",\n        value: input.traceResolution\n    }, _errorFactory)) && (undefined === input.useUnknownInCatchVariables || \"boolean\" === typeof input.useUnknownInCatchVariables || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".useUnknownInCatchVariables\",\n        expected: \"(boolean | undefined)\",\n        value: input.useUnknownInCatchVariables\n    }, _errorFactory)) && (undefined === input.noUncheckedSideEffectImports || \"boolean\" === typeof input.noUncheckedSideEffectImports || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".noUncheckedSideEffectImports\",\n        expected: \"(boolean | undefined)\",\n        value: input.noUncheckedSideEffectImports\n    }, _errorFactory)) && (undefined === input.resolveJsonModule || \"boolean\" === typeof input.resolveJsonModule || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolveJsonModule\",\n        expected: \"(boolean | undefined)\",\n        value: input.resolveJsonModule\n    }, _errorFactory)) && (undefined === input.types || (Array.isArray(input.types) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".types\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.types\n    }, _errorFactory)) && input.types.every((elem: any, _index28: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".types[\" + _index28 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".types\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.types\n    }, _errorFactory)) && (undefined === input.typeRoots || (Array.isArray(input.typeRoots) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".typeRoots\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.typeRoots\n    }, _errorFactory)) && input.typeRoots.every((elem: any, _index29: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".typeRoots[\" + _index29 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".typeRoots\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.typeRoots\n    }, _errorFactory)) && (undefined === input.verbatimModuleSyntax || \"boolean\" === typeof input.verbatimModuleSyntax || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".verbatimModuleSyntax\",\n        expected: \"(boolean | undefined)\",\n        value: input.verbatimModuleSyntax\n    }, _errorFactory)) && (undefined === input.erasableSyntaxOnly || \"boolean\" === typeof input.erasableSyntaxOnly || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".erasableSyntaxOnly\",\n        expected: \"(boolean | undefined)\",\n        value: input.erasableSyntaxOnly\n    }, _errorFactory)) && (undefined === input.esModuleInterop || \"boolean\" === typeof input.esModuleInterop || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".esModuleInterop\",\n        expected: \"(boolean | undefined)\",\n        value: input.esModuleInterop\n    }, _errorFactory)) && (undefined === input.useDefineForClassFields || \"boolean\" === typeof input.useDefineForClassFields || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".useDefineForClassFields\",\n        expected: \"(boolean | undefined)\",\n        value: input.useDefineForClassFields\n    }, _errorFactory)) && (false === _exceptionable || Object.keys(input).every((key: any) => {\n        if ([\"allowImportingTsExtensions\", \"allowJs\", \"allowArbitraryExtensions\", \"allowSyntheticDefaultImports\", \"allowUmdGlobalAccess\", \"allowUnreachableCode\", \"allowUnusedLabels\", \"alwaysStrict\", \"baseUrl\", \"charset\", \"checkJs\", \"customConditions\", \"declaration\", \"declarationMap\", \"emitDeclarationOnly\", \"declarationDir\", \"disableSizeLimit\", \"disableSourceOfProjectReferenceRedirect\", \"disableSolutionSearching\", \"disableReferencedProjectLoad\", \"downlevelIteration\", \"emitBOM\", \"emitDecoratorMetadata\", \"exactOptionalPropertyTypes\", \"experimentalDecorators\", \"forceConsistentCasingInFileNames\", \"ignoreDeprecations\", \"importHelpers\", \"importsNotUsedAsValues\", \"inlineSourceMap\", \"inlineSources\", \"isolatedModules\", \"isolatedDeclarations\", \"jsx\", \"keyofStringsOnly\", \"lib\", \"libReplacement\", \"locale\", \"mapRoot\", \"maxNodeModuleJsDepth\", \"module\", \"moduleResolution\", \"moduleSuffixes\", \"moduleDetection\", \"newLine\", \"noEmit\", \"noCheck\", \"noEmitHelpers\", \"noEmitOnError\", \"noErrorTruncation\", \"noFallthroughCasesInSwitch\", \"noImplicitAny\", \"noImplicitReturns\", \"noImplicitThis\", \"noStrictGenericChecks\", \"noUnusedLocals\", \"noUnusedParameters\", \"noImplicitUseStrict\", \"noPropertyAccessFromIndexSignature\", \"assumeChangesOnlyAffectDirectDependencies\", \"noLib\", \"noResolve\", \"noUncheckedIndexedAccess\", \"out\", \"outDir\", \"outFile\", \"paths\", \"preserveConstEnums\", \"noImplicitOverride\", \"preserveSymlinks\", \"preserveValueImports\", \"project\", \"reactNamespace\", \"jsxFactory\", \"jsxFragmentFactory\", \"jsxImportSource\", \"composite\", \"incremental\", \"tsBuildInfoFile\", \"removeComments\", \"resolvePackageJsonExports\", \"resolvePackageJsonImports\", \"rewriteRelativeImportExtensions\", \"rootDir\", \"rootDirs\", \"skipLibCheck\", \"skipDefaultLibCheck\", \"sourceMap\", \"sourceRoot\", \"strict\", \"strictFunctionTypes\", \"strictBindCallApply\", \"strictNullChecks\", \"strictPropertyInitialization\", \"strictBuiltinIteratorReturn\", \"stripInternal\", \"suppressExcessPropertyErrors\", \"suppressImplicitAnyIndexErrors\", \"target\", \"traceResolution\", \"useUnknownInCatchVariables\", \"noUncheckedSideEffectImports\", \"resolveJsonModule\", \"types\", \"typeRoots\", \"verbatimModuleSyntax\", \"erasableSyntaxOnly\", \"esModuleInterop\", \"useDefineForClassFields\"].some((prop: any) => key === prop))\n            return true;\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return null === value || undefined === value || \"string\" === typeof value || \"number\" === typeof value || \"boolean\" === typeof value || (Array.isArray(value) && (_ap1(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"Array<string | number> | Array<string> | Array<ts.PluginImport> | Array<ts.ProjectReference>\",\n            value: value\n        }, _errorFactory)) || \"object\" === typeof value && null !== value && false === Array.isArray(value) && _ao1(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(Array<string | number> | Array<string> | Array<ts.PluginImport> | Array<ts.ProjectReference> | boolean | null | number | string | ts.MapLike<Array<string>> | undefined)\",\n            value: value\n        }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(Array<string | number> | Array<string> | Array<ts.PluginImport> | Array<ts.ProjectReference> | boolean | null | number | string | ts.MapLike<Array<string>> | undefined)\",\n            value: value\n        }, _errorFactory);\n    })); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (Array.isArray(value) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"Array<string>\",\n            value: value\n        }, _errorFactory)) && value.every((elem: any, _index38: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key) + \"[\" + _index38 + \"]\",\n            expected: \"string\",\n            value: elem\n        }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"Array<string>\",\n            value: value\n        }, _errorFactory);\n    }); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory); const _ao3 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.path || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".path\",\n        expected: \"string\",\n        value: input.path\n    }, _errorFactory)) && (undefined === input.originalPath || \"string\" === typeof input.originalPath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".originalPath\",\n        expected: \"(string | undefined)\",\n        value: input.originalPath\n    }, _errorFactory)) && (undefined === input.prepend || \"boolean\" === typeof input.prepend || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".prepend\",\n        expected: \"(boolean | undefined)\",\n        value: input.prepend\n    }, _errorFactory)) && (undefined === input.circular || \"boolean\" === typeof input.circular || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".circular\",\n        expected: \"(boolean | undefined)\",\n        value: input.circular\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"typecheckCode\"]> => Array.isArray(input) && (2 <= input.length && 4 >= input.length && \"string\" === typeof input[0] && \"string\" === typeof input[1] && (undefined === input[2] || \"object\" === typeof input[2] && null !== input[2] && false === Array.isArray(input[2]) && _io0(input[2])) && (undefined === input[3] || \"string\" === typeof input[3])); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"typecheckCode\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[fileName: string, content: string, compilerOptions?: ChangePropertyTypes<ChangeStringIndexSignature<CompilerOptions, CompilerOptionsValue>, { jsx: ts.server.protocol.JsxEmit | ts.JsxEmit; module: ts.server.protocol.ModuleKind | ts.ModuleKind; moduleResolution: ts.server.protocol.ModuleResolutionKind | ts.ModuleReso...\",\n                value: input\n            }, _errorFactory)) && ((2 <= input.length && 4 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, (ts.server.protocol.ChangePropertyTypes<ts.server.protocol.ChangeStringIndexSignature<ts.CompilerOptions, ts.CompilerOptionsValue>, __type> | undefined), (string | undefined)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && (undefined === input[2] || (\"object\" === typeof input[2] && null !== input[2] && false === Array.isArray(input[2]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"(ts.server.protocol.ChangePropertyTypes<ts.server.protocol.ChangeStringIndexSignature<ts.CompilerOptions, ts.CompilerOptionsValue>, __type> | undefined)\",\n                value: input[2]\n            }, _errorFactory)) && _ao0(input[2], _path + \"[2]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"(ts.server.protocol.ChangePropertyTypes<ts.server.protocol.ChangeStringIndexSignature<ts.CompilerOptions, ts.CompilerOptionsValue>, __type> | undefined)\",\n                value: input[2]\n            }, _errorFactory)) && (undefined === input[3] || \"string\" === typeof input[3] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[3]\",\n                expected: \"(string | undefined)\",\n                value: input[3]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[fileName: string, content: string, compilerOptions?: ChangePropertyTypes<ChangeStringIndexSignature<CompilerOptions, CompilerOptionsValue>, { jsx: ts.server.protocol.JsxEmit | ts.JsxEmit; module: ts.server.protocol.ModuleKind | ts.ModuleKind; moduleResolution: ts.server.protocol.ModuleResolutionKind | ts.ModuleReso...\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    // Internal\n    [getAiServiceInfoMessageType]: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[typeof getAiServiceInfoMessageType]> => Array.isArray(input) && (0 <= input.length && 1 >= input.length && (undefined === input[0] || \"3\" === input[0])); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[typeof getAiServiceInfoMessageType]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[version?: \\\"3\\\" | undefined]\",\n                value: input\n            }, _errorFactory)) && ((0 <= input.length && 1 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(\\\"3\\\" | undefined)]\",\n                value: input\n            }, _errorFactory)) && (undefined === input[0] || \"3\" === input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(\\\"3\\\" | undefined)\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[version?: \\\"3\\\" | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    [sendTrackingEventMessageType]: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[typeof sendTrackingEventMessageType]> => Array.isArray(input) && (input.length === 3 && \"string\" === typeof input[0] && \"string\" === typeof input[1] && \"string\" === typeof input[2]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[typeof sendTrackingEventMessageType]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[key: string, value: string, identifier: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 3 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && (\"string\" === typeof input[2] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"string\",\n                value: input[2]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[key: string, value: string, identifier: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    [getCurrentUserMessageType]: noArguments,\n    [getProjectInfoMessageType]: noArguments,\n    [getHTMLForNodeMessageType]: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[typeof getHTMLForNodeMessageType]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[typeof getHTMLForNodeMessageType]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    [setHTMLForNodeMessageType]: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[typeof setHTMLForNodeMessageType]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && \"string\" === typeof input[1]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[typeof setHTMLForNodeMessageType]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, html: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, html: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    // Deprecated internal\n    getAiServiceInfo: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getAiServiceInfo\"]> => Array.isArray(input) && (0 <= input.length && 1 >= input.length && (undefined === input[0] || \"3\" === input[0])); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getAiServiceInfo\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[version?: \\\"3\\\" | undefined]\",\n                value: input\n            }, _errorFactory)) && ((0 <= input.length && 1 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(\\\"3\\\" | undefined)]\",\n                value: input\n            }, _errorFactory)) && (undefined === input[0] || \"3\" === input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(\\\"3\\\" | undefined)\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[version?: \\\"3\\\" | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    sendTrackingEvent: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"sendTrackingEvent\"]> => Array.isArray(input) && (input.length === 3 && \"string\" === typeof input[0] && \"string\" === typeof input[1] && \"string\" === typeof input[2]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"sendTrackingEvent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[key: string, value: string, identifier: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 3 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && (\"string\" === typeof input[2] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"string\",\n                value: input[2]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[key: string, value: string, identifier: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    lintCode: (() => { const _io0 = (input: any): boolean => \"error\" === input[\"forbid-browser-apis\"] || \"warning\" === input[\"forbid-browser-apis\"]; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"error\" === input[\"forbid-browser-apis\"] || \"warning\" === input[\"forbid-browser-apis\"] || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \"[\\\"forbid-browser-apis\\\"]\",\n        expected: \"(\\\"error\\\" | \\\"warning\\\")\",\n        value: input[\"forbid-browser-apis\"]\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"lintCode\"]> => Array.isArray(input) && (input.length === 3 && \"string\" === typeof input[0] && \"string\" === typeof input[1] && (\"object\" === typeof input[2] && null !== input[2] && _io0(input[2]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"lintCode\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[fileName: string, content: string, rules: LintConfig]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 3 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, LintConfig]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && ((\"object\" === typeof input[2] && null !== input[2] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"LintConfig\",\n                value: input[2]\n            }, _errorFactory)) && _ao0(input[2], _path + \"[2]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"LintConfig\",\n                value: input[2]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[fileName: string, content: string, rules: LintConfig]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    // Redirects\n    addRedirects: (() => { const _io0 = (input: any): boolean => null !== input.id && undefined === input.id && \"string\" === typeof input.from && \"boolean\" === typeof input.expandToAllLocales && \"string\" === typeof input.to; const _io1 = (input: any): boolean => \"string\" === typeof input.id && (undefined === input.from || \"string\" === typeof input.from) && (undefined === input.expandToAllLocales || \"boolean\" === typeof input.expandToAllLocales) && (undefined === input.to || \"string\" === typeof input.to); const _iu0 = (input: any): any => (() => {\n        if (\"string\" === typeof input.id)\n            return _io1(input);\n        else\n            return _io0(input);\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (null !== input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"undefined\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"undefined\",\n        value: input.id\n    }, _errorFactory)) && (\"string\" === typeof input.from || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".from\",\n        expected: \"string\",\n        value: input.from\n    }, _errorFactory)) && (\"boolean\" === typeof input.expandToAllLocales || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".expandToAllLocales\",\n        expected: \"boolean\",\n        value: input.expandToAllLocales\n    }, _errorFactory)) && (\"string\" === typeof input.to || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".to\",\n        expected: \"string\",\n        value: input.to\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.from || \"string\" === typeof input.from || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".from\",\n        expected: \"(string | undefined)\",\n        value: input.from\n    }, _errorFactory)) && (undefined === input.expandToAllLocales || \"boolean\" === typeof input.expandToAllLocales || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".expandToAllLocales\",\n        expected: \"(boolean | undefined)\",\n        value: input.expandToAllLocales\n    }, _errorFactory)) && (undefined === input.to || \"string\" === typeof input.to || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".to\",\n        expected: \"(string | undefined)\",\n        value: input.to\n    }, _errorFactory)); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"string\" === typeof input.id)\n            return _ao1(input, _path, true && _exceptionable);\n        else\n            return _ao0(input, _path, true && _exceptionable);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"addRedirects\"]> => Array.isArray(input) && (input.length === 1 && (Array.isArray(input[0]) && input[0].every((elem: any) => \"object\" === typeof elem && null !== elem && _iu0(elem)))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addRedirects\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[redirects: RedirectInput[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[Array<RedirectInput>]\",\n                value: input\n            }, _errorFactory)) && ((Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<RedirectInput>\",\n                value: input[0]\n            }, _errorFactory)) && input[0].every((elem: any, _index2: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index2 + \"]\",\n                expected: \"(__type | __type.o1)\",\n                value: elem\n            }, _errorFactory)) && _au0(elem, _path + \"[0][\" + _index2 + \"]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index2 + \"]\",\n                expected: \"(__type | __type.o1)\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<RedirectInput>\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[redirects: RedirectInput[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getRedirects: noArguments,\n    setRedirectOrder: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"setRedirectOrder\"]> => Array.isArray(input) && (input.length === 1 && (Array.isArray(input[0]) && input[0].every((elem: any) => \"string\" === typeof elem))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setRedirectOrder\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[redirectIds: string[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[Array<string>]\",\n                value: input\n            }, _errorFactory)) && ((Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<string>\",\n                value: input[0]\n            }, _errorFactory)) && input[0].every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index2 + \"]\",\n                expected: \"string\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<string>\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[redirectIds: string[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    removeRedirects: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"removeRedirects\"]> => Array.isArray(input) && (input.length === 1 && (Array.isArray(input[0]) && input[0].every((elem: any) => \"string\" === typeof elem))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"removeRedirects\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[redirectIds: string[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[Array<string>]\",\n                value: input\n            }, _errorFactory)) && ((Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<string>\",\n                value: input[0]\n            }, _errorFactory)) && input[0].every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index2 + \"]\",\n                expected: \"string\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<string>\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[redirectIds: string[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    // Nodes\n    getRuntimeErrorForModule: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getRuntimeErrorForModule\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getRuntimeErrorForModule\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[moduleIdentifier: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[moduleIdentifier: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getRuntimeErrorForCodeComponentNode: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getRuntimeErrorForCodeComponentNode\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getRuntimeErrorForCodeComponentNode\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    // Placeholder methods\n    addComponentInstancePlaceholder: (() => { const _io0 = (input: any): boolean => (undefined === input.width || \"number\" === typeof input.width) && (undefined === input.height || \"number\" === typeof input.height) && (undefined === input.title || \"string\" === typeof input.title) && (null === input.codePreview || undefined === input.codePreview || \"string\" === typeof input.codePreview); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.width || \"number\" === typeof input.width || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".width\",\n        expected: \"(number | undefined)\",\n        value: input.width\n    }, _errorFactory)) && (undefined === input.height || \"number\" === typeof input.height || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".height\",\n        expected: \"(number | undefined)\",\n        value: input.height\n    }, _errorFactory)) && (undefined === input.title || \"string\" === typeof input.title || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".title\",\n        expected: \"(string | undefined)\",\n        value: input.title\n    }, _errorFactory)) && (null === input.codePreview || undefined === input.codePreview || \"string\" === typeof input.codePreview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".codePreview\",\n        expected: \"(null | string | undefined)\",\n        value: input.codePreview\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"addComponentInstancePlaceholder\"]> => Array.isArray(input) && (0 <= input.length && 1 >= input.length && (undefined === input[0] || \"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addComponentInstancePlaceholder\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[attributes?: Partial<Omit<ComponentInstancePlaceholderData, \\\"id\\\">> | undefined]\",\n                value: input\n            }, _errorFactory)) && ((0 <= input.length && 1 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(Partial<Omit<ComponentInstancePlaceholderData, \\\"id\\\">> | undefined)]\",\n                value: input\n            }, _errorFactory)) && (undefined === input[0] || (\"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(Partial<Omit<ComponentInstancePlaceholderData, \\\"id\\\">> | undefined)\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(Partial<Omit<ComponentInstancePlaceholderData, \\\"id\\\">> | undefined)\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[attributes?: Partial<Omit<ComponentInstancePlaceholderData, \\\"id\\\">> | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    updateComponentInstancePlaceholder: (() => { const _io0 = (input: any): boolean => (undefined === input.width || \"number\" === typeof input.width) && (undefined === input.height || \"number\" === typeof input.height) && (undefined === input.title || \"string\" === typeof input.title) && (null === input.codePreview || undefined === input.codePreview || \"string\" === typeof input.codePreview); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.width || \"number\" === typeof input.width || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".width\",\n        expected: \"(number | undefined)\",\n        value: input.width\n    }, _errorFactory)) && (undefined === input.height || \"number\" === typeof input.height || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".height\",\n        expected: \"(number | undefined)\",\n        value: input.height\n    }, _errorFactory)) && (undefined === input.title || \"string\" === typeof input.title || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".title\",\n        expected: \"(string | undefined)\",\n        value: input.title\n    }, _errorFactory)) && (null === input.codePreview || undefined === input.codePreview || \"string\" === typeof input.codePreview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".codePreview\",\n        expected: \"(null | string | undefined)\",\n        value: input.codePreview\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"updateComponentInstancePlaceholder\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"updateComponentInstancePlaceholder\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, attributes: Partial<Omit<ComponentInstancePlaceholderData, \\\"id\\\">>]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Partial<Omit<ComponentInstancePlaceholderData, \\\"id\\\">>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Partial<Omit<ComponentInstancePlaceholderData, \\\"id\\\">>\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Partial<Omit<ComponentInstancePlaceholderData, \\\"id\\\">>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, attributes: Partial<Omit<ComponentInstancePlaceholderData, \\\"id\\\">>]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    removeComponentInstancePlaceholder: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"removeComponentInstancePlaceholder\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"removeComponentInstancePlaceholder\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    replaceComponentInstancePlaceholderWithComponentInstance: (() => { const _io0 = (input: any): boolean => (null === input.name || undefined === input.name || \"string\" === typeof input.name) && (undefined === input.visible || \"boolean\" === typeof input.visible) && (undefined === input.locked || \"boolean\" === typeof input.locked) && (undefined === input.opacity || \"number\" === typeof input.opacity) && (undefined === input.position || \"relative\" === input.position || \"absolute\" === input.position || \"fixed\" === input.position || \"sticky\" === input.position) && (null === input.top || undefined === input.top || \"string\" === typeof input.top && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.top)) && (null === input.right || undefined === input.right || \"string\" === typeof input.right && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.right)) && (null === input.bottom || undefined === input.bottom || \"string\" === typeof input.bottom && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.bottom)) && (null === input.left || undefined === input.left || \"string\" === typeof input.left && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.left)) && (null === input.centerX || undefined === input.centerX || \"string\" === typeof input.centerX && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.centerX)) && (null === input.centerY || undefined === input.centerY || \"string\" === typeof input.centerY && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.centerY)) && (null === input.width || undefined === input.width || \"fit-content\" === input.width || \"fit-image\" === input.width || \"string\" === typeof input.width && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.width) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.width) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?fr$/).test(input.width))) && (null === input.height || undefined === input.height || \"fit-content\" === input.height || \"fit-image\" === input.height || \"string\" === typeof input.height && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.height) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.height) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?fr$/).test(input.height) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?vh$/).test(input.height))) && (null === input.maxWidth || undefined === input.maxWidth || \"string\" === typeof input.maxWidth && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.maxWidth) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.maxWidth))) && (null === input.minWidth || undefined === input.minWidth || \"string\" === typeof input.minWidth && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.minWidth) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.minWidth))) && (null === input.maxHeight || undefined === input.maxHeight || \"string\" === typeof input.maxHeight && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.maxHeight) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.maxHeight) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?vh$/).test(input.maxHeight))) && (null === input.minHeight || undefined === input.minHeight || \"string\" === typeof input.minHeight && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.minHeight) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.minHeight) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?vh$/).test(input.minHeight))) && (null === input.aspectRatio || undefined === input.aspectRatio || \"number\" === typeof input.aspectRatio) && (undefined === input.controls || \"object\" === typeof input.controls && null !== input.controls && false === Array.isArray(input.controls) && _io1(input.controls)) && (undefined === input.rotation || \"number\" === typeof input.rotation); const _io1 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (null === input.name || undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(null | string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.visible || \"boolean\" === typeof input.visible || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".visible\",\n        expected: \"(boolean | undefined)\",\n        value: input.visible\n    }, _errorFactory)) && (undefined === input.locked || \"boolean\" === typeof input.locked || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".locked\",\n        expected: \"(boolean | undefined)\",\n        value: input.locked\n    }, _errorFactory)) && (undefined === input.opacity || \"number\" === typeof input.opacity || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".opacity\",\n        expected: \"(number | undefined)\",\n        value: input.opacity\n    }, _errorFactory)) && (undefined === input.position || \"relative\" === input.position || \"absolute\" === input.position || \"fixed\" === input.position || \"sticky\" === input.position || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".position\",\n        expected: \"(\\\"absolute\\\" | \\\"fixed\\\" | \\\"relative\\\" | \\\"sticky\\\" | undefined)\",\n        value: input.position\n    }, _errorFactory)) && (null === input.top || undefined === input.top || \"string\" === typeof input.top && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.top) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".top\",\n        expected: \"(`${number}px` | null | undefined)\",\n        value: input.top\n    }, _errorFactory)) && (null === input.right || undefined === input.right || \"string\" === typeof input.right && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.right) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".right\",\n        expected: \"(`${number}px` | null | undefined)\",\n        value: input.right\n    }, _errorFactory)) && (null === input.bottom || undefined === input.bottom || \"string\" === typeof input.bottom && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.bottom) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".bottom\",\n        expected: \"(`${number}px` | null | undefined)\",\n        value: input.bottom\n    }, _errorFactory)) && (null === input.left || undefined === input.left || \"string\" === typeof input.left && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.left) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".left\",\n        expected: \"(`${number}px` | null | undefined)\",\n        value: input.left\n    }, _errorFactory)) && (null === input.centerX || undefined === input.centerX || \"string\" === typeof input.centerX && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.centerX) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".centerX\",\n        expected: \"(`${number}%` | null | undefined)\",\n        value: input.centerX\n    }, _errorFactory)) && (null === input.centerY || undefined === input.centerY || \"string\" === typeof input.centerY && RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.centerY) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".centerY\",\n        expected: \"(`${number}%` | null | undefined)\",\n        value: input.centerY\n    }, _errorFactory)) && (null === input.width || undefined === input.width || \"fit-content\" === input.width || \"fit-image\" === input.width || \"string\" === typeof input.width && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.width) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.width) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?fr$/).test(input.width)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".width\",\n        expected: \"(\\\"fit-content\\\" | \\\"fit-image\\\" | `${number}%` | `${number}fr` | `${number}px` | null | undefined)\",\n        value: input.width\n    }, _errorFactory)) && (null === input.height || undefined === input.height || \"fit-content\" === input.height || \"fit-image\" === input.height || \"string\" === typeof input.height && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.height) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.height) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?fr$/).test(input.height) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?vh$/).test(input.height)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".height\",\n        expected: \"(\\\"fit-content\\\" | \\\"fit-image\\\" | `${number}%` | `${number}fr` | `${number}px` | `${number}vh` | null | undefined)\",\n        value: input.height\n    }, _errorFactory)) && (null === input.maxWidth || undefined === input.maxWidth || \"string\" === typeof input.maxWidth && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.maxWidth) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.maxWidth)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".maxWidth\",\n        expected: \"(`${number}%` | `${number}px` | null | undefined)\",\n        value: input.maxWidth\n    }, _errorFactory)) && (null === input.minWidth || undefined === input.minWidth || \"string\" === typeof input.minWidth && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.minWidth) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.minWidth)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".minWidth\",\n        expected: \"(`${number}%` | `${number}px` | null | undefined)\",\n        value: input.minWidth\n    }, _errorFactory)) && (null === input.maxHeight || undefined === input.maxHeight || \"string\" === typeof input.maxHeight && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.maxHeight) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.maxHeight) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?vh$/).test(input.maxHeight)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".maxHeight\",\n        expected: \"(`${number}%` | `${number}px` | `${number}vh` | null | undefined)\",\n        value: input.maxHeight\n    }, _errorFactory)) && (null === input.minHeight || undefined === input.minHeight || \"string\" === typeof input.minHeight && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.minHeight) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?%$/).test(input.minHeight) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?vh$/).test(input.minHeight)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".minHeight\",\n        expected: \"(`${number}%` | `${number}px` | `${number}vh` | null | undefined)\",\n        value: input.minHeight\n    }, _errorFactory)) && (null === input.aspectRatio || undefined === input.aspectRatio || \"number\" === typeof input.aspectRatio || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".aspectRatio\",\n        expected: \"(null | number | undefined)\",\n        value: input.aspectRatio\n    }, _errorFactory)) && (undefined === input.controls || (\"object\" === typeof input.controls && null !== input.controls && false === Array.isArray(input.controls) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".controls\",\n        expected: \"(ControlAttributes | undefined)\",\n        value: input.controls\n    }, _errorFactory)) && _ao1(input.controls, _path + \".controls\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".controls\",\n        expected: \"(ControlAttributes | undefined)\",\n        value: input.controls\n    }, _errorFactory)) && (undefined === input.rotation || \"number\" === typeof input.rotation || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".rotation\",\n        expected: \"(number | undefined)\",\n        value: input.rotation\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const __is = (input: any): input is Parameters<PluginMessageAPI[\"replaceComponentInstancePlaceholderWithComponentInstance\"]> => Array.isArray(input) && (2 <= input.length && 3 >= input.length && \"string\" === typeof input[0] && \"string\" === typeof input[1] && (undefined === input[2] || \"object\" === typeof input[2] && null !== input[2] && false === Array.isArray(input[2]) && _io0(input[2]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"replaceComponentInstancePlaceholderWithComponentInstance\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, url: string, attributes?: Partial<EditableComponentInstanceNodeAttributes> | undefined]\",\n                value: input\n            }, _errorFactory)) && ((2 <= input.length && 3 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, (Partial<EditableComponentInstanceNodeAttributes> | undefined)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && (undefined === input[2] || (\"object\" === typeof input[2] && null !== input[2] && false === Array.isArray(input[2]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"(Partial<EditableComponentInstanceNodeAttributes> | undefined)\",\n                value: input[2]\n            }, _errorFactory)) && _ao0(input[2], _path + \"[2]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"(Partial<EditableComponentInstanceNodeAttributes> | undefined)\",\n                value: input[2]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[id: string, url: string, attributes?: Partial<EditableComponentInstanceNodeAttributes> | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    showProgressOnInstances: (() => { const _io0 = (input: any): boolean => (undefined === input.title || \"string\" === typeof input.title) && (null === input.codePreview || undefined === input.codePreview || \"string\" === typeof input.codePreview); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.title || \"string\" === typeof input.title || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".title\",\n        expected: \"(string | undefined)\",\n        value: input.title\n    }, _errorFactory)) && (null === input.codePreview || undefined === input.codePreview || \"string\" === typeof input.codePreview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".codePreview\",\n        expected: \"(null | string | undefined)\",\n        value: input.codePreview\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"showProgressOnInstances\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && \"string\" === typeof input[0] && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"showProgressOnInstances\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[codeFileId: string, attributes?: ShowProgressOnInstancesAttributes | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, (ShowProgressOnInstancesAttributes | undefined)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(ShowProgressOnInstancesAttributes | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(ShowProgressOnInstancesAttributes | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[codeFileId: string, attributes?: ShowProgressOnInstancesAttributes | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    removeProgressFromInstances: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"removeProgressFromInstances\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"removeProgressFromInstances\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[codeFileId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[codeFileId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    unstable_getDependencyVersion: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"unstable_getDependencyVersion\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"unstable_getDependencyVersion\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[packageName: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[packageName: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    unstable_ensureMinimumDependencyVersion: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"unstable_ensureMinimumDependencyVersion\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && \"string\" === typeof input[1]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"unstable_ensureMinimumDependencyVersion\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[packageName: string, version: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[packageName: string, version: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    addVariantToComponent: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"addVariantToComponent\"]> => Array.isArray(input) && (2 <= input.length && 3 >= input.length && \"string\" === typeof input[0] && \"string\" === typeof input[1] && true); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addVariantToComponent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[componentId: string, basedOn: string, attributes?: unknown]\",\n                value: input\n            }, _errorFactory)) && ((2 <= input.length && 3 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, any]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[componentId: string, basedOn: string, attributes?: unknown]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    addGestureVariantToComponent: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"addGestureVariantToComponent\"]> => Array.isArray(input) && (3 <= input.length && 4 >= input.length && \"string\" === typeof input[0] && \"string\" === typeof input[1] && (\"hover\" === input[2] || \"pressed\" === input[2]) && true); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addGestureVariantToComponent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[componentId: string, nodeId: string, type: \\\"hover\\\" | \\\"pressed\\\", attributes?: unknown]\",\n                value: input\n            }, _errorFactory)) && ((3 <= input.length && 4 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, (\\\"hover\\\" | \\\"pressed\\\"), any]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && (\"hover\" === input[2] || \"pressed\" === input[2] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"(\\\"hover\\\" | \\\"pressed\\\")\",\n                value: input[2]\n            }, _errorFactory)) && true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[componentId: string, nodeId: string, type: \\\"hover\\\" | \\\"pressed\\\", attributes?: unknown]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setMenu: (() => { const _io0 = (input: any): boolean => null !== input.type && undefined === input.type && (undefined === input.visible || \"boolean\" === typeof input.visible) && \"string\" === typeof input.label && (undefined === input.secondaryLabel || \"string\" === typeof input.secondaryLabel) && (undefined === input.enabled || \"boolean\" === typeof input.enabled) && (undefined === input.checked || \"boolean\" === typeof input.checked) && (undefined === input.actionId || \"number\" === typeof input.actionId) && (undefined === input.submenu || Array.isArray(input.submenu) && input.submenu.every((elem: any) => \"object\" === typeof elem && null !== elem && _iu0(elem))); const _io1 = (input: any): boolean => \"separator\" === input.type; const _iu0 = (input: any): any => (() => {\n        if (undefined !== input.label)\n            return _io0(input);\n        else if (\"separator\" === input.type)\n            return _io1(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (null !== input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"undefined\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"undefined\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.visible || \"boolean\" === typeof input.visible || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".visible\",\n        expected: \"(boolean | undefined)\",\n        value: input.visible\n    }, _errorFactory)) && (\"string\" === typeof input.label || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".label\",\n        expected: \"string\",\n        value: input.label\n    }, _errorFactory)) && (undefined === input.secondaryLabel || \"string\" === typeof input.secondaryLabel || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".secondaryLabel\",\n        expected: \"(string | undefined)\",\n        value: input.secondaryLabel\n    }, _errorFactory)) && (undefined === input.enabled || \"boolean\" === typeof input.enabled || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".enabled\",\n        expected: \"(boolean | undefined)\",\n        value: input.enabled\n    }, _errorFactory)) && (undefined === input.checked || \"boolean\" === typeof input.checked || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".checked\",\n        expected: \"(boolean | undefined)\",\n        value: input.checked\n    }, _errorFactory)) && (undefined === input.actionId || \"number\" === typeof input.actionId || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".actionId\",\n        expected: \"(number | undefined)\",\n        value: input.actionId\n    }, _errorFactory)) && (undefined === input.submenu || (Array.isArray(input.submenu) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".submenu\",\n        expected: \"(Array<MenuItemSerializable> | undefined)\",\n        value: input.submenu\n    }, _errorFactory)) && input.submenu.every((elem: any, _index4: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".submenu[\" + _index4 + \"]\",\n        expected: \"(NormalMenuItemSerializable | SeparatorMenuItem)\",\n        value: elem\n    }, _errorFactory)) && _au0(elem, _path + \".submenu[\" + _index4 + \"]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".submenu[\" + _index4 + \"]\",\n        expected: \"(NormalMenuItemSerializable | SeparatorMenuItem)\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".submenu\",\n        expected: \"(Array<MenuItemSerializable> | undefined)\",\n        value: input.submenu\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"separator\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"separator\\\"\",\n        value: input.type\n    }, _errorFactory); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (undefined !== input.label)\n            return _ao0(input, _path, true && _exceptionable);\n        else if (\"separator\" === input.type)\n            return _ao1(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(NormalMenuItemSerializable | SeparatorMenuItem)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"setMenu\"]> => Array.isArray(input) && (input.length === 1 && (Array.isArray(input[0]) && input[0].every((elem: any) => \"object\" === typeof elem && null !== elem && _iu0(elem)))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setMenu\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[menuItems: MenuItemSerializable[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[Array<MenuItemSerializable>]\",\n                value: input\n            }, _errorFactory)) && ((Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<MenuItemSerializable>\",\n                value: input[0]\n            }, _errorFactory)) && input[0].every((elem: any, _index3: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index3 + \"]\",\n                expected: \"(NormalMenuItemSerializable | SeparatorMenuItem)\",\n                value: elem\n            }, _errorFactory)) && _au0(elem, _path + \"[0][\" + _index3 + \"]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index3 + \"]\",\n                expected: \"(NormalMenuItemSerializable | SeparatorMenuItem)\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<MenuItemSerializable>\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[menuItems: MenuItemSerializable[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    showContextMenu: (() => { const _io0 = (input: any): boolean => null !== input.type && undefined === input.type && (undefined === input.visible || \"boolean\" === typeof input.visible) && \"string\" === typeof input.label && (undefined === input.secondaryLabel || \"string\" === typeof input.secondaryLabel) && (undefined === input.enabled || \"boolean\" === typeof input.enabled) && (undefined === input.checked || \"boolean\" === typeof input.checked) && (undefined === input.actionId || \"number\" === typeof input.actionId) && (undefined === input.submenu || Array.isArray(input.submenu) && input.submenu.every((elem: any) => \"object\" === typeof elem && null !== elem && _iu0(elem))); const _io1 = (input: any): boolean => \"separator\" === input.type; const _io2 = (input: any): boolean => \"object\" === typeof input.location && null !== input.location && _io3(input.location) && (undefined === input.placement || \"top\" === input.placement || \"right\" === input.placement || \"bottom\" === input.placement || \"left\" === input.placement || \"top-right\" === input.placement || \"top-left\" === input.placement || \"bottom-right\" === input.placement || \"bottom-left\" === input.placement) && (undefined === input.width || \"number\" === typeof input.width); const _io3 = (input: any): boolean => \"number\" === typeof input.x && \"number\" === typeof input.y; const _iu0 = (input: any): any => (() => {\n        if (undefined !== input.label)\n            return _io0(input);\n        else if (\"separator\" === input.type)\n            return _io1(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (null !== input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"undefined\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"undefined\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.visible || \"boolean\" === typeof input.visible || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".visible\",\n        expected: \"(boolean | undefined)\",\n        value: input.visible\n    }, _errorFactory)) && (\"string\" === typeof input.label || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".label\",\n        expected: \"string\",\n        value: input.label\n    }, _errorFactory)) && (undefined === input.secondaryLabel || \"string\" === typeof input.secondaryLabel || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".secondaryLabel\",\n        expected: \"(string | undefined)\",\n        value: input.secondaryLabel\n    }, _errorFactory)) && (undefined === input.enabled || \"boolean\" === typeof input.enabled || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".enabled\",\n        expected: \"(boolean | undefined)\",\n        value: input.enabled\n    }, _errorFactory)) && (undefined === input.checked || \"boolean\" === typeof input.checked || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".checked\",\n        expected: \"(boolean | undefined)\",\n        value: input.checked\n    }, _errorFactory)) && (undefined === input.actionId || \"number\" === typeof input.actionId || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".actionId\",\n        expected: \"(number | undefined)\",\n        value: input.actionId\n    }, _errorFactory)) && (undefined === input.submenu || (Array.isArray(input.submenu) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".submenu\",\n        expected: \"(Array<MenuItemSerializable> | undefined)\",\n        value: input.submenu\n    }, _errorFactory)) && input.submenu.every((elem: any, _index4: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".submenu[\" + _index4 + \"]\",\n        expected: \"(NormalMenuItemSerializable | SeparatorMenuItem)\",\n        value: elem\n    }, _errorFactory)) && _au0(elem, _path + \".submenu[\" + _index4 + \"]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".submenu[\" + _index4 + \"]\",\n        expected: \"(NormalMenuItemSerializable | SeparatorMenuItem)\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".submenu\",\n        expected: \"(Array<MenuItemSerializable> | undefined)\",\n        value: input.submenu\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"separator\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"separator\\\"\",\n        value: input.type\n    }, _errorFactory); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => ((\"object\" === typeof input.location && null !== input.location || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".location\",\n        expected: \"__type\",\n        value: input.location\n    }, _errorFactory)) && _ao3(input.location, _path + \".location\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".location\",\n        expected: \"__type\",\n        value: input.location\n    }, _errorFactory)) && (undefined === input.placement || \"top\" === input.placement || \"right\" === input.placement || \"bottom\" === input.placement || \"left\" === input.placement || \"top-right\" === input.placement || \"top-left\" === input.placement || \"bottom-right\" === input.placement || \"bottom-left\" === input.placement || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".placement\",\n        expected: \"(\\\"bottom\\\" | \\\"bottom-left\\\" | \\\"bottom-right\\\" | \\\"left\\\" | \\\"right\\\" | \\\"top\\\" | \\\"top-left\\\" | \\\"top-right\\\" | undefined)\",\n        value: input.placement\n    }, _errorFactory)) && (undefined === input.width || \"number\" === typeof input.width || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".width\",\n        expected: \"(number | undefined)\",\n        value: input.width\n    }, _errorFactory)); const _ao3 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"number\" === typeof input.x || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".x\",\n        expected: \"number\",\n        value: input.x\n    }, _errorFactory)) && (\"number\" === typeof input.y || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".y\",\n        expected: \"number\",\n        value: input.y\n    }, _errorFactory)); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (undefined !== input.label)\n            return _ao0(input, _path, true && _exceptionable);\n        else if (\"separator\" === input.type)\n            return _ao1(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(NormalMenuItemSerializable | SeparatorMenuItem)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"showContextMenu\"]> => Array.isArray(input) && (input.length === 2 && (Array.isArray(input[0]) && input[0].every((elem: any) => \"object\" === typeof elem && null !== elem && _iu0(elem))) && (\"object\" === typeof input[1] && null !== input[1] && _io2(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"showContextMenu\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[menuItems: MenuItemSerializable[], config: ContextMenuConfig]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[Array<MenuItemSerializable>, ContextMenuConfig]\",\n                value: input\n            }, _errorFactory)) && ((Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<MenuItemSerializable>\",\n                value: input[0]\n            }, _errorFactory)) && input[0].every((elem: any, _index3: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index3 + \"]\",\n                expected: \"(NormalMenuItemSerializable | SeparatorMenuItem)\",\n                value: elem\n            }, _errorFactory)) && _au0(elem, _path + \"[0][\" + _index3 + \"]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index3 + \"]\",\n                expected: \"(NormalMenuItemSerializable | SeparatorMenuItem)\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<MenuItemSerializable>\",\n                value: input[0]\n            }, _errorFactory)) && ((\"object\" === typeof input[1] && null !== input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"ContextMenuConfig\",\n                value: input[1]\n            }, _errorFactory)) && _ao2(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"ContextMenuConfig\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[menuItems: MenuItemSerializable[], config: ContextMenuConfig]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getBreakpointSuggestionsForWebPage: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getBreakpointSuggestionsForWebPage\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getBreakpointSuggestionsForWebPage\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    addBreakpointToWebPage: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.name && \"number\" === typeof input.width && (undefined === input.viewportHeight || \"number\" === typeof input.viewportHeight); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (\"number\" === typeof input.width || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".width\",\n        expected: \"number\",\n        value: input.width\n    }, _errorFactory)) && (undefined === input.viewportHeight || \"number\" === typeof input.viewportHeight || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".viewportHeight\",\n        expected: \"(number | undefined)\",\n        value: input.viewportHeight\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"addBreakpointToWebPage\"]> => Array.isArray(input) && (input.length === 3 && \"string\" === typeof input[0] && \"string\" === typeof input[1] && (\"object\" === typeof input[2] && null !== input[2] && _io0(input[2]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addBreakpointToWebPage\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, basedOn: string, breakpoint: Breakpoint]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 3 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, Breakpoint]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && ((\"object\" === typeof input[2] && null !== input[2] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"Breakpoint\",\n                value: input[2]\n            }, _errorFactory)) && _ao0(input[2], _path + \"[2]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"Breakpoint\",\n                value: input[2]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, basedOn: string, breakpoint: Breakpoint]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getActiveCollectionItemForWebPage: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getActiveCollectionItemForWebPage\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getActiveCollectionItemForWebPage\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[webPageNodeId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[webPageNodeId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getVariables: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getVariables\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getVariables\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    addVariables: (() => { const _io0 = (input: any): boolean => \"boolean\" === input.type && \"string\" === typeof input.name && (undefined === input.description || \"string\" === typeof input.description) && (undefined === input.defaultValue || \"boolean\" === typeof input.defaultValue); const _io1 = (input: any): boolean => \"number\" === input.type && \"string\" === typeof input.name && (undefined === input.description || \"string\" === typeof input.description) && (undefined === input.defaultValue || \"number\" === typeof input.defaultValue); const _io2 = (input: any): boolean => \"string\" === input.type && \"string\" === typeof input.name && (undefined === input.description || \"string\" === typeof input.description) && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue); const _io3 = (input: any): boolean => \"formattedText\" === input.type && \"string\" === typeof input.name && (undefined === input.description || \"string\" === typeof input.description) && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue); const _io4 = (input: any): boolean => (undefined === input.defaultCaseIndex || \"number\" === typeof input.defaultCaseIndex) && (Array.isArray(input.cases) && input.cases.every((elem: any) => \"object\" === typeof elem && null !== elem && _io5(elem))) && \"enum\" === input.type && \"string\" === typeof input.name && (undefined === input.description || \"string\" === typeof input.description); const _io5 = (input: any): boolean => \"string\" === typeof input.name && (undefined === input.nameByLocale || \"object\" === typeof input.nameByLocale && null !== input.nameByLocale && false === Array.isArray(input.nameByLocale) && _io6(input.nameByLocale)); const _io6 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return \"object\" === typeof value && null !== value && _iu1(value);\n    }); const _io7 = (input: any): boolean => \"set\" === input.action && \"string\" === typeof input.value && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io8 = (input: any): boolean => \"clear\" === input.action; const _io9 = (input: any): boolean => \"ignore\" === input.action && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview); const _io10 = (input: any): boolean => \"color\" === input.type && \"string\" === typeof input.name && (undefined === input.description || \"string\" === typeof input.description) && (null !== input.defaultValue && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue || \"object\" === typeof input.defaultValue && null !== input.defaultValue && _io11(input.defaultValue))); const _io11 = (input: any): boolean => \"string\" === typeof input.id && \"string\" === typeof input.name && \"string\" === typeof input.path && \"ColorStyle\" === input.__class && \"string\" === typeof input.light && (null === input.dark || \"string\" === typeof input.dark); const _io12 = (input: any): boolean => \"image\" === input.type && \"string\" === typeof input.name && (undefined === input.description || \"string\" === typeof input.description) && (undefined === input.defaultValue || \"object\" === typeof input.defaultValue && null !== input.defaultValue && _io13(input.defaultValue)); const _io13 = (input: any): boolean => \"ImageAsset\" === input.__class && \"string\" === typeof input.id && \"string\" === typeof input.thumbnailUrl && (undefined === input.altText || \"string\" === typeof input.altText) && (\"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution) && \"string\" === typeof input.url && (undefined === input.name || \"string\" === typeof input.name); const _io14 = (input: any): boolean => \"file\" === input.type && \"string\" === typeof input.name && (undefined === input.description || \"string\" === typeof input.description) && (undefined === input.defaultValue || \"object\" === typeof input.defaultValue && null !== input.defaultValue && _io15(input.defaultValue)) && (Array.isArray(input.allowedFileTypes) && input.allowedFileTypes.every((elem: any) => \"string\" === typeof elem)); const _io15 = (input: any): boolean => \"FileAsset\" === input.__class && \"string\" === typeof input.id && (null === input.extension || \"string\" === typeof input.extension) && \"string\" === typeof input.url && (undefined === input.name || \"string\" === typeof input.name); const _io16 = (input: any): boolean => \"link\" === input.type && \"string\" === typeof input.name && (undefined === input.description || \"string\" === typeof input.description); const _io17 = (input: any): boolean => \"date\" === input.type && \"string\" === typeof input.name && (undefined === input.description || \"string\" === typeof input.description) && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue) && (undefined === input.displayTime || \"boolean\" === typeof input.displayTime); const _io18 = (input: any): boolean => \"border\" === input.type && \"string\" === typeof input.name && (undefined === input.description || \"string\" === typeof input.description) && (undefined === input.defaultValue || \"object\" === typeof input.defaultValue && null !== input.defaultValue && _io19(input.defaultValue)); const _io19 = (input: any): boolean => \"string\" === typeof input.width && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.width) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px [+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px [+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px [+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.width)) && (null !== input.color && undefined !== input.color && (\"string\" === typeof input.color || \"object\" === typeof input.color && null !== input.color && _io11(input.color))) && (\"solid\" === input.style || \"dashed\" === input.style || \"dotted\" === input.style || \"double\" === input.style); const _iu0 = (input: any): any => (() => {\n        if (\"border\" === input.type)\n            return _io18(input);\n        else if (\"image\" === input.type)\n            return _io12(input);\n        else if (\"color\" === input.type)\n            return _io10(input);\n        else if (\"formattedText\" === input.type)\n            return _io3(input);\n        else if (\"string\" === input.type)\n            return _io2(input);\n        else if (\"number\" === input.type)\n            return _io1(input);\n        else if (\"boolean\" === input.type)\n            return _io0(input);\n        else if (\"enum\" === input.type)\n            return _io4(input);\n        else if (\"file\" === input.type)\n            return _io14(input);\n        else if (\"link\" === input.type)\n            return _io16(input);\n        else if (\"date\" === input.type)\n            return _io17(input);\n        else\n            return false;\n    })(); const _iu1 = (input: any): any => (() => {\n        if (\"set\" === input.action)\n            return _io7(input);\n        else if (\"clear\" === input.action)\n            return _io8(input);\n        else if (\"ignore\" === input.action)\n            return _io9(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"boolean\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"boolean\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && (undefined === input.defaultValue || \"boolean\" === typeof input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(boolean | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"number\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"number\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && (undefined === input.defaultValue || \"number\" === typeof input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(number | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"string\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(string | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)); const _ao3 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"formattedText\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"formattedText\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(string | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)); const _ao4 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.defaultCaseIndex || \"number\" === typeof input.defaultCaseIndex || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultCaseIndex\",\n        expected: \"(number | undefined)\",\n        value: input.defaultCaseIndex\n    }, _errorFactory)) && ((Array.isArray(input.cases) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cases\",\n        expected: \"Array<__type>\",\n        value: input.cases\n    }, _errorFactory)) && input.cases.every((elem: any, _index5: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cases[\" + _index5 + \"]\",\n        expected: \"__type.o5\",\n        value: elem\n    }, _errorFactory)) && _ao5(elem, _path + \".cases[\" + _index5 + \"]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cases[\" + _index5 + \"]\",\n        expected: \"__type.o5\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cases\",\n        expected: \"Array<__type>\",\n        value: input.cases\n    }, _errorFactory)) && (\"enum\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"enum\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(string | undefined)\",\n        value: input.description\n    }, _errorFactory)); const _ao5 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.nameByLocale || (\"object\" === typeof input.nameByLocale && null !== input.nameByLocale && false === Array.isArray(input.nameByLocale) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".nameByLocale\",\n        expected: \"(__type.o6 | undefined)\",\n        value: input.nameByLocale\n    }, _errorFactory)) && _ao6(input.nameByLocale, _path + \".nameByLocale\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".nameByLocale\",\n        expected: \"(__type.o6 | undefined)\",\n        value: input.nameByLocale\n    }, _errorFactory)); const _ao6 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return (\"object\" === typeof value && null !== value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type.o7 | __type.o8 | __type.o9)\",\n            value: value\n        }, _errorFactory)) && _au1(value, _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key), true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n            method: \"typia.createAssert\",\n            path: _path + __typia_transform__accessExpressionAsString._accessExpressionAsString(key),\n            expected: \"(__type.o7 | __type.o8 | __type.o9)\",\n            value: value\n        }, _errorFactory);\n    }); const _ao7 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"set\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"set\\\"\",\n        value: input.action\n    }, _errorFactory)) && (\"string\" === typeof input.value || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".value\",\n        expected: \"string\",\n        value: input.value\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao8 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"clear\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"clear\\\"\",\n        value: input.action\n    }, _errorFactory); const _ao9 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"ignore\" === input.action || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".action\",\n        expected: \"\\\"ignore\\\"\",\n        value: input.action\n    }, _errorFactory)) && (undefined === input.needsReview || \"boolean\" === typeof input.needsReview || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".needsReview\",\n        expected: \"(boolean | undefined)\",\n        value: input.needsReview\n    }, _errorFactory)); const _ao10 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"color\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"color\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && ((null !== input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(ColorStyleData | string | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)) && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue || (\"object\" === typeof input.defaultValue && null !== input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(ColorStyleData | string | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)) && _ao11(input.defaultValue, _path + \".defaultValue\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(ColorStyleData | string | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory))); const _ao11 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (\"string\" === typeof input.path || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".path\",\n        expected: \"string\",\n        value: input.path\n    }, _errorFactory)) && (\"ColorStyle\" === input.__class || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".__class\",\n        expected: \"\\\"ColorStyle\\\"\",\n        value: input.__class\n    }, _errorFactory)) && (\"string\" === typeof input.light || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".light\",\n        expected: \"string\",\n        value: input.light\n    }, _errorFactory)) && (null === input.dark || \"string\" === typeof input.dark || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".dark\",\n        expected: \"(null | string)\",\n        value: input.dark\n    }, _errorFactory)); const _ao12 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"image\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"image\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && (undefined === input.defaultValue || (\"object\" === typeof input.defaultValue && null !== input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(ImageAssetData | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)) && _ao13(input.defaultValue, _path + \".defaultValue\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(ImageAssetData | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)); const _ao13 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"ImageAsset\" === input.__class || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".__class\",\n        expected: \"\\\"ImageAsset\\\"\",\n        value: input.__class\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (\"string\" === typeof input.thumbnailUrl || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".thumbnailUrl\",\n        expected: \"string\",\n        value: input.thumbnailUrl\n    }, _errorFactory)) && (undefined === input.altText || \"string\" === typeof input.altText || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altText\",\n        expected: \"(string | undefined)\",\n        value: input.altText\n    }, _errorFactory)) && (\"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolution\",\n        expected: \"(\\\"auto\\\" | \\\"full\\\" | \\\"large\\\" | \\\"lossless\\\" | \\\"medium\\\" | \\\"small\\\")\",\n        value: input.resolution\n    }, _errorFactory)) && (\"string\" === typeof input.url || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".url\",\n        expected: \"string\",\n        value: input.url\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao14 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"file\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"file\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && (undefined === input.defaultValue || (\"object\" === typeof input.defaultValue && null !== input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(FileAssetData | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)) && _ao15(input.defaultValue, _path + \".defaultValue\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(FileAssetData | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)) && ((Array.isArray(input.allowedFileTypes) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes\",\n        expected: \"Array<string>\",\n        value: input.allowedFileTypes\n    }, _errorFactory)) && input.allowedFileTypes.every((elem: any, _index6: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes[\" + _index6 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes\",\n        expected: \"Array<string>\",\n        value: input.allowedFileTypes\n    }, _errorFactory)); const _ao15 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"FileAsset\" === input.__class || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".__class\",\n        expected: \"\\\"FileAsset\\\"\",\n        value: input.__class\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (null === input.extension || \"string\" === typeof input.extension || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".extension\",\n        expected: \"(null | string)\",\n        value: input.extension\n    }, _errorFactory)) && (\"string\" === typeof input.url || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".url\",\n        expected: \"string\",\n        value: input.url\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao16 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"link\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"link\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(string | undefined)\",\n        value: input.description\n    }, _errorFactory)); const _ao17 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"date\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"date\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(string | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)) && (undefined === input.displayTime || \"boolean\" === typeof input.displayTime || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".displayTime\",\n        expected: \"(boolean | undefined)\",\n        value: input.displayTime\n    }, _errorFactory)); const _ao18 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"border\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"border\\\"\",\n        value: input.type\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && (undefined === input.defaultValue || (\"object\" === typeof input.defaultValue && null !== input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(__type.o16 | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)) && _ao19(input.defaultValue, _path + \".defaultValue\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(__type.o16 | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)); const _ao19 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.width && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.width) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px [+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px [+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px [+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.width)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".width\",\n        expected: \"(`${number}px ${number}px ${number}px ${number}px` | `${number}px`)\",\n        value: input.width\n    }, _errorFactory)) && ((null !== input.color || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".color\",\n        expected: \"(ColorStyleData | string)\",\n        value: input.color\n    }, _errorFactory)) && (undefined !== input.color || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".color\",\n        expected: \"(ColorStyleData | string)\",\n        value: input.color\n    }, _errorFactory)) && (\"string\" === typeof input.color || (\"object\" === typeof input.color && null !== input.color || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".color\",\n        expected: \"(ColorStyleData | string)\",\n        value: input.color\n    }, _errorFactory)) && _ao11(input.color, _path + \".color\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".color\",\n        expected: \"(ColorStyleData | string)\",\n        value: input.color\n    }, _errorFactory))) && (\"solid\" === input.style || \"dashed\" === input.style || \"dotted\" === input.style || \"double\" === input.style || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".style\",\n        expected: \"(\\\"dashed\\\" | \\\"dotted\\\" | \\\"double\\\" | \\\"solid\\\")\",\n        value: input.style\n    }, _errorFactory)); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"border\" === input.type)\n            return _ao18(input, _path, true && _exceptionable);\n        else if (\"image\" === input.type)\n            return _ao12(input, _path, true && _exceptionable);\n        else if (\"color\" === input.type)\n            return _ao10(input, _path, true && _exceptionable);\n        else if (\"formattedText\" === input.type)\n            return _ao3(input, _path, true && _exceptionable);\n        else if (\"string\" === input.type)\n            return _ao2(input, _path, true && _exceptionable);\n        else if (\"number\" === input.type)\n            return _ao1(input, _path, true && _exceptionable);\n        else if (\"boolean\" === input.type)\n            return _ao0(input, _path, true && _exceptionable);\n        else if (\"enum\" === input.type)\n            return _ao4(input, _path, true && _exceptionable);\n        else if (\"file\" === input.type)\n            return _ao14(input, _path, true && _exceptionable);\n        else if (\"link\" === input.type)\n            return _ao16(input, _path, true && _exceptionable);\n        else if (\"date\" === input.type)\n            return _ao17(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(__type.o15 | __type.o11 | __type.o10 | __type.o3 | __type.o2 | __type.o1 | __type | __type.o4 | __type.o12 | __type.o13 | __type.o14)\",\n                value: input\n            }, _errorFactory);\n    })(); const _au1 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"set\" === input.action)\n            return _ao7(input, _path, true && _exceptionable);\n        else if (\"clear\" === input.action)\n            return _ao8(input, _path, true && _exceptionable);\n        else if (\"ignore\" === input.action)\n            return _ao9(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(__type.o7 | __type.o8 | __type.o9)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"addVariables\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (Array.isArray(input[1]) && input[1].every((elem: any) => \"object\" === typeof elem && null !== elem && _iu0(elem)))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"addVariables\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, pluginCreateVariables: ({ type: \\\"boolean\\\"; name: string; description?: string | undefined; defaultValue?: boolean | undefined; } | { type: \\\"number\\\"; name: string; description?: string | undefined; defaultValue?: number | undefined; } | ... 8 more ... | { ...; })[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Array<{ type: \\\"boolean\\\"; name: string; description?: string | undefined; defaultValue?: boolean | undefined; } | { type: \\\"number\\\"; name: string; description?: string | undefined; defaultValue?: number | undefined; } | ... 8 more ... | { ...; }>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<{ type: \\\"boolean\\\"; name: string; description?: string | undefined; defaultValue?: boolean | undefined; } | { type: \\\"number\\\"; name: string; description?: string | undefined; defaultValue?: number | undefined; } | ... 8 more ... | { ...; }>\",\n                value: input[1]\n            }, _errorFactory)) && input[1].every((elem: any, _index4: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index4 + \"]\",\n                expected: \"(__type | __type.o1 | __type.o10 | __type.o11 | __type.o12 | __type.o13 | __type.o14 | __type.o15 | __type.o2 | __type.o3 | __type.o4)\",\n                value: elem\n            }, _errorFactory)) && _au0(elem, _path + \"[1][\" + _index4 + \"]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index4 + \"]\",\n                expected: \"(__type | __type.o1 | __type.o10 | __type.o11 | __type.o12 | __type.o13 | __type.o14 | __type.o15 | __type.o2 | __type.o3 | __type.o4)\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<{ type: \\\"boolean\\\"; name: string; description?: string | undefined; defaultValue?: boolean | undefined; } | { type: \\\"number\\\"; name: string; description?: string | undefined; defaultValue?: number | undefined; } | ... 8 more ... | { ...; }>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, pluginCreateVariables: ({ type: \\\"boolean\\\"; name: string; description?: string | undefined; defaultValue?: boolean | undefined; } | { type: \\\"number\\\"; name: string; description?: string | undefined; defaultValue?: number | undefined; } | ... 8 more ... | { ...; })[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    updateVariable: (() => { const _io0 = (input: any): boolean => \"boolean\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (null === input.description || undefined === input.description || \"string\" === typeof input.description) && (undefined === input.defaultValue || \"boolean\" === typeof input.defaultValue); const _io1 = (input: any): boolean => \"number\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (null === input.description || undefined === input.description || \"string\" === typeof input.description) && (undefined === input.defaultValue || \"number\" === typeof input.defaultValue); const _io2 = (input: any): boolean => \"string\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (null === input.description || undefined === input.description || \"string\" === typeof input.description) && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue); const _io3 = (input: any): boolean => \"formattedText\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (null === input.description || undefined === input.description || \"string\" === typeof input.description) && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue); const _io4 = (input: any): boolean => \"enum\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (null === input.description || undefined === input.description || \"string\" === typeof input.description) && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue); const _io5 = (input: any): boolean => \"color\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (null === input.description || undefined === input.description || \"string\" === typeof input.description) && (null !== input.defaultValue && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue || \"object\" === typeof input.defaultValue && null !== input.defaultValue && _io6(input.defaultValue))); const _io6 = (input: any): boolean => \"string\" === typeof input.id && \"string\" === typeof input.name && \"string\" === typeof input.path && \"ColorStyle\" === input.__class && \"string\" === typeof input.light && (null === input.dark || \"string\" === typeof input.dark); const _io7 = (input: any): boolean => \"image\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (null === input.description || undefined === input.description || \"string\" === typeof input.description) && (undefined === input.defaultValue || \"object\" === typeof input.defaultValue && null !== input.defaultValue && _io8(input.defaultValue)); const _io8 = (input: any): boolean => \"ImageAsset\" === input.__class && \"string\" === typeof input.id && \"string\" === typeof input.thumbnailUrl && (undefined === input.altText || \"string\" === typeof input.altText) && (\"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution) && \"string\" === typeof input.url && (undefined === input.name || \"string\" === typeof input.name); const _io9 = (input: any): boolean => \"file\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (null === input.description || undefined === input.description || \"string\" === typeof input.description) && (undefined === input.defaultValue || \"object\" === typeof input.defaultValue && null !== input.defaultValue && _io10(input.defaultValue)) && (undefined === input.allowedFileTypes || Array.isArray(input.allowedFileTypes) && input.allowedFileTypes.every((elem: any) => \"string\" === typeof elem)); const _io10 = (input: any): boolean => \"FileAsset\" === input.__class && \"string\" === typeof input.id && (null === input.extension || \"string\" === typeof input.extension) && \"string\" === typeof input.url && (undefined === input.name || \"string\" === typeof input.name); const _io11 = (input: any): boolean => \"link\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (null === input.description || undefined === input.description || \"string\" === typeof input.description); const _io12 = (input: any): boolean => \"date\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (null === input.description || undefined === input.description || \"string\" === typeof input.description) && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue) && (undefined === input.displayTime || \"boolean\" === typeof input.displayTime); const _io13 = (input: any): boolean => \"border\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (null === input.description || undefined === input.description || \"string\" === typeof input.description) && (undefined === input.defaultValue || \"object\" === typeof input.defaultValue && null !== input.defaultValue && _io14(input.defaultValue)); const _io14 = (input: any): boolean => \"string\" === typeof input.width && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.width) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px [+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px [+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px [+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.width)) && (null !== input.color && undefined !== input.color && (\"string\" === typeof input.color || \"object\" === typeof input.color && null !== input.color && _io6(input.color))) && (\"solid\" === input.style || \"dashed\" === input.style || \"dotted\" === input.style || \"double\" === input.style); const _io15 = (input: any): boolean => \"unsupported\" === input.type && (undefined === input.name || \"string\" === typeof input.name) && (null === input.description || undefined === input.description || \"string\" === typeof input.description); const _iu0 = (input: any): any => (() => {\n        if (\"border\" === input.type)\n            return _io13(input);\n        else if (\"image\" === input.type)\n            return _io7(input);\n        else if (\"color\" === input.type)\n            return _io5(input);\n        else if (\"enum\" === input.type)\n            return _io4(input);\n        else if (\"formattedText\" === input.type)\n            return _io3(input);\n        else if (\"string\" === input.type)\n            return _io2(input);\n        else if (\"number\" === input.type)\n            return _io1(input);\n        else if (\"boolean\" === input.type)\n            return _io0(input);\n        else if (\"file\" === input.type)\n            return _io9(input);\n        else if (\"link\" === input.type)\n            return _io11(input);\n        else if (\"date\" === input.type)\n            return _io12(input);\n        else if (\"unsupported\" === input.type)\n            return _io15(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"boolean\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"boolean\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (null === input.description || undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(null | string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && (undefined === input.defaultValue || \"boolean\" === typeof input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(boolean | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"number\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"number\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (null === input.description || undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(null | string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && (undefined === input.defaultValue || \"number\" === typeof input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(number | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"string\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (null === input.description || undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(null | string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(string | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)); const _ao3 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"formattedText\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"formattedText\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (null === input.description || undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(null | string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(string | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)); const _ao4 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"enum\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"enum\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (null === input.description || undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(null | string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(string | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)); const _ao5 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"color\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"color\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (null === input.description || undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(null | string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && ((null !== input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(ColorStyleData | string | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)) && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue || (\"object\" === typeof input.defaultValue && null !== input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(ColorStyleData | string | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)) && _ao6(input.defaultValue, _path + \".defaultValue\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(ColorStyleData | string | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory))); const _ao6 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (\"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"string\",\n        value: input.name\n    }, _errorFactory)) && (\"string\" === typeof input.path || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".path\",\n        expected: \"string\",\n        value: input.path\n    }, _errorFactory)) && (\"ColorStyle\" === input.__class || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".__class\",\n        expected: \"\\\"ColorStyle\\\"\",\n        value: input.__class\n    }, _errorFactory)) && (\"string\" === typeof input.light || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".light\",\n        expected: \"string\",\n        value: input.light\n    }, _errorFactory)) && (null === input.dark || \"string\" === typeof input.dark || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".dark\",\n        expected: \"(null | string)\",\n        value: input.dark\n    }, _errorFactory)); const _ao7 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"image\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"image\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (null === input.description || undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(null | string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && (undefined === input.defaultValue || (\"object\" === typeof input.defaultValue && null !== input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(ImageAssetData | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)) && _ao8(input.defaultValue, _path + \".defaultValue\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(ImageAssetData | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)); const _ao8 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"ImageAsset\" === input.__class || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".__class\",\n        expected: \"\\\"ImageAsset\\\"\",\n        value: input.__class\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (\"string\" === typeof input.thumbnailUrl || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".thumbnailUrl\",\n        expected: \"string\",\n        value: input.thumbnailUrl\n    }, _errorFactory)) && (undefined === input.altText || \"string\" === typeof input.altText || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".altText\",\n        expected: \"(string | undefined)\",\n        value: input.altText\n    }, _errorFactory)) && (\"auto\" === input.resolution || \"lossless\" === input.resolution || \"small\" === input.resolution || \"medium\" === input.resolution || \"large\" === input.resolution || \"full\" === input.resolution || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".resolution\",\n        expected: \"(\\\"auto\\\" | \\\"full\\\" | \\\"large\\\" | \\\"lossless\\\" | \\\"medium\\\" | \\\"small\\\")\",\n        value: input.resolution\n    }, _errorFactory)) && (\"string\" === typeof input.url || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".url\",\n        expected: \"string\",\n        value: input.url\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao9 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"file\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"file\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (null === input.description || undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(null | string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && (undefined === input.defaultValue || (\"object\" === typeof input.defaultValue && null !== input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(FileAssetData | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)) && _ao10(input.defaultValue, _path + \".defaultValue\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(FileAssetData | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)) && (undefined === input.allowedFileTypes || (Array.isArray(input.allowedFileTypes) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.allowedFileTypes\n    }, _errorFactory)) && input.allowedFileTypes.every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes[\" + _index2 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".allowedFileTypes\",\n        expected: \"(Array<string> | undefined)\",\n        value: input.allowedFileTypes\n    }, _errorFactory)); const _ao10 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"FileAsset\" === input.__class || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".__class\",\n        expected: \"\\\"FileAsset\\\"\",\n        value: input.__class\n    }, _errorFactory)) && (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (null === input.extension || \"string\" === typeof input.extension || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".extension\",\n        expected: \"(null | string)\",\n        value: input.extension\n    }, _errorFactory)) && (\"string\" === typeof input.url || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".url\",\n        expected: \"string\",\n        value: input.url\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)); const _ao11 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"link\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"link\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (null === input.description || undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(null | string | undefined)\",\n        value: input.description\n    }, _errorFactory)); const _ao12 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"date\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"date\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (null === input.description || undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(null | string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && (undefined === input.defaultValue || \"string\" === typeof input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(string | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)) && (undefined === input.displayTime || \"boolean\" === typeof input.displayTime || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".displayTime\",\n        expected: \"(boolean | undefined)\",\n        value: input.displayTime\n    }, _errorFactory)); const _ao13 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"border\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"border\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (null === input.description || undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(null | string | undefined)\",\n        value: input.description\n    }, _errorFactory)) && (undefined === input.defaultValue || (\"object\" === typeof input.defaultValue && null !== input.defaultValue || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(__type.o11 | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)) && _ao14(input.defaultValue, _path + \".defaultValue\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".defaultValue\",\n        expected: \"(__type.o11 | undefined)\",\n        value: input.defaultValue\n    }, _errorFactory)); const _ao14 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.width && (RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.width) || RegExp(/^[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px [+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px [+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px [+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?px$/).test(input.width)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".width\",\n        expected: \"(`${number}px ${number}px ${number}px ${number}px` | `${number}px`)\",\n        value: input.width\n    }, _errorFactory)) && ((null !== input.color || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".color\",\n        expected: \"(ColorStyleData | string)\",\n        value: input.color\n    }, _errorFactory)) && (undefined !== input.color || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".color\",\n        expected: \"(ColorStyleData | string)\",\n        value: input.color\n    }, _errorFactory)) && (\"string\" === typeof input.color || (\"object\" === typeof input.color && null !== input.color || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".color\",\n        expected: \"(ColorStyleData | string)\",\n        value: input.color\n    }, _errorFactory)) && _ao6(input.color, _path + \".color\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".color\",\n        expected: \"(ColorStyleData | string)\",\n        value: input.color\n    }, _errorFactory))) && (\"solid\" === input.style || \"dashed\" === input.style || \"dotted\" === input.style || \"double\" === input.style || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".style\",\n        expected: \"(\\\"dashed\\\" | \\\"dotted\\\" | \\\"double\\\" | \\\"solid\\\")\",\n        value: input.style\n    }, _errorFactory)); const _ao15 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"unsupported\" === input.type || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".type\",\n        expected: \"\\\"unsupported\\\"\",\n        value: input.type\n    }, _errorFactory)) && (undefined === input.name || \"string\" === typeof input.name || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".name\",\n        expected: \"(string | undefined)\",\n        value: input.name\n    }, _errorFactory)) && (null === input.description || undefined === input.description || \"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"(null | string | undefined)\",\n        value: input.description\n    }, _errorFactory)); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"border\" === input.type)\n            return _ao13(input, _path, true && _exceptionable);\n        else if (\"image\" === input.type)\n            return _ao7(input, _path, true && _exceptionable);\n        else if (\"color\" === input.type)\n            return _ao5(input, _path, true && _exceptionable);\n        else if (\"enum\" === input.type)\n            return _ao4(input, _path, true && _exceptionable);\n        else if (\"formattedText\" === input.type)\n            return _ao3(input, _path, true && _exceptionable);\n        else if (\"string\" === input.type)\n            return _ao2(input, _path, true && _exceptionable);\n        else if (\"number\" === input.type)\n            return _ao1(input, _path, true && _exceptionable);\n        else if (\"boolean\" === input.type)\n            return _ao0(input, _path, true && _exceptionable);\n        else if (\"file\" === input.type)\n            return _ao9(input, _path, true && _exceptionable);\n        else if (\"link\" === input.type)\n            return _ao11(input, _path, true && _exceptionable);\n        else if (\"date\" === input.type)\n            return _ao12(input, _path, true && _exceptionable);\n        else if (\"unsupported\" === input.type)\n            return _ao15(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(__type.o10 | __type.o6 | __type.o5 | __type.o4 | __type.o3 | __type.o2 | __type.o1 | __type | __type.o7 | __type.o8 | __type.o9 | __type.o12)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"updateVariable\"]> => Array.isArray(input) && (input.length === 3 && \"string\" === typeof input[0] && \"string\" === typeof input[1] && (\"object\" === typeof input[2] && null !== input[2] && _iu0(input[2]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"updateVariable\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, variableId: string, pluginUpdateVariable: Marshaled<UpdateVariable>]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 3 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string, (__type | __type.o1 | __type.o10 | __type.o12 | __type.o2 | __type.o3 | __type.o4 | __type.o5 | __type.o6 | __type.o7 | __type.o8 | __type.o9)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory)) && ((\"object\" === typeof input[2] && null !== input[2] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"(__type | __type.o1 | __type.o10 | __type.o12 | __type.o2 | __type.o3 | __type.o4 | __type.o5 | __type.o6 | __type.o7 | __type.o8 | __type.o9)\",\n                value: input[2]\n            }, _errorFactory)) && _au0(input[2], _path + \"[2]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[2]\",\n                expected: \"(__type | __type.o1 | __type.o10 | __type.o12 | __type.o2 | __type.o3 | __type.o4 | __type.o5 | __type.o6 | __type.o7 | __type.o8 | __type.o9)\",\n                value: input[2]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, variableId: string, pluginUpdateVariable: Marshaled<UpdateVariable>]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    removeVariables: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"removeVariables\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (Array.isArray(input[1]) && input[1].every((elem: any) => \"string\" === typeof elem))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"removeVariables\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, variableIds: string[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Array<string>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<string>\",\n                value: input[1]\n            }, _errorFactory)) && input[1].every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index2 + \"]\",\n                expected: \"string\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<string>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, variableIds: string[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    setVariableOrder: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"setVariableOrder\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (Array.isArray(input[1]) && input[1].every((elem: any) => \"string\" === typeof elem))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"setVariableOrder\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, variableIds: string[]]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, Array<string>]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<string>\",\n                value: input[1]\n            }, _errorFactory)) && input[1].every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index2 + \"]\",\n                expected: \"string\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"Array<string>\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[nodeId: string, variableIds: string[]]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getVectorSets: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getVectorSets\"]> => Array.isArray(input) && input.length === 0; let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getVectorSets\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) && (input.length === 0 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getVectorSetItems: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getVectorSetItems\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getVectorSetItems\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[vectorSetId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[vectorSetId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getVectorSetItemVariables: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getVectorSetItemVariables\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && \"string\" === typeof input[1]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getVectorSetItemVariables\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[vectorSetItemId: string, moduleId: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (\"string\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"string\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[vectorSetItemId: string, moduleId: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    createDesignPage: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"createDesignPage\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"createDesignPage\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[pageName: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[pageName: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    createWebPage: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"createWebPage\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"createWebPage\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[pagePath: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[pagePath: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    // Headless api\n    readProjectForAgent: (() => { const _io0 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _io1 = (input: any): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"readProjectForAgent\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && (Array.isArray(input[0]) && input[0].every((elem: any) => \"object\" === typeof elem && null !== elem && false === Array.isArray(elem) && _io0(elem))) && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io1(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"readProjectForAgent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[queries: Record<string, unknown>[], options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[Array<Record<string, unknown>>, (__type | undefined)]\",\n                value: input\n            }, _errorFactory)) && ((Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<Record<string, unknown>>\",\n                value: input[0]\n            }, _errorFactory)) && input[0].every((elem: any, _index2: number) => (\"object\" === typeof elem && null !== elem && false === Array.isArray(elem) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index2 + \"]\",\n                expected: \"Record<string, unknown>\",\n                value: elem\n            }, _errorFactory)) && _ao0(elem, _path + \"[0][\" + _index2 + \"]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0][\" + _index2 + \"]\",\n                expected: \"Record<string, unknown>\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Array<Record<string, unknown>>\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao1(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[queries: Record<string, unknown>[], options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getAgentSystemPrompt: noArguments,\n    getAgentContext: (() => { const _io0 = (input: any): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"getAgentContext\"]> => Array.isArray(input) && (0 <= input.length && 1 >= input.length && (undefined === input[0] || \"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getAgentContext\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory)) && ((0 <= input.length && 1 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(__type | undefined)]\",\n                value: input\n            }, _errorFactory)) && (undefined === input[0] || (\"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(__type | undefined)\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(__type | undefined)\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    applyAgentChanges: (() => { const _io0 = (input: any): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"applyAgentChanges\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && \"string\" === typeof input[0] && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"applyAgentChanges\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[dsl: string, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, (__type | undefined)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[dsl: string, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    publishForAgent: (() => { const _io0 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const __is = (input: any): input is Parameters<PluginMessageAPI[\"publishForAgent\"]> => Array.isArray(input) && (0 <= input.length && 1 >= input.length && (undefined === input[0] || \"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"publishForAgent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input?: Record<string, unknown> | undefined]\",\n                value: input\n            }, _errorFactory)) && ((0 <= input.length && 1 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(Record<string, unknown> | undefined)]\",\n                value: input\n            }, _errorFactory)) && (undefined === input[0] || (\"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(Record<string, unknown> | undefined)\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(Record<string, unknown> | undefined)\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input?: Record<string, unknown> | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    queryImagesForAgent: (() => { const _io0 = (input: any): boolean => Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => false === _exceptionable || Object.keys(input).every((key: any) => {\n        const value = input[key];\n        if (undefined === value)\n            return true;\n        return true;\n    }); const __is = (input: any): input is Parameters<PluginMessageAPI[\"queryImagesForAgent\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"queryImagesForAgent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: Record<string, unknown>]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[Record<string, unknown>]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Record<string, unknown>\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"Record<string, unknown>\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: Record<string, unknown>]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    reviewChangesForAgent: (() => { const _io0 = (input: any): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"reviewChangesForAgent\"]> => Array.isArray(input) && (0 <= input.length && 1 >= input.length && (undefined === input[0] || \"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"reviewChangesForAgent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory)) && ((0 <= input.length && 1 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(__type | undefined)]\",\n                value: input\n            }, _errorFactory)) && (undefined === input[0] || (\"object\" === typeof input[0] && null !== input[0] && false === Array.isArray(input[0]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(__type | undefined)\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(__type | undefined)\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    flattenComponentInstanceForAgent: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.id; const _io1 = (input: any): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"flattenComponentInstanceForAgent\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0])) && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io1(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"flattenComponentInstanceForAgent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { id: string; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[__type, (__type.o1 | undefined)]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao1(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { id: string; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    makeExternalComponentLocalForAgent: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.id && (undefined === input.replaceAll || \"boolean\" === typeof input.replaceAll); const _io1 = (input: any): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.replaceAll || \"boolean\" === typeof input.replaceAll || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".replaceAll\",\n        expected: \"(boolean | undefined)\",\n        value: input.replaceAll\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"makeExternalComponentLocalForAgent\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0])) && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io1(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"makeExternalComponentLocalForAgent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { id: string; replaceAll?: boolean | undefined; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[__type, (__type.o1 | undefined)]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao1(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { id: string; replaceAll?: boolean | undefined; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getNodeForAgent: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.id; const _io1 = (input: any): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"getNodeForAgent\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0])) && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io1(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getNodeForAgent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { id: string; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[__type, (__type.o1 | undefined)]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao1(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { id: string; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getNodesForAgent: (() => { const _io0 = (input: any): boolean => Array.isArray(input.ids) && input.ids.every((elem: any) => \"string\" === typeof elem); const _io1 = (input: any): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (Array.isArray(input.ids) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".ids\",\n        expected: \"ReadonlyArray<string>\",\n        value: input.ids\n    }, _errorFactory)) && input.ids.every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".ids[\" + _index2 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".ids\",\n        expected: \"ReadonlyArray<string>\",\n        value: input.ids\n    }, _errorFactory); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"getNodesForAgent\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0])) && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io1(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getNodesForAgent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { ids: readonly string[]; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[__type, (__type.o1 | undefined)]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao1(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { ids: readonly string[]; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getNodesOfTypesForAgent: (() => { const _io0 = (input: any): boolean => Array.isArray(input.types) && input.types.every((elem: any) => \"string\" === typeof elem); const _io1 = (input: any): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (Array.isArray(input.types) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".types\",\n        expected: \"ReadonlyArray<string>\",\n        value: input.types\n    }, _errorFactory)) && input.types.every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".types[\" + _index2 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".types\",\n        expected: \"ReadonlyArray<string>\",\n        value: input.types\n    }, _errorFactory); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"getNodesOfTypesForAgent\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0])) && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io1(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getNodesOfTypesForAgent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { types: readonly string[]; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[__type, (__type.o1 | undefined)]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao1(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { types: readonly string[]; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getScopeNodeForAgent: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.id; const _io1 = (input: any): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"getScopeNodeForAgent\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0])) && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io1(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getScopeNodeForAgent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { id: string; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[__type, (__type.o1 | undefined)]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao1(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { id: string; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getGroundNodeForAgent: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.id; const _io1 = (input: any): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"getGroundNodeForAgent\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0])) && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io1(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getGroundNodeForAgent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { id: string; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[__type, (__type.o1 | undefined)]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao1(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { id: string; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getParentNodeForAgent: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.id; const _io1 = (input: any): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"getParentNodeForAgent\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0])) && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io1(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getParentNodeForAgent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { id: string; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[__type, (__type.o1 | undefined)]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao1(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { id: string; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getAncestorsForAgent: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.id; const _io1 = (input: any): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => \"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"getAncestorsForAgent\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0])) && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io1(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getAncestorsForAgent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { id: string; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[__type, (__type.o1 | undefined)]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao1(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { id: string; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    serializeForAgent: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.id && (undefined === input.depth || \"number\" === typeof input.depth) && (undefined === input.attributeFilter || Array.isArray(input.attributeFilter) && input.attributeFilter.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.ancestorPath || \"boolean\" === typeof input.ancestorPath); const _io1 = (input: any): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.id || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".id\",\n        expected: \"string\",\n        value: input.id\n    }, _errorFactory)) && (undefined === input.depth || \"number\" === typeof input.depth || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".depth\",\n        expected: \"(number | undefined)\",\n        value: input.depth\n    }, _errorFactory)) && (undefined === input.attributeFilter || (Array.isArray(input.attributeFilter) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".attributeFilter\",\n        expected: \"(ReadonlyArray<string> | undefined)\",\n        value: input.attributeFilter\n    }, _errorFactory)) && input.attributeFilter.every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".attributeFilter[\" + _index2 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".attributeFilter\",\n        expected: \"(ReadonlyArray<string> | undefined)\",\n        value: input.attributeFilter\n    }, _errorFactory)) && (undefined === input.ancestorPath || \"boolean\" === typeof input.ancestorPath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".ancestorPath\",\n        expected: \"(boolean | undefined)\",\n        value: input.ancestorPath\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"serializeForAgent\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0])) && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io1(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"serializeForAgent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { id: string; depth?: number | undefined; attributeFilter?: readonly string[] | undefined; ancestorPath?: boolean | undefined; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[__type, (__type.o1 | undefined)]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao1(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { id: string; depth?: number | undefined; attributeFilter?: readonly string[] | undefined; ancestorPath?: boolean | undefined; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    serializeNodesForAgent: (() => { const _io0 = (input: any): boolean => Array.isArray(input.ids) && input.ids.every((elem: any) => \"string\" === typeof elem) && (undefined === input.depth || \"number\" === typeof input.depth) && (undefined === input.attributeFilter || Array.isArray(input.attributeFilter) && input.attributeFilter.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.ancestorPath || \"boolean\" === typeof input.ancestorPath); const _io1 = (input: any): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => ((Array.isArray(input.ids) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".ids\",\n        expected: \"ReadonlyArray<string>\",\n        value: input.ids\n    }, _errorFactory)) && input.ids.every((elem: any, _index3: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".ids[\" + _index3 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".ids\",\n        expected: \"ReadonlyArray<string>\",\n        value: input.ids\n    }, _errorFactory)) && (undefined === input.depth || \"number\" === typeof input.depth || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".depth\",\n        expected: \"(number | undefined)\",\n        value: input.depth\n    }, _errorFactory)) && (undefined === input.attributeFilter || (Array.isArray(input.attributeFilter) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".attributeFilter\",\n        expected: \"(ReadonlyArray<string> | undefined)\",\n        value: input.attributeFilter\n    }, _errorFactory)) && input.attributeFilter.every((elem: any, _index4: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".attributeFilter[\" + _index4 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".attributeFilter\",\n        expected: \"(ReadonlyArray<string> | undefined)\",\n        value: input.attributeFilter\n    }, _errorFactory)) && (undefined === input.ancestorPath || \"boolean\" === typeof input.ancestorPath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".ancestorPath\",\n        expected: \"(boolean | undefined)\",\n        value: input.ancestorPath\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory); const __is = (input: any): input is Parameters<PluginMessageAPI[\"serializeNodesForAgent\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0])) && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io1(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"serializeNodesForAgent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { ids: readonly string[]; depth?: number | undefined; attributeFilter?: readonly string[] | undefined; ancestorPath?: boolean | undefined; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[__type, (__type.o1 | undefined)]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"__type\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao1(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o1 | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { ids: readonly string[]; depth?: number | undefined; attributeFilter?: readonly string[] | undefined; ancestorPath?: boolean | undefined; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    paginateForAgent: (() => { const _io0 = (input: any): boolean => Array.isArray(input.items) && (null !== input.keyName && undefined === input.keyName) && (null !== input.cursor && undefined === input.cursor); const _io1 = (input: any): boolean => \"string\" === typeof input.keyName && \"number\" === typeof input.cursor && (null !== input.items && undefined === input.items); const _io2 = (input: any): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath; const _iu0 = (input: any): any => (() => {\n        if (\"string\" === typeof input.keyName)\n            return _io1(input);\n        else if (Array.isArray(input.items))\n            return _io0(input);\n        else\n            return false;\n    })(); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (Array.isArray(input.items) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".items\",\n        expected: \"ReadonlyArray<unknown>\",\n        value: input.items\n    }, _errorFactory)) && ((null !== input.keyName || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".keyName\",\n        expected: \"undefined\",\n        value: input.keyName\n    }, _errorFactory)) && (undefined === input.keyName || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".keyName\",\n        expected: \"undefined\",\n        value: input.keyName\n    }, _errorFactory))) && ((null !== input.cursor || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cursor\",\n        expected: \"undefined\",\n        value: input.cursor\n    }, _errorFactory)) && (undefined === input.cursor || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cursor\",\n        expected: \"undefined\",\n        value: input.cursor\n    }, _errorFactory))); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.keyName || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".keyName\",\n        expected: \"string\",\n        value: input.keyName\n    }, _errorFactory)) && (\"number\" === typeof input.cursor || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".cursor\",\n        expected: \"number\",\n        value: input.cursor\n    }, _errorFactory)) && ((null !== input.items || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".items\",\n        expected: \"undefined\",\n        value: input.items\n    }, _errorFactory)) && (undefined === input.items || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".items\",\n        expected: \"undefined\",\n        value: input.items\n    }, _errorFactory))); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory); const _au0 = (input: any, _path: string, _exceptionable: boolean = true): any => (() => {\n        if (\"string\" === typeof input.keyName)\n            return _ao1(input, _path, true && _exceptionable);\n        else if (Array.isArray(input.items))\n            return _ao0(input, _path, true && _exceptionable);\n        else\n            return __typia_transform__assertGuard._assertGuard(_exceptionable, {\n                method: \"typia.createAssert\",\n                path: _path,\n                expected: \"(__type.o1 | __type)\",\n                value: input\n            }, _errorFactory);\n    })(); const __is = (input: any): input is Parameters<PluginMessageAPI[\"paginateForAgent\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && (\"object\" === typeof input[0] && null !== input[0] && _iu0(input[0])) && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io2(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"paginateForAgent\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { items: readonly unknown[]; keyName?: undefined; cursor?: undefined; } | { keyName: string; cursor: number; items?: undefined; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(__type | __type.o1), (__type.o2 | undefined)]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(__type | __type.o1)\",\n                value: input[0]\n            }, _errorFactory)) && _au0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(__type | __type.o1)\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o2 | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao2(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(__type.o2 | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[input: { items: readonly unknown[]; keyName?: undefined; cursor?: undefined; } | { keyName: string; cursor: number; items?: undefined; }, options?: { pagePath?: string | undefined; } | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    startAgentConversation: (() => { const _io0 = (input: any): boolean => (undefined === input.pagePath || \"string\" === typeof input.pagePath) && (undefined === input.selectionNodeIds || Array.isArray(input.selectionNodeIds) && input.selectionNodeIds.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.imageUrls || Array.isArray(input.imageUrls) && input.imageUrls.every((elem: any) => \"string\" === typeof elem)); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory)) && (undefined === input.selectionNodeIds || (Array.isArray(input.selectionNodeIds) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".selectionNodeIds\",\n        expected: \"(ReadonlyArray<string> | undefined)\",\n        value: input.selectionNodeIds\n    }, _errorFactory)) && input.selectionNodeIds.every((elem: any, _index3: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".selectionNodeIds[\" + _index3 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".selectionNodeIds\",\n        expected: \"(ReadonlyArray<string> | undefined)\",\n        value: input.selectionNodeIds\n    }, _errorFactory)) && (undefined === input.imageUrls || (Array.isArray(input.imageUrls) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".imageUrls\",\n        expected: \"(ReadonlyArray<string> | undefined)\",\n        value: input.imageUrls\n    }, _errorFactory)) && input.imageUrls.every((elem: any, _index4: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".imageUrls[\" + _index4 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".imageUrls\",\n        expected: \"(ReadonlyArray<string> | undefined)\",\n        value: input.imageUrls\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"startAgentConversation\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && \"string\" === typeof input[0] && (undefined === input[1] || \"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"startAgentConversation\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[prompt: string, options?: StartAgentConversationOptions | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, (StartAgentConversationOptions | undefined)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (\"object\" === typeof input[1] && null !== input[1] && false === Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(StartAgentConversationOptions | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(StartAgentConversationOptions | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[prompt: string, options?: StartAgentConversationOptions | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    continueAgentConversation: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.conversationId && (undefined === input.selectionNodeIds || Array.isArray(input.selectionNodeIds) && input.selectionNodeIds.every((elem: any) => \"string\" === typeof elem)) && (undefined === input.imageUrls || Array.isArray(input.imageUrls) && input.imageUrls.every((elem: any) => \"string\" === typeof elem)); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.conversationId || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".conversationId\",\n        expected: \"string\",\n        value: input.conversationId\n    }, _errorFactory)) && (undefined === input.selectionNodeIds || (Array.isArray(input.selectionNodeIds) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".selectionNodeIds\",\n        expected: \"(ReadonlyArray<string> | undefined)\",\n        value: input.selectionNodeIds\n    }, _errorFactory)) && input.selectionNodeIds.every((elem: any, _index3: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".selectionNodeIds[\" + _index3 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".selectionNodeIds\",\n        expected: \"(ReadonlyArray<string> | undefined)\",\n        value: input.selectionNodeIds\n    }, _errorFactory)) && (undefined === input.imageUrls || (Array.isArray(input.imageUrls) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".imageUrls\",\n        expected: \"(ReadonlyArray<string> | undefined)\",\n        value: input.imageUrls\n    }, _errorFactory)) && input.imageUrls.every((elem: any, _index4: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".imageUrls[\" + _index4 + \"]\",\n        expected: \"string\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".imageUrls\",\n        expected: \"(ReadonlyArray<string> | undefined)\",\n        value: input.imageUrls\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"continueAgentConversation\"]> => Array.isArray(input) && (input.length === 2 && \"string\" === typeof input[0] && (\"object\" === typeof input[1] && null !== input[1] && _io0(input[1]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"continueAgentConversation\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[prompt: string, options: ContinueAgentConversationOptions]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 2 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, ContinueAgentConversationOptions]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && ((\"object\" === typeof input[1] && null !== input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"ContinueAgentConversationOptions\",\n                value: input[1]\n            }, _errorFactory)) && _ao0(input[1], _path + \"[1]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"ContinueAgentConversationOptions\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[prompt: string, options: ContinueAgentConversationOptions]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    submitAgentClarification: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.conversationId && (Array.isArray(input.answers) && input.answers.every((elem: any) => \"object\" === typeof elem && null !== elem && _io1(elem))); const _io1 = (input: any): boolean => \"number\" === typeof input.questionIndex && (null !== input.answer && undefined !== input.answer && (\"string\" === typeof input.answer || \"object\" === typeof input.answer && null !== input.answer && _io2(input.answer))); const _io2 = (input: any): boolean => \"string\" === typeof input.answer && \"string\" === typeof input.description; const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.conversationId || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".conversationId\",\n        expected: \"string\",\n        value: input.conversationId\n    }, _errorFactory)) && ((Array.isArray(input.answers) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".answers\",\n        expected: \"Array<AgentClarificationAnswer>\",\n        value: input.answers\n    }, _errorFactory)) && input.answers.every((elem: any, _index2: number) => (\"object\" === typeof elem && null !== elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".answers[\" + _index2 + \"]\",\n        expected: \"AgentClarificationAnswer\",\n        value: elem\n    }, _errorFactory)) && _ao1(elem, _path + \".answers[\" + _index2 + \"]\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".answers[\" + _index2 + \"]\",\n        expected: \"AgentClarificationAnswer\",\n        value: elem\n    }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".answers\",\n        expected: \"Array<AgentClarificationAnswer>\",\n        value: input.answers\n    }, _errorFactory)); const _ao1 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"number\" === typeof input.questionIndex || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".questionIndex\",\n        expected: \"number\",\n        value: input.questionIndex\n    }, _errorFactory)) && ((null !== input.answer || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".answer\",\n        expected: \"(AgentClarificationSuggestedAnswerWithDescription | string)\",\n        value: input.answer\n    }, _errorFactory)) && (undefined !== input.answer || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".answer\",\n        expected: \"(AgentClarificationSuggestedAnswerWithDescription | string)\",\n        value: input.answer\n    }, _errorFactory)) && (\"string\" === typeof input.answer || (\"object\" === typeof input.answer && null !== input.answer || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".answer\",\n        expected: \"(AgentClarificationSuggestedAnswerWithDescription | string)\",\n        value: input.answer\n    }, _errorFactory)) && _ao2(input.answer, _path + \".answer\", true && _exceptionable) || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".answer\",\n        expected: \"(AgentClarificationSuggestedAnswerWithDescription | string)\",\n        value: input.answer\n    }, _errorFactory))); const _ao2 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.answer || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".answer\",\n        expected: \"string\",\n        value: input.answer\n    }, _errorFactory)) && (\"string\" === typeof input.description || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".description\",\n        expected: \"string\",\n        value: input.description\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"submitAgentClarification\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"submitAgentClarification\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[options: SubmitAgentClarificationOptions]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[SubmitAgentClarificationOptions]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"SubmitAgentClarificationOptions\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"SubmitAgentClarificationOptions\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[options: SubmitAgentClarificationOptions]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    runSupervisorAgentCommand: (() => { const _io0 = (input: any): boolean => \"string\" === typeof input.goal && \"string\" === typeof input.model && (undefined === input.userAgentModel || \"string\" === typeof input.userAgentModel) && (undefined === input.pagePath || \"string\" === typeof input.pagePath) && (undefined === input.maxSteps || \"number\" === typeof input.maxSteps) && (undefined === input.captureTrainingData || \"boolean\" === typeof input.captureTrainingData); const _ao0 = (input: any, _path: string, _exceptionable: boolean = true): boolean => (\"string\" === typeof input.goal || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".goal\",\n        expected: \"string\",\n        value: input.goal\n    }, _errorFactory)) && (\"string\" === typeof input.model || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".model\",\n        expected: \"string\",\n        value: input.model\n    }, _errorFactory)) && (undefined === input.userAgentModel || \"string\" === typeof input.userAgentModel || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".userAgentModel\",\n        expected: \"(string | undefined)\",\n        value: input.userAgentModel\n    }, _errorFactory)) && (undefined === input.pagePath || \"string\" === typeof input.pagePath || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".pagePath\",\n        expected: \"(string | undefined)\",\n        value: input.pagePath\n    }, _errorFactory)) && (undefined === input.maxSteps || \"number\" === typeof input.maxSteps || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".maxSteps\",\n        expected: \"(number | undefined)\",\n        value: input.maxSteps\n    }, _errorFactory)) && (undefined === input.captureTrainingData || \"boolean\" === typeof input.captureTrainingData || __typia_transform__assertGuard._assertGuard(_exceptionable, {\n        method: \"typia.createAssert\",\n        path: _path + \".captureTrainingData\",\n        expected: \"(boolean | undefined)\",\n        value: input.captureTrainingData\n    }, _errorFactory)); const __is = (input: any): input is Parameters<PluginMessageAPI[\"runSupervisorAgentCommand\"]> => Array.isArray(input) && (input.length === 1 && (\"object\" === typeof input[0] && null !== input[0] && _io0(input[0]))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"runSupervisorAgentCommand\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[options: RunSupervisorAgentCommandOptions]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[RunSupervisorAgentCommandOptions]\",\n                value: input\n            }, _errorFactory)) && ((\"object\" === typeof input[0] && null !== input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"RunSupervisorAgentCommandOptions\",\n                value: input[0]\n            }, _errorFactory)) && _ao0(input[0], _path + \"[0]\", true) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"RunSupervisorAgentCommandOptions\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[options: RunSupervisorAgentCommandOptions]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    publish: noArguments,\n    getDeployments: noArguments,\n    deploy: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"deploy\"]> => Array.isArray(input) && (1 <= input.length && 2 >= input.length && \"string\" === typeof input[0] && (undefined === input[1] || Array.isArray(input[1]) && input[1].every((elem: any) => \"string\" === typeof elem))); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"deploy\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[deploymentId: string, domains?: string[] | undefined]\",\n                value: input\n            }, _errorFactory)) && ((1 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string, (Array<string> | undefined)]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || (Array.isArray(input[1]) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(Array<string> | undefined)\",\n                value: input[1]\n            }, _errorFactory)) && input[1].every((elem: any, _index2: number) => \"string\" === typeof elem || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1][\" + _index2 + \"]\",\n                expected: \"string\",\n                value: elem\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(Array<string> | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[deploymentId: string, domains?: string[] | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getChangedPaths: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getChangedPaths\"]> => Array.isArray(input) && input.length === 0; let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getChangedPaths\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) && (input.length === 0 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    getChangeContributors: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"getChangeContributors\"]> => Array.isArray(input) && (0 <= input.length && 2 >= input.length && (undefined === input[0] || \"number\" === typeof input[0]) && (undefined === input[1] || \"number\" === typeof input[1])); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"getChangeContributors\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[fromVersion?: number | undefined, toVersion?: number | undefined]\",\n                value: input\n            }, _errorFactory)) && ((0 <= input.length && 2 >= input.length || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[(number | undefined), (number | undefined)]\",\n                value: input\n            }, _errorFactory)) && (undefined === input[0] || \"number\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"(number | undefined)\",\n                value: input[0]\n            }, _errorFactory)) && (undefined === input[1] || \"number\" === typeof input[1] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[1]\",\n                expected: \"(number | undefined)\",\n                value: input[1]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[fromVersion?: number | undefined, toVersion?: number | undefined]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n    createManagedCollection: (() => { const __is = (input: any): input is Parameters<PluginMessageAPI[\"createManagedCollection\"]> => Array.isArray(input) && (input.length === 1 && \"string\" === typeof input[0]); let _errorFactory: any; return (input: any, errorFactory?: (p: import(\"typia\").TypeGuardError.IProps) => Error): Parameters<PluginMessageAPI[\"createManagedCollection\"]> => {\n        if (false === __is(input)) {\n            _errorFactory = errorFactory;\n            ((input: any, _path: string, _exceptionable: boolean = true) => (Array.isArray(input) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[name: string]\",\n                value: input\n            }, _errorFactory)) && ((input.length === 1 || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[string]\",\n                value: input\n            }, _errorFactory)) && (\"string\" === typeof input[0] || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"[0]\",\n                expected: \"string\",\n                value: input[0]\n            }, _errorFactory))) || __typia_transform__assertGuard._assertGuard(true, {\n                method: \"typia.createAssert\",\n                path: _path + \"\",\n                expected: \"[name: string]\",\n                value: input\n            }, _errorFactory))(input, \"$input\", true);\n        }\n        return input;\n    }; })(),\n};\n", "class TypeGuardError extends Error {\n    method;\n    path;\n    expected;\n    value;\n    fake_expected_typed_value_;\n    constructor(props) {\n        // MESSAGE CONSTRUCTION\n        super(props.message ||\n            `Error on ${props.method}(): invalid type${props.path ? ` on ${props.path}` : \"\"}, expect to be ${props.expected}`);\n        // INHERITANCE POLYFILL\n        const proto = new.target.prototype;\n        if (Object.setPrototypeOf)\n            Object.setPrototypeOf(this, proto);\n        else\n            this.__proto__ = proto;\n        // ASSIGN MEMBERS\n        this.method = props.method;\n        this.path = props.path;\n        this.expected = props.expected;\n        this.value = props.value;\n    }\n}\n\nexport { TypeGuardError };\n//# sourceMappingURL=TypeGuardError.mjs.map\n", "import { TypeGuardError } from \"typia\"\n\nexport function isPluginValidationError(error: unknown) {\n\treturn error instanceof TypeGuardError\n}\n", "import type { Deployment, EnrichedHostnameWithDeployment, Hostname, ServerDeployment } from \"@framerjs/app-shared\"\nimport { ApiError, DeploymentStatus } from \"@framerjs/app-shared\"\nimport type { AssetReference } from \"@framerjs/assets\"\nimport { createAssetReference } from \"@framerjs/assets\"\nimport type { ComponentLoader } from \"@framerjs/framer-runtime\"\nimport type { ToastVariant } from \"@framerjs/fresco/src/components/Toaster\"\nimport { dimensions } from \"@framerjs/fresco/src/tokens\"\nimport {\n\tassert,\n\ttype DeepReadonly,\n\tModuleType,\n\tarrayToMap,\n\tassertNever,\n\tdelay,\n\tgetLogger,\n\tgetServiceMap,\n\tisExternalModuleIdentifier,\n\tisLocalModuleIdentifier,\n\tmurmurHash,\n\tshouldBeNever,\n} from \"@framerjs/shared\"\nimport { AgentContext } from \"app/ai/agents/context/AgentContext.ts\"\nimport type { AIContextNode } from \"app/ai/agents/context/nodes.ts\"\nimport { isSupportedDSLNodeClass, isVirtualNodeClass } from \"app/ai/agents/dsl.ts\"\nimport { createNodeByIdCursorStoreState } from \"app/ai/agents/tools/nodeById/cursorStore.ts\"\nimport { reviewChanges } from \"app/ai/agents/tools/reviewChanges.ts\"\nimport {\n\tgetAncestorsFor,\n\tgetGroundNodeFor,\n\tgetNode as getAgentNode,\n\tgetNodes as getAgentNodes,\n\tgetNodesOfTypes as getAgentNodesOfTypes,\n\tgetParentNodeFor,\n\tgetScopeNodeFor,\n} from \"app/ai/agents/treeTraversal.ts\"\nimport { Dictionary } from \"app/dictionary.ts\"\nimport type { MenuItemOptions } from \"app/menu.ts\"\nimport { typecheck } from \"code-editor/workers/codeCheckerAndAta.ts\"\nimport type { EngineStores } from \"document/EngineStores.ts\"\nimport type { VekterEngine } from \"document/VekterEngine.ts\"\nimport { CanvasEventTargetId } from \"document/components/canvas/CanvasEventTargetId.ts\"\nimport type { AddImageTarget } from \"document/components/canvas/addImagesToCanvas.ts\"\nimport { addImagesToCanvas } from \"document/components/canvas/addImagesToCanvas.ts\"\nimport { duplicateLoadedDesignPage, duplicateWebPage } from \"document/components/chrome/Pages/utils/duplicatePage.ts\"\nimport { getRouteSegmentNodeByWebPageId } from \"document/components/chrome/Pages/utils/getRouteSegmentNodeByWebPageId.ts\"\nimport { deleteRouteSegmentAndOrphanedWebPages } from \"document/components/chrome/Pages/utils/promptAndDeleteRouteSegment.ts\"\nimport { doesPathExist } from \"document/components/chrome/Pages/utils/updateRouteSegmentPath.ts\"\nimport { applyImageFillToNode } from \"document/components/chrome/properties/utils/imageFill.ts\"\nimport { preloadModuleComponents } from \"document/components/chrome/richTextEditor/moduleUtils.ts\"\nimport type { FloatingWindow } from \"document/components/chrome/shared/FloatingWindow.tsx\"\nimport { LimitError } from \"document/components/chrome/shared/utils/limitError.ts\"\nimport { getEmptySpaceRect } from \"document/components/tools/getEmptySpaceRect.ts\"\nimport { bottomSideOf, rightSideOf } from \"document/components/tools/utils/FramesHelper.ts\"\nimport { suggestBreakpoints } from \"document/components/utils/breakpointSuggestion.ts\"\nimport { ContextAction } from \"document/components/utils/contextActions.ts\"\nimport { getActiveWebPageURL } from \"document/components/utils/getActiveWebPageURL.ts\"\nimport { waitForMeasuredRectWithTimeout } from \"document/components/utils/isWaitingForMeasuredRect.ts\"\nimport { setDimensionTypeAutoIfSupported } from \"document/components/utils/setDimensionTypeAutoIfSupported.ts\"\nimport {\n\ttype CanvasNode,\n\tCodeComponentNode,\n\ttype CollectionNode,\n\ttype ContentManagementNode,\n\tCustomCodeScopeNode,\n\tDesignPageNode,\n\ttype MaybeNodeID,\n\ttype NodeID,\n\tSmartComponentNode,\n} from \"document/models/CanvasTree/index.ts\"\nimport { FrameNode, RichTextNode, isCanvasScopeNode, isScopeNode } from \"document/models/CanvasTree/index.ts\"\nimport { CollectionItemNode } from \"document/models/CanvasTree/nodes/CollectionItemNode.ts\"\nimport { CONTENT_MANAGEMENT_ID } from \"document/models/CanvasTree/nodes/ContentManagementNode.ts\"\nimport { getContentManagementNode } from \"document/models/CanvasTree/nodes/ContentManagementNode.utils.ts\"\nimport { isLocalModuleNode } from \"document/models/CanvasTree/nodes/LocalModuleNode.ts\"\nimport { isNodeId, randomID } from \"document/models/CanvasTree/nodes/NodeID.ts\"\nimport { getFirstHiddenAncestor } from \"document/models/CanvasTree/nodes/utils/hasAncestorVisibility.ts\"\nimport {\n\tisCodeComponentNode,\n\tisCollectionItemNode,\n\tisCollectionNode,\n\tisColorStyleTokenNode,\n\tisContentManagementNode,\n\tisDesignPageNode,\n\tisFrameNode,\n\tisOverlayNode,\n\tisRichTextNode,\n\tisSmartComponentNode,\n\tisTextStylePresetPrimaryNode,\n\tisWebPageNode,\n} from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport { withChildren } from \"document/models/CanvasTree/traits/WithChildren.ts\"\nimport { withFill, withOptionalFill } from \"document/models/CanvasTree/traits/WithFill.ts\"\nimport { getPluginVariableIdKeyFromVariable } from \"document/models/CanvasTree/traits/WithPreviouslyUsedPluginVariableIds.ts\"\nimport { isReplica, isReplicaOrReplicaChild } from \"document/models/CanvasTree/traits/WithTemplate.ts\"\nimport type { VariableDefinition } from \"document/models/CanvasTree/traits/WithVariables.ts\"\nimport { isBreakpointVariant, isGestureVariant, isVariant } from \"document/models/CanvasTree/traits/WithVariant.ts\"\nimport { isVectorSetItem } from \"document/models/CanvasTree/traits/WithVectorSetItem.ts\"\nimport type { OmitEvery } from \"document/models/CanvasTree/traits/utils/OmitEvery.ts\"\nimport { acceptsChild } from \"document/models/CanvasTree/traits/utils/acceptsChild.ts\"\nimport { getBoundingFrameForNodes } from \"document/models/CanvasTree/utils/geometry.ts\"\nimport { getPluginData, getPluginDataKeys, setPluginData } from \"document/models/CanvasTree/utils/updatePluginData.ts\"\nimport { isPublishError } from \"document/stores/PublishStore.ts\"\nimport { Tools } from \"document/stores/ToolEnum.ts\"\nimport { ModalType } from \"document/utils/ModalType.ts\"\nimport { waitUntilBeforeUnloadUnblocked } from \"document/utils/beforeUnloadHandler.ts\"\nimport { createAssetReferenceForUploadImageResult } from \"document/utils/createAssetReferenceFromImageUpload.ts\"\nimport { listVersionDeployments } from \"document/utils/sitesAPI.ts\"\nimport { getFramerRelease } from \"environment/getFramerRelease.ts\"\nimport { isPluginValidationError, methodArgumentValidators } from \"framer-plugin-validation\"\nimport type { FontStore } from \"library/render/fonts/fontStore.ts\"\nimport { DimensionType } from \"library/render/types/Constraints.ts\"\nimport type { Line } from \"library/render/types/Line.ts\"\nimport { Point } from \"library/render/types/Point.ts\"\nimport { Rect } from \"library/render/types/Rect.ts\"\nimport type { Size } from \"library/render/types/Size.ts\"\nimport { isEqual } from \"library/render/utils/isEqual.ts\"\nimport type { MenuConfig } from \"menu/ContextMenu.tsx\"\nimport type { DependenciesMap } from \"modules/types.ts\"\nimport { createRef } from \"react\"\nimport type ts from \"typescript\"\nimport { insertModuleEntity, lookUpModuleURL } from \"utils/clipboard/helpers/modules.ts\"\nimport { getCollectionForIdentifier } from \"utils/getCollectionForIdentifier.ts\"\nimport { getSelectedCollectionItemForWebPage } from \"utils/getSelectedCollectionItemForWebPage.ts\"\nimport { getStringSizeInKilobytes } from \"utils/getStringSizeInKilobytes.ts\"\nimport { mapObjectProperties } from \"utils/mapObjectProperties.ts\"\nimport { sha256 } from \"utils/sha256.ts\"\nimport { isDefined, isNull, isObject, isString, isUndefined } from \"utils/typeChecks.ts\"\nimport { iconForVectorSetItem } from \"utils/vectorSets.ts\"\nimport { BatchAssetUploader } from \"web/lib/BatchAssetUploader.ts\"\nimport { apiFetcher } from \"web/lib/apiFetcher.ts\"\nimport { toast } from \"web/lib/toaster.ts\"\nimport { record } from \"web/lib/tracker.ts\"\nimport type { ImageUploadResultWithOptionalAssetSize } from \"web/pages/project/lib/UploadService.ts\"\nimport { calculateSizeOfSVG } from \"web/pages/project/lib/svg.ts\"\nimport {\n\tgetPermissionState,\n\tgetPermissionStateDependencies,\n\tpermissionToText,\n\tsubscribeToPermissionStateChanges,\n} from \"web/pages/project/permissions/projectPermissions.ts\"\nimport { ChangeStatus, ChangeType, fetchChanges } from \"web/pages/project/projectChanges.ts\"\nimport type {\n\tAdditionalMessageApiOnlyMethods as ApiModeAdditionalMessageApiOnlyMethods,\n\tBlockedMethods as ApiModeBlockedMethods,\n} from \"#framer-api/public/types.ts\"\nimport type {\n\tContinueAgentConversationOptions,\n\tContinueAgentConversationResult,\n\tStartAgentConversationOptions,\n\tStartAgentConversationResult,\n\tSubmitAgentClarificationOptions,\n\tSubmitAgentClarificationResult,\n\tRunSupervisorAgentCommandOptions,\n\tRunSupervisorAgentCommandResult,\n} from \"#framer-plugin/agent.ts\"\nimport type {\n\tAssetIdentifier,\n\tBytesData,\n\tFileAssetData,\n\tImageAssetData,\n\tNamedAssetTransfer,\n\tNamedImageTransfer,\n\tSVGData,\n} from \"#framer-plugin/assets.ts\"\nimport { assertIsImageMimeType } from \"#framer-plugin/assets.ts\"\nimport type { Breakpoint } from \"#framer-plugin/breakpoint.ts\"\nimport type { CodeFileData, CodeFileVersionData, ShowProgressOnInstancesAttributes } from \"#framer-plugin/codeFile.ts\"\nimport type { LintConfig, LintDiagnostic, TypecheckDiagnostic } from \"#framer-plugin/codeFileDiagnostics.ts\"\nimport type {\n\tApiV2CollectionItemData,\n\tApiV2CollectionItemInput,\n\tApiV2EditableCollectionItemAttributes,\n\tApiV2ManagedCollectionItemInput,\n\tCollectionData,\n\tCollectionItemInput,\n\tCollectionItemSerializableData,\n\tEditableCollectionItemAttributes,\n\tFieldDefinitionData,\n\tFieldInput,\n\tManagedCollectionField,\n\tManagedCollectionFieldInputData,\n\tManagedCollectionItemInput,\n} from \"#framer-plugin/collections.ts\"\nimport type {\n\tComponentInstancePlaceholderAttributes,\n\tComponentInstancePlaceholderData,\n} from \"#framer-plugin/componentInstancePlaceholder.ts\"\nimport type { SetCustomCodeOptions } from \"#framer-plugin/customCode.ts\"\nimport type { DragCompleteResult, DragData, DragEndInfo, DragInfo, DragStartInfo } from \"#framer-plugin/dragging.ts\"\nimport type { NodeRuntimeErrorResult } from \"#framer-plugin/errors.ts\"\nimport type { FontData } from \"#framer-plugin/fonts.ts\"\nimport type {\n\tAiServiceInfo,\n\tAiServiceVersion,\n\tApiVersion1ProjectInfo,\n\tClosePluginOptions,\n\tCreateNodeType,\n\tNavigableOptions,\n\tPluginMessageAPI,\n\tProjectInfo,\n\tUIOptions,\n} from \"#framer-plugin/framerAPI.ts\"\nimport type { InitialState } from \"#framer-plugin/initialState.ts\"\nimport {\n\tgetAiServiceInfoMessageType,\n\tgetCurrentUserMessageType,\n\tgetHTMLForNodeMessageType,\n\tgetProjectInfoMessageType,\n\tinternalMessageTypePrefix,\n\tsendTrackingEventMessageType,\n\tsetHTMLForNodeMessageType,\n} from \"#framer-plugin/internal.ts\"\nimport type {\n\tCreateLocaleInput,\n\tGetLocalizationGroupsFilter,\n\tLocale,\n\tLocalizationData,\n\tLocalizationGroup,\n\tSetLocalizationDataResult,\n} from \"#framer-plugin/localization.ts\"\nimport type { Marshaled } from \"#framer-plugin/marshal.ts\"\nimport type { ContextMenuConfig, MenuItemSerializable, MenuPlacement } from \"#framer-plugin/menu.ts\"\nimport {\n\ttype EnvironmentInfo,\n\ttype Mode,\n\ttype PluginMethodInvocation,\n\ttype PluginReadyResponse,\n\ttype PluginSubscribe,\n\ttype PluginSubscriptionEvent,\n\ttype PluginSubscriptionTopic,\n\ttype PluginToVekterMessage,\n\tisPluginToVekterMessage,\n} from \"#framer-plugin/messages.ts\"\nimport { allSubscriptionTopics, isSubscriptionTopic } from \"#framer-plugin/messages.ts\"\nimport type {\n\tDesignPageCloneOptions,\n\tEditableComponentInstanceNodeAttributes,\n\tKnownNodeClass,\n\tSomeNodeData,\n\tWebPageCloneOptions,\n} from \"#framer-plugin/nodes.ts\"\nimport type { NotificationCloseReason, NotifyOptionsData } from \"#framer-plugin/notifications.ts\"\nimport type { PermissionMap } from \"#framer-plugin/permissions.ts\"\nimport type {\n\tOptimizationStatus,\n\tDeployment as PluginDeployment,\n\tHostname as PluginHostname,\n\tPublish,\n\tPublishInfo,\n\tPublishResult,\n} from \"#framer-plugin/publishInfo.ts\"\nimport type { RedirectData, RedirectInput } from \"#framer-plugin/redirects.ts\"\nimport type { ColorStyleData, TextStyleData } from \"#framer-plugin/styles.ts\"\nimport type { AddTextOptions } from \"#framer-plugin/text.ts\"\nimport type { NodeAttributeKey } from \"#framer-plugin/traits.ts\"\nimport type { ApiVersion1User, User } from \"#framer-plugin/user.ts\"\nimport type {\n\tCreateEnumCase,\n\tCreateVariable,\n\tEnumCaseData,\n\tUpdateEnumCase,\n\tUpdateVariable,\n\tVariableData,\n} from \"#framer-plugin/variables.ts\"\nimport type { VectorSetData, VectorSetItemData, VectorSetItemVariable } from \"#framer-plugin/vectors.ts\"\nimport type { ZoomIntoViewOptions } from \"#framer-plugin/viewport.ts\"\nimport { MethodInvocationTracker } from \"./MethodInvocationTracker.ts\"\nimport { PluginAutoUndoGrouping } from \"./PluginAutoUndoGrouping.ts\"\nimport { PluginHealth } from \"./PluginHealth.ts\"\nimport { RenderState } from \"./RenderState.ts\"\nimport {\n\tAgentConversationManager,\n\ttype AgentContextCache,\n\tbuildDeps,\n\tgetAgentContext,\n\tgetAgentSystemPrompt,\n\tresolveScope,\n\trunApplyAgentChanges,\n\trunFlattenComponentInstance,\n\trunMakeExternalComponentLocal,\n\trunPaginate,\n\trunPublish,\n\trunQueryImages,\n\trunReadProject,\n\trunSerialize,\n\trunSerializeNodes,\n} from \"./agent.ts\"\nimport { PluginAssetResolver, uploadFileAssetFromDataTransfer } from \"./assets.ts\"\nimport {\n\tcreateCodeFile,\n\tensureLocalModuleIdPrefix,\n\tgetAllCodeFiles,\n\tgetCodeFileVersionContent,\n\tgetCodeFileVersions,\n\tgetOpenCodeFile,\n\tremoveCodeFile,\n\trenameCodeFile,\n\tsetCodeFileContent,\n} from \"./codeFiles.ts\"\nimport {\n\ttype NormalizedCollectionItemInput,\n\tassertPluginManagedCollection,\n\tassertUnmanagedCollection,\n\tcreateCollectionNode,\n\tcreateManagedCollectionNode,\n\tgetCollectionFields,\n\tgetCollectionItems,\n\tgetCollectionNodeFromSelection,\n\tgetPluginCollectionData,\n\tgetPluginManagedCollectionFields,\n\tgetUpdatedManagedCollectionVariables,\n\tmapSpecificVariablesToCollectionFields,\n\tmigrateToApiV2CollectionItemData,\n\tnormalizeManagedCollectionItemInputs,\n\tnormalizeUnmanagedCollectionItemInputs,\n\tprepareCollectionItemUpsertionTreeOperations,\n\tupsertCollectionFields,\n} from \"./collections.ts\"\nimport { type PluginCustomHTMLValues, getCustomCode, setCustomCode } from \"./customCode.ts\"\nimport { isSupportedReleaseChannel } from \"./environment.ts\"\nimport { getFont, getFonts } from \"./fonts.ts\"\nimport {\n\tgetImageAssetDataForImageFill,\n\tgetPluginClassFromVekterNode,\n\tgetPluginNodeDataFromVekter,\n\tisUnknownNode,\n} from \"./getPluginNodeDataFromVekter.ts\"\nimport { getVekterNodeDataFromPlugin, narrowNodeUpdate } from \"./getVekterNodeDataFromPlugin.ts\"\nimport {\n\tapplyImageOptionsToNode,\n\tapplyImageToCodeComponentNode,\n\tcreateFileFromBytesData,\n\tuploadImageFromDataTransfer,\n} from \"./image.ts\"\nimport type { PreloadedDetachedComponentLayers } from \"./insertDetachedComponentLayers.ts\"\nimport { insertDetachedComponentLayers, preloadDetachedComponentLayers } from \"./insertDetachedComponentLayers.ts\"\nimport type { InsertType } from \"./insertTarget.ts\"\nimport { createInsertImagePlaceholder, getInsertTarget, zoomInsertedNodeToCenterOfCanvas } from \"./insertTarget.ts\"\nimport {\n\tapplyIncludedLocalesUpdates,\n\tapplyLocalizationUpdates,\n\tcreateLocale,\n\tgetActiveLocale,\n\tgetDefaultLocale,\n\tgetLocaleLanguages,\n\tgetLocaleRegions,\n\tgetLocales,\n\tgetLocalizationGroups,\n\tprepareCollectionItemLocalizationUpdates,\n\tupdateLocalization,\n} from \"./localization.ts\"\nimport { areMenuItemsEqual, getMenuItemOptionsFromMenuItemsSerializable } from \"./menu.ts\"\nimport { shouldRecordThrowPayload } from \"./methodPayloadPolicy.ts\"\nimport { getTraitForNodeAttribute, hasAttributeSet } from \"./nodeAttributes.ts\"\nimport { getInsertionParentIdFromSelection, insertNodeOnCanvas } from \"./nodes.ts\"\nimport { createPermissionMap, messageTypeToPermission, unprotectedMessageType } from \"./permissions.ts\"\nimport { PluginOnlyError, verifyForPlugin } from \"./pluginErrors.ts\"\nimport { isLocalDevelopmentPluginManifestId } from \"./pluginManifestValidation.ts\"\nimport {\n\ttype ApiPluginManifest,\n\ttype HostedPluginManifest,\n\ttype PluginManifestId,\n\ttype VekterPluginManifest,\n\tallowedToUseInternalMethodsPluginIds,\n\tisApiPluginManifest,\n\tisHostedPluginManifest,\n} from \"./plugins.ts\"\nimport {\n\tensureRoutesNodeLoaded,\n\tgetRedirects,\n\tremoveRedirects,\n\tsetRedirectOrder,\n\tupsertRedirects,\n} from \"./redirects.ts\"\nimport {\n\tcreateColorStyle,\n\tcreateTextStyle,\n\tgetColorStyleDataFromToken,\n\tgetColorStyles,\n\tgetTextStyleDataFromPreset,\n\tgetTextStyles,\n\tremoveColorStyle,\n\tremoveTextStyle,\n\tsetColorStyleAttributes,\n\tsetTextStyleAttributes,\n} from \"./styles.ts\"\nimport { runSupervisorAgentCommand } from \"./supervisor.ts\"\nimport { PluginThemeProvider } from \"./theme.ts\"\nimport { getPluginToastParts, showPluginLoadFailedToast } from \"./toast.ts\"\nimport { IframeTransport, type PluginTransport, serializeMethodArgsForError } from \"./transport.ts\"\nimport { framerUserToPluginUser } from \"./user.ts\"\nimport { convertPluginHTMLToCanvasHTML } from \"./utils/convertPluginHTMLToVekterHTML.ts\"\nimport { convertVekterHTMLToPluginHTML } from \"./utils/convertVekterHTMLToPluginHTML.ts\"\nimport { setNodeText } from \"./utils/text.ts\"\nimport {\n\taddEnumCase,\n\tgetVariableDataArray,\n\tgetVekterVariableFromPluginCreateVariable,\n\tremoveEnumCase,\n\tsetEnumCaseOrder,\n\tsetVariableOrder,\n\tupdateEnumCase,\n\tupdateVariablesWithPluginUpdateVariable,\n\tvariableToVariableData,\n} from \"./variables.ts\"\nimport { getVectorSetItemVariables, getVectorSetItems, getVectorSets } from \"./vectors.ts\"\n\nconst log = getLogger(\"ActivePlugin\")\n\nfunction assertIsEmployee(engine: VekterEngine) {\n\tif (!engine.stores.chromeStore.userIsEmployee) {\n\t\tthrow new PluginOnlyError(\"This method is only available to Framer employees\")\n\t}\n}\n\ntype WindowState = UIOptions & {\n\tvisible: boolean\n\t/** If set, represents the current progress of updating localization, between 0 and 1 */\n\tlocalizationProgress: number | undefined\n\t/** Toast text while Plugin UI is hidden. */\n\tbackgroundMessage?: string\n\t/** Warning message to show when user attempts to close the plugin. */\n\tcloseWarning?: string\n}\n\ntype DragDataWithSessionId = { dragSessionId: string } & DragData\n\ninterface IdleDragState {\n\ttype: \"idle\"\n}\n\ninterface DataReceivedDragState {\n\ttype: \"dataReceived\"\n\tdragData: DragDataWithSessionId\n\tsize: Size\n}\n\ninterface DraggingDragData {\n\ttype: \"dragging\" | \"success\" | \"cancelled\"\n\tdragData: DragDataWithSessionId\n\tdragStartInfo: DragStartInfo\n\tdragInfo: DragInfo | null\n\tsize: Size\n\toffset: Point\n\toverCanvas: boolean\n\thasBeenOverCanvas: boolean\n}\n\ntype DragState = (IdleDragState | DataReceivedDragState | DraggingDragData) & { dragPreviewImagePreload?: string }\n\ninterface ModeHandlersBase {\n\tmode: Mode\n\tinitialState?: InitialState\n}\n\ninterface CanvasMode extends ModeHandlersBase {\n\tmode: \"canvas\"\n}\n\ninterface ImageMode extends ModeHandlersBase {\n\tmode: \"image\"\n\tsetImages: (images: Promise<ImageUploadResultWithOptionalAssetSize[]>, altText: string | undefined) => void\n}\n\ninterface EditImageMode extends ModeHandlersBase {\n\tmode: \"editImage\"\n\tgetImage: () => { assetReference: AssetReference; altText: string | undefined }\n\tsetImages: (images: Promise<ImageUploadResultWithOptionalAssetSize[]>, altText: string | undefined) => void\n}\n\ninterface ConfigureManagedCollectionMode extends ModeHandlersBase {\n\tmode: \"configureManagedCollection\"\n}\n\ninterface SyncManagedCollectionMode extends ModeHandlersBase {\n\tmode: \"syncManagedCollection\"\n}\n\ninterface CollectionMode extends ModeHandlersBase {\n\tmode: \"collection\"\n}\n\ninterface LocalizationMode extends ModeHandlersBase {\n\tmode: \"localization\"\n}\n\ninterface CodeMode extends ModeHandlersBase {\n\tmode: \"code\"\n}\n\ninterface ApiMode extends ModeHandlersBase {\n\tmode: \"api\"\n}\n\nexport type ModeHandlers =\n\t| CanvasMode\n\t| ImageMode\n\t| EditImageMode\n\t| ConfigureManagedCollectionMode\n\t| SyncManagedCollectionMode\n\t| CollectionMode\n\t| LocalizationMode\n\t| CodeMode\n\t| ApiMode\n\nexport interface ActivePluginContext {\n\tengine: VekterEngine\n\tfontStore: FontStore\n\tassetResolver: PluginAssetResolver\n\tassetUploader: BatchAssetUploader\n\tmanifest: VekterPluginManifest\n\tmodeHandlers: ModeHandlers\n}\n\nconst defaultToastDuration = 3_000\n\nexport class ActivePlugin<Manifest extends VekterPluginManifest = VekterPluginManifest> implements PluginMessageAPI {\n\treadonly manifestId: PluginManifestId\n\treadonly name: string\n\treadonly entrypointOrigin: string | undefined\n\treadonly startTime: number\n\treadonly subscriptions: Set<PluginSubscriptionTopic> = new Set()\n\treadonly context: ActivePluginContext\n\treadonly themeProvider: PluginThemeProvider\n\tprivate readonly abortController: AbortController\n\tprivate readonly healthCheck: PluginHealth\n\tprivate readonly undoGrouping: PluginAutoUndoGrouping\n\tprivate readonly assetUploader: BatchAssetUploader\n\tprivate readonly methodInvocationTracker: MethodInvocationTracker\n\tprivate readonly activeToastIds: Set<string> = new Set()\n\treadonly transport: PluginTransport\n\n\t// Owners flip to false to gate PluginStore.closePlugin. API (headless) plugins are never closable\n\t// out-of-band \u2014 set at construction so no race window exists between activation and the guard.\n\tallowClose: boolean\n\n\tprivate permissionMap: PermissionMap\n\n\tprivate readonly canUseInternalMethods: boolean\n\n\tprivate readonly pendingPluginRequests: (PluginMethodInvocation | PluginSubscribe)[] = []\n\tprivate isDrainingPendingRequests = false\n\n\treadonly iFrameRef = createRef<HTMLIFrameElement>()\n\treadonly floatingWindowRef = createRef<FloatingWindow>()\n\n\tmenuItems = new RenderState<MenuItemOptions[]>([])\n\n\t/** Only set for Headless API sessions, never in UI mode. */\n\tprivate sessionId: string | undefined\n\tprivate clientId: string | undefined\n\tprivate readonly agentContexts: AgentContextCache = new Map()\n\tprivate readonly agentConversationManager: AgentConversationManager\n\t#moduleComponentsPreloaded: Promise<void> | undefined\n\n\tconstructor(\n\t\treadonly modeHandlers: ModeHandlers,\n\t\treadonly manifest: Manifest,\n\t\treadonly engine: VekterEngine,\n\t\treadonly fontStore: FontStore,\n\t\treadonly selectionAtStart: readonly NodeID[],\n\t\ttransport?: PluginTransport,\n\t\tsessionId?: string,\n\t\tclientId?: string,\n\t) {\n\t\tthis.sessionId = sessionId\n\t\tthis.clientId = clientId\n\t\t// Headless plugin must never be closed out-of-band (UI cleanup, page-reload remount, etc.).\n\t\tthis.allowClose = !isApiPluginManifest(manifest)\n\t\tthis.themeProvider = new PluginThemeProvider(engine.stores)\n\t\tthis.manifestId = manifest.id\n\t\tthis.name = manifest.name\n\t\tthis.entrypointOrigin = isHostedPluginManifest(manifest) ? new URL(manifest.entrypointUrl).origin : undefined\n\t\tthis.startTime = Date.now()\n\t\tthis.assetUploader = new BatchAssetUploader(engine, { silent: true })\n\t\tthis.methodInvocationTracker = new MethodInvocationTracker(manifest, modeHandlers.mode, record, sessionId, clientId)\n\t\tthis.agentConversationManager = new AgentConversationManager(engine)\n\n\t\tthis.context = {\n\t\t\tengine,\n\t\t\tfontStore,\n\t\t\tassetResolver: new PluginAssetResolver(),\n\t\t\tassetUploader: this.assetUploader,\n\t\t\tmanifest,\n\t\t\tmodeHandlers,\n\t\t}\n\n\t\tthis.abortController = new AbortController()\n\t\tthis.undoGrouping = new PluginAutoUndoGrouping(engine, this.abortController.signal, this.manifest)\n\t\tthis.healthCheck = new PluginHealth({\n\t\t\tsignal: this.abortController.signal,\n\t\t\tonFailure: () => {\n\t\t\t\tthis.allowClose = true\n\t\t\t\tthis.engine.stores.pluginStore.closePlugin(this.manifestId)\n\t\t\t\tshowPluginLoadFailedToast(this.engine, this.manifest)\n\n\t\t\t\tswitch (this.manifest.type) {\n\t\t\t\t\tcase \"api\":\n\t\t\t\t\t\treturn\n\t\t\t\t\tcase \"hosted\": {\n\t\t\t\t\t\trecord(\"plugin_load_error\", {\n\t\t\t\t\t\t\turl: this.manifest.entrypointUrl,\n\t\t\t\t\t\t\tid: this.manifest.id,\n\t\t\t\t\t\t\tpluginName: this.manifest.name,\n\t\t\t\t\t\t\tmode: this.modeHandlers.mode,\n\t\t\t\t\t\t\tmessage: \"Plugin Ready Signal not received in time\",\n\t\t\t\t\t\t})\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\tassertNever(this.manifest)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t})\n\n\t\tconst permissionDependencies = getPermissionStateDependencies(this.engine.stores)\n\t\tconst currentPermissionState = getPermissionState(permissionDependencies)\n\t\tthis.permissionMap = createPermissionMap(currentPermissionState)\n\n\t\t// We gate to employee, but also to local development.\n\t\t// This is because if we only gate to employee, then an attacker could use internal APIs in a\n\t\t// plugin and submit it for review, then silently extract (ie) AI Service JWT credentials from\n\t\t// a reviewer and send them off for abuse.\n\t\tconst isEmployeeUsingDevelopmentPlugin =\n\t\t\tengine.stores.chromeStore.userIsEmployee && isLocalDevelopmentPluginManifestId(this.manifestId)\n\n\t\t// Plugins loaded from a URL are prefixed with dev_/external_, and we're intentionally not\n\t\t// supporting that that via allowedToUseInternalMethodsPluginIds, because we don't want\n\t\t// non-employees messing around with internal methods even from a local development plugin.\n\t\tthis.canUseInternalMethods =\n\t\t\tisEmployeeUsingDevelopmentPlugin || allowedToUseInternalMethodsPluginIds.has(this.manifestId)\n\n\t\tswitch (this.manifest.type) {\n\t\t\tcase \"api\":\n\t\t\t\tassert(transport, \"Transport is required for api plugins\")\n\t\t\t\tthis.transport = transport\n\t\t\t\tbreak\n\n\t\t\tcase \"hosted\":\n\t\t\t\tassert(this.entrypointOrigin, \"Entrypoint origin is required for hosted plugins\")\n\t\t\t\tthis.transport = new IframeTransport(this.entrypointOrigin, this.manifest.ownerId)\n\t\t\t\tbreak\n\n\t\t\tdefault:\n\t\t\t\tassertNever(this.manifest, `Unknown plugin manifest type`)\n\t\t}\n\n\t\tthis.transport.onMessage(this.handleMessage)\n\t}\n\n\tisApiPlugin(): this is ActivePlugin<ApiPluginManifest> {\n\t\treturn isApiPluginManifest(this.manifest)\n\t}\n\n\tisHostedPlugin(): this is ActivePlugin<HostedPluginManifest> {\n\t\treturn isHostedPluginManifest(this.manifest)\n\t}\n\n\tstart() {\n\t\tthis.healthCheck.start()\n\t\tthis.transport.start()\n\n\t\t// Update the map just in case some time has passed between constructing and starting\n\t\tconst permissionDependencies = getPermissionStateDependencies(this.engine.stores)\n\t\tconst currentPermissionState = getPermissionState(permissionDependencies)\n\t\tthis.permissionMap = createPermissionMap(currentPermissionState)\n\n\t\tsubscribeToPermissionStateChanges(\n\t\t\tthis.engine.stores,\n\t\t\tthis.engine.scheduler,\n\t\t\tstate => {\n\t\t\t\tthis.permissionMap = createPermissionMap(state)\n\n\t\t\t\t// If the plugin hasn't sent ready signal yet, don't send permission updates\n\t\t\t\tif (!this.healthCheck.isRunning) return\n\n\t\t\t\t// Not checking if something actually changed (and potentially skipping the update\n\t\t\t\t// if not) because with the current permission model, if user's permissions change,\n\t\t\t\t// this map is guaranteed to change too.\n\n\t\t\t\tthis.transport.send({ type: \"permissionUpdate\", permissionMap: this.permissionMap })\n\t\t\t},\n\t\t\t{ signal: this.abortController.signal },\n\t\t)\n\t}\n\n\tstop() {\n\t\t// Only record the plugin load time if the plugin was successfully loaded and is hosted\n\t\tif (this.healthCheck.isRunning && this.isHostedPlugin()) {\n\t\t\trecord(\"plugin_closed\", {\n\t\t\t\turl: this.manifest.entrypointUrl,\n\t\t\t\tid: this.manifest.id,\n\t\t\t\tmode: this.modeHandlers.mode,\n\t\t\t\tpluginName: this.manifest.name,\n\t\t\t\ttotalOpenDurationMs: Date.now() - this.startTime,\n\t\t\t})\n\t\t}\n\n\t\tassert(this.abortController.signal.aborted === false, \"Can only stop a plugin once\")\n\t\tthis.abortController.abort()\n\t\tthis.agentConversationManager.stop()\n\n\t\t// To give people a chance to read the last-moment toasts\n\t\tsetTimeout(() => {\n\t\t\tfor (const toastId of this.activeToastIds) {\n\t\t\t\ttoast({ type: \"remove\", key: toastId })\n\t\t\t}\n\t\t}, defaultToastDuration)\n\n\t\tthis.transport.stop()\n\t}\n\n\thasStopped() {\n\t\treturn this.abortController.signal.aborted\n\t}\n\n\t/** Aborts when the plugin stops, for any reason (headless close, UI close, health failure).\n\t *  Lets the headless layer terminate pending work the moment the plugin goes away. */\n\tget stopSignal(): AbortSignal {\n\t\treturn this.abortController.signal\n\t}\n\n\t// PostMessage & Status handling\n\n\tprivate handleMessage = async (message: PluginToVekterMessage) => {\n\t\tif (!isPluginToVekterMessage(message)) {\n\t\t\tthrow new Error(`Invalid message received from plugin: ${JSON.stringify(message)}`)\n\t\t}\n\n\t\tlog.trace(\"received message from plugin\", message)\n\n\t\tconst messageType = message.type\n\n\t\tswitch (messageType) {\n\t\t\tcase \"pluginReadySignal\": {\n\t\t\t\trecord(\"plugin_open\", {\n\t\t\t\t\tid: this.manifestId,\n\t\t\t\t\turl: this.isHostedPlugin() ? this.manifest.entrypointUrl : this.isApiPlugin() ? \"headless-api\" : \"unknown\",\n\t\t\t\t\tpluginName: this.manifest.name,\n\t\t\t\t\tmode: this.modeHandlers.mode,\n\t\t\t\t\tsessionId: this.sessionId,\n\t\t\t\t\tclientId: this.clientId,\n\t\t\t\t})\n\n\t\t\t\tconst release = getFramerRelease(window)\n\t\t\t\tconst environmentInfo: EnvironmentInfo = {\n\t\t\t\t\treleaseChannel: isSupportedReleaseChannel(release?.channel) ? release.channel : \"stable\",\n\t\t\t\t\tisEmployee: this.engine.stores.chromeStore.userIsEmployee,\n\t\t\t\t}\n\n\t\t\t\tconst response: PluginReadyResponse = {\n\t\t\t\t\ttype: \"pluginReadyResponse\",\n\t\t\t\t\tmode: this.modeHandlers.mode,\n\t\t\t\t\tpermissionMap: this.permissionMap,\n\t\t\t\t\tenvironmentInfo: this.canUseInternalMethods ? environmentInfo : null,\n\t\t\t\t\tinitialState: this.modeHandlers.initialState ?? null,\n\t\t\t\t}\n\n\t\t\t\t// Only include theme for UI-based plugins (not headless)\n\t\t\t\tif (isHostedPluginManifest(this.manifest)) {\n\t\t\t\t\tresponse.theme = this.themeProvider.getTheme(this.modeHandlers.mode)\n\t\t\t\t}\n\n\t\t\t\tthis.transport.send(response)\n\t\t\t\tthis.healthCheck.running()\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase \"methodInvocation\": {\n\t\t\t\tconst { id, methodName, args } = message\n\t\t\t\tawait this.invokeMethod(id, methodName, args)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase \"subscribe\":\n\t\t\t\tawait this.subscribe(message.topic)\n\t\t\t\tbreak\n\t\t\tcase \"unsubscribe\":\n\t\t\t\tthis.unsubscribe(message.topic)\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tassertNever(message, `Invalid message type received from plugin: ${messageType}`)\n\t\t}\n\t}\n\n\t// Window State\n\n\twindowState = new RenderState<WindowState>({\n\t\tvisible: false,\n\t\tposition: \"top left\",\n\t\twidth: dimensions.values.popoverWidth,\n\t\theight: 600,\n\t\tlocalizationProgress: undefined,\n\t})\n\n\t#visibleBeforeUnsupportedView: boolean | undefined\n\t#hiddenDueToUnsupportedView = false\n\tget hiddenDueToUnsupportedView(): boolean {\n\t\treturn this.#hiddenDueToUnsupportedView\n\t}\n\tset hiddenDueToUnsupportedView(value: boolean) {\n\t\tif (this.#hiddenDueToUnsupportedView === value) return\n\t\tthis.#hiddenDueToUnsupportedView = value\n\t\tthis.engine.scheduler.processWhenReady(() => {\n\t\t\tconst visible = value ? false : (this.#visibleBeforeUnsupportedView ?? true)\n\t\t\tthis.#visibleBeforeUnsupportedView = this.windowState.getState().visible\n\t\t\tthis.windowState.setState(current => ({ ...current, visible }))\n\t\t\tif (value === false) void this.drainPendingRequests()\n\t\t})\n\t}\n\n\t// Subscriptions\n\n\tstatic readonly NoSubscriptionData = Symbol(\"IdleSubscription\")\n\n\treadonly lastSentSubscriptionPayload: Record<PluginSubscriptionTopic, unknown> = {\n\t\tcanvasRoot: ActivePlugin.NoSubscriptionData,\n\t\tpublishInfo: ActivePlugin.NoSubscriptionData,\n\t\tselection: ActivePlugin.NoSubscriptionData,\n\t\timage: ActivePlugin.NoSubscriptionData,\n\t\ttheme: ActivePlugin.NoSubscriptionData,\n\t\ttext: ActivePlugin.NoSubscriptionData,\n\t\tcustomCode: ActivePlugin.NoSubscriptionData,\n\t\tcolorStyles: ActivePlugin.NoSubscriptionData,\n\t\ttextStyles: ActivePlugin.NoSubscriptionData,\n\t\tredirects: ActivePlugin.NoSubscriptionData,\n\t\tcodeFiles: ActivePlugin.NoSubscriptionData,\n\t\topenCodeFile: ActivePlugin.NoSubscriptionData,\n\t}\n\n\tprivate hasPayloadChanged(topic: PluginSubscriptionTopic, payload: unknown) {\n\t\t// Tree data should always result in an update because else you can't observe children\n\t\tif (isTreeDataSubscription(topic)) return true\n\n\t\tconst currentPayload = this.lastSentSubscriptionPayload[topic]\n\t\tif (isEqual(currentPayload, payload)) {\n\t\t\treturn false\n\t\t}\n\t\tthis.lastSentSubscriptionPayload[topic] = payload\n\t\treturn true\n\t}\n\n\tasync subscribe(topic: PluginSubscriptionTopic) {\n\t\tif (this.hiddenDueToUnsupportedView) {\n\t\t\tthis.pendingPluginRequests.push({ type: \"subscribe\", topic })\n\t\t\treturn\n\t\t}\n\n\t\tif (this.isHostedPlugin()) {\n\t\t\trecord(\"plugin_subscription_start\", {\n\t\t\t\tmode: this.modeHandlers.mode,\n\t\t\t\ttopic,\n\t\t\t\tid: this.manifest.id,\n\t\t\t\tpluginName: this.manifest.name,\n\t\t\t\turl: this.manifest.entrypointUrl,\n\t\t\t})\n\t\t}\n\n\t\tif (!isSubscriptionTopic(topic)) {\n\t\t\tconst errorMessage = `Cannot subscribe to invalid subscription topic: ${topic}`\n\t\t\tlog.error(errorMessage)\n\t\t\treturn\n\t\t}\n\n\t\t// There are no permission checks here because subscriptions are read-only by definition\n\n\t\tif (!isSubscriptionAllowedInMode(this.modeHandlers.mode, topic)) {\n\t\t\tconst errorMessage = `Cannot subscribe to topic: ${topic}, while in mode: ${this.modeHandlers.mode}`\n\t\t\tlog.error(errorMessage)\n\t\t\treturn\n\t\t}\n\n\t\tthis.subscriptions.add(topic)\n\n\t\t// Force a publish to ensure the plugin gets the latest data\n\t\tthis.lastSentSubscriptionPayload[topic] = ActivePlugin.NoSubscriptionData\n\t\t// Always publish after a subscription starts to ensure the plugin gets the latest data\n\t\tawait this.publishTopic(topic)\n\t}\n\n\tunsubscribe(topic: PluginSubscriptionTopic) {\n\t\tif (this.isHostedPlugin()) {\n\t\t\trecord(\"plugin_subscription_end\", {\n\t\t\t\tmode: this.modeHandlers.mode,\n\t\t\t\ttopic,\n\t\t\t\tid: this.manifest.id,\n\t\t\t\turl: this.manifest.entrypointUrl,\n\t\t\t\tpluginName: this.manifest.name,\n\t\t\t})\n\t\t}\n\n\t\tif (!isSubscriptionTopic(topic)) {\n\t\t\tthrow new Error(`Cannot unsubscribe from invalid subscription topic: ${topic}`)\n\t\t}\n\n\t\tthis.lastSentSubscriptionPayload[topic] = ActivePlugin.NoSubscriptionData\n\t\tthis.subscriptions.delete(topic)\n\t}\n\n\tprivate readonly getPayloadHandlers: {\n\t\t[Topic in PluginSubscriptionTopic]: () => Promise<Extract<PluginSubscriptionEvent, { topic: Topic }>[\"payload\"]>\n\t} = {\n\t\tselection: async () => getSelection(this.engine, this.context),\n\t\tcanvasRoot: async () => getCanvasRoot(this.engine, this.context),\n\t\tpublishInfo: async () => getPublishInfo(this.engine),\n\t\timage: async () => getImage(this),\n\t\ttheme: async () => this.themeProvider.getTheme(this.modeHandlers.mode),\n\t\ttext: async () => getText(this.engine),\n\t\tcustomCode: async () => getCustomCode(this.engine, this.manifestId),\n\t\tcolorStyles: async () => getColorStyles(this.engine),\n\t\ttextStyles: async () => getTextStyles(this.context),\n\t\tredirects: async () => getRedirects(this.engine),\n\t\tcodeFiles: async () => getAllCodeFiles(this.engine),\n\t\topenCodeFile: async () => getOpenCodeFile(this.engine),\n\t}\n\n\tprivate readonly publishHandlers = mapObjectProperties(allSubscriptionTopics, topic => async () => {\n\t\tconst payload = await this.getPayloadHandlers[topic]()\n\n\t\tif (!this.hasPayloadChanged(topic, payload)) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.transport.send({\n\t\t\ttype: \"subscriptionMessage\",\n\t\t\ttopic,\n\t\t\tpayload,\n\t\t} as PluginSubscriptionEvent)\n\t})\n\n\t// this method is called in PluginStore.prototype.postProcess where the changes are filtered\n\tasync publishTopic(topic: PluginSubscriptionTopic) {\n\t\tif (!this.subscriptions.has(topic)) return\n\t\tconst handler = this.publishHandlers[topic]\n\t\treturn handler()\n\t}\n\n\t// API Methods\n\n\tprivate sendMethodResult(messageId: number, result: unknown, error: string | null = null) {\n\t\tif (this.hasStopped()) return\n\n\t\tthis.transport.send({\n\t\t\ttype: \"methodResponse\",\n\t\t\tid: messageId,\n\t\t\tresult,\n\t\t\terror,\n\t\t})\n\t}\n\n\tprivate sendMethodResultError(\n\t\tmessageId: number,\n\t\tmethodName: keyof PluginMessageAPI,\n\t\terror: unknown,\n\t\targs?: unknown[],\n\t) {\n\t\tif (this.hasStopped()) return\n\t\tlet message = \"Unknown error\"\n\t\tif (isString(error) && error.length > 0) {\n\t\t\tmessage = error\n\t\t} else if (error instanceof Error) {\n\t\t\tconst prefix = error.name !== \"Error\" ? `${error.name}: ` : \"\"\n\t\t\tmessage = prefix + (error.message || \"Unknown error\")\n\t\t}\n\n\t\tif (shouldTrackMethodEvent(methodName) && !isLocalDevelopmentPluginManifestId(this.manifest.id)) {\n\t\t\tlog.reportError(\n\t\t\t\terror,\n\t\t\t\t{\n\t\t\t\t\tpluginMethodName: methodName,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpluginName: this.manifest.name,\n\t\t\t\t\tpluginId: this.manifest.id,\n\t\t\t\t},\n\t\t\t)\n\n\t\t\tswitch (this.manifest.type) {\n\t\t\t\tcase \"hosted\":\n\t\t\t\t\tbreak\n\t\t\t\tcase \"api\": {\n\t\t\t\t\tconst decision = args !== undefined ? shouldRecordThrowPayload(methodName, this.clientId) : undefined\n\t\t\t\t\trecord(\"plugin_method_error\", {\n\t\t\t\t\t\turl: \"headless-api\",\n\t\t\t\t\t\tid: this.manifestId,\n\t\t\t\t\t\tmode: this.modeHandlers.mode,\n\t\t\t\t\t\tmessage,\n\t\t\t\t\t\tmethodName,\n\t\t\t\t\t\tpluginName: this.manifest.name,\n\t\t\t\t\t\tsessionId: this.sessionId,\n\t\t\t\t\t\tclientId: this.clientId,\n\t\t\t\t\t\t...(decision?.record && args !== undefined\n\t\t\t\t\t\t\t? { payload: serializeMethodArgsForError(args, decision.maxBytes) }\n\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t})\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tdefault: {\n\t\t\t\t\tassertNever(this.manifest)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tlog.debug(\"API method error\", message)\n\n\t\tthis.sendMethodResult(messageId, null, message)\n\t}\n\n\tprivate shouldRethrowPluginError(error: unknown): boolean {\n\t\tif (this.modeHandlers.mode === \"api\") return false\n\t\tif (error instanceof PluginOnlyError) return false\n\t\tif (isPluginValidationError(error)) return false\n\t\treturn error instanceof Error\n\t}\n\n\tprivate async drainPendingRequests(): Promise<void> {\n\t\tif (this.isDrainingPendingRequests) return\n\t\tif (this.hiddenDueToUnsupportedView) return\n\n\t\tthis.isDrainingPendingRequests = true\n\t\ttry {\n\t\t\twhile (!this.hiddenDueToUnsupportedView && this.pendingPluginRequests.length > 0) {\n\t\t\t\tconst next = this.pendingPluginRequests.shift()\n\t\t\t\tif (!next) break\n\t\t\t\tswitch (next.type) {\n\t\t\t\t\tcase \"methodInvocation\":\n\t\t\t\t\t\tawait this.invokeMethod(next.id, next.methodName, next.args)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"subscribe\":\n\t\t\t\t\t\tawait this.subscribe(next.topic)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tshouldBeNever(next)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tthis.isDrainingPendingRequests = false\n\t\t}\n\t}\n\n\tasync invokeMethod(messageId: number, methodName: keyof PluginMessageAPI, args: unknown[]): Promise<void> {\n\t\tlog.debug(\"invoke:\", methodName, args)\n\n\t\tif (this.hiddenDueToUnsupportedView) {\n\t\t\tthis.pendingPluginRequests.push({ type: \"methodInvocation\", id: messageId, methodName, args })\n\t\t\treturn\n\t\t}\n\n\t\tif (!isAPIMethodName(methodName)) {\n\t\t\tthis.sendMethodResultError(messageId, methodName, `Invalid method: ${methodName}`)\n\t\t\treturn\n\t\t}\n\n\t\tif (isInternalMessageType(methodName) && !this.canUseInternalMethods) {\n\t\t\t// Same error as for a bad method name, like returning 404 for protected resources\n\t\t\tthis.sendMethodResultError(messageId, methodName, `Invalid method: ${methodName}`)\n\t\t\treturn\n\t\t}\n\n\t\tconst isMethodAllowed = this.permissionMap[methodName]\n\t\tif (!isMethodAllowed) {\n\t\t\tconst permissionName = messageTypeToPermission[methodName]\n\n\t\t\tassert(\n\t\t\t\tpermissionName !== unprotectedMessageType,\n\t\t\t\t`Method: ${methodName}, not allowed but is supposed to be unprotected`,\n\t\t\t)\n\n\t\t\tconst permissionText = permissionToText[permissionName]\n\n\t\t\tthis.sendMethodResultError(\n\t\t\t\tmessageId,\n\t\t\t\tmethodName,\n\t\t\t\t`Insufficient permissions for method: ${methodName}, user needs: ${permissionText}`,\n\t\t\t)\n\n\t\t\t// Manual dismissal as it says what permissions you need\n\t\t\tconst { primaryText, secondaryText } = getPluginToastParts(this.name, `${permissionText} permissions needed.`)\n\t\t\ttoast({\n\t\t\t\ttype: \"add\",\n\t\t\t\tkey: \"plugin-permission-error\",\n\t\t\t\tvariant: \"error\",\n\t\t\t\tprimaryText,\n\t\t\t\tsecondaryText,\n\t\t\t\tduration: 5000,\n\t\t\t})\n\n\t\t\treturn\n\t\t}\n\n\t\tif (!isMethodAllowedInMode(this.modeHandlers.mode, methodName)) {\n\t\t\tthis.sendMethodResultError(\n\t\t\t\tmessageId,\n\t\t\t\tmethodName,\n\t\t\t\t`Method: ${methodName}, is not allowed while in mode: ${this.modeHandlers.mode}`,\n\t\t\t)\n\t\t\treturn\n\t\t}\n\n\t\tif (shouldTrackMethodEvent(methodName)) {\n\t\t\tthis.methodInvocationTracker.track(methodName)\n\t\t}\n\n\t\tconst didInvokeMethod = this.undoGrouping.willInvokeMethod(methodName)\n\n\t\ttry {\n\t\t\tconst method = this[methodName] as (...args: unknown[]) => unknown\n\t\t\tconst safeArguments = methodArgumentValidators[methodName](args)\n\t\t\tconst result = await method.call(this, ...safeArguments)\n\t\t\tthis.sendMethodResult(messageId, result)\n\t\t} catch (error) {\n\t\t\tthis.sendMethodResultError(messageId, methodName, error, args)\n\t\t\tif (this.shouldRethrowPluginError(error)) throw error\n\t\t} finally {\n\t\t\tdidInvokeMethod()\n\t\t}\n\t}\n\n\tasync getImage(): Promise<ImageAssetData | null> {\n\t\treturn getImage(this)\n\t}\n\n\tasync addImage(image: NamedImageTransfer): Promise<void> {\n\t\tconst upload = uploadImageFromDataTransfer(this.assetUploader, image)\n\t\tconst url = image.type === \"bytes\" ? URL.createObjectURL(createFileFromBytesData(image)) : image.url\n\t\tconst size = await this.getPreloadedImageSize(url)\n\n\t\tconst placeholderId = await this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst scope = this.engine.stores.scopeStore.active\n\t\t\tassert(isCanvasScopeNode(scope))\n\t\t\tconst target = getInsertTarget({\n\t\t\t\tengine: this.engine,\n\t\t\t\ttype: \"image\",\n\t\t\t\tscope,\n\t\t\t\tsize,\n\t\t\t\tcanvasPosition: null,\n\t\t\t})\n\n\t\t\tif (target.zoomToCenter) {\n\t\t\t\tzoomInsertedNodeToCenterOfCanvas(this.engine.stores, target)\n\t\t\t}\n\n\t\t\t// Focus the main app window so you can use the keyboard shortcuts (e.g. delete)\n\t\t\twindow.focus()\n\t\t\tconst placeholderInfo = createInsertImagePlaceholder(\n\t\t\t\tthis.engine,\n\t\t\t\ttarget,\n\t\t\t\tsize,\n\t\t\t\timage.name,\n\t\t\t\timage.preferredImageRendering,\n\t\t\t)\n\t\t\treturn placeholderInfo.placeholderId\n\t\t})\n\n\t\tconst uploadResult = await upload\n\t\tawait this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst latestNode = this.engine.tree.get<FrameNode>(placeholderId)\n\t\t\tif (!latestNode) return\n\t\t\tapplyImageFillToNode(latestNode, uploadResult, undefined, image.resolution)\n\t\t\tapplyImageOptionsToNode(latestNode, image)\n\t\t})\n\t}\n\n\tasync uploadImage(image: NamedImageTransfer): Promise<ImageAssetData> {\n\t\tconst uploaded = await uploadImageFromDataTransfer(this.assetUploader, image)\n\t\tconst assetReference = createAssetReferenceForUploadImageResult(uploaded, image.resolution)\n\n\t\treturn this.context.assetResolver.addImage(assetReference, image.altText)\n\t}\n\n\tasync uploadFile(file: NamedAssetTransfer): Promise<FileAssetData> {\n\t\tconst uploaded = await uploadFileAssetFromDataTransfer(file)\n\t\tconst assetReference = createAssetReference(uploaded.filename, null, uploaded.originalFilename)\n\n\t\treturn this.context.assetResolver.addFile(assetReference)\n\t}\n\n\tasync uploadFiles(files: readonly NamedAssetTransfer[]): Promise<FileAssetData[]> {\n\t\tconst uploaded = await Promise.all(files.map(file => uploadFileAssetFromDataTransfer(file)))\n\t\treturn uploaded.map(file => {\n\t\t\tconst reference = createAssetReference(file.filename, null, file.originalFilename)\n\n\t\t\treturn this.context.assetResolver.addFile(reference)\n\t\t})\n\t}\n\n\tasync showUI(options?: UIOptions): Promise<void> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tif (!this.windowState.getState().visible) {\n\t\t\t\tthis.engine.stores.chromeStore.floatingWindowInFront = \"plugin\"\n\t\t\t}\n\t\t\tthis.windowState.setState(current => ({ ...current, visible: true, ...options }))\n\t\t})\n\t}\n\n\tasync hideUI(): Promise<void> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tif (this.windowState.getState().visible) {\n\t\t\t\tthis.windowState.setState(current => ({ ...current, visible: false }))\n\t\t\t}\n\t\t})\n\t}\n\n\tasync setBackgroundMessage(text: string | null): Promise<void> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tthis.windowState.setState(current => ({\n\t\t\t\t...current,\n\t\t\t\tbackgroundMessage: text ?? undefined,\n\t\t\t}))\n\t\t})\n\t}\n\n\tasync setCloseWarning(message: string | false): Promise<void> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tthis.windowState.setState(current => ({\n\t\t\t\t...current,\n\t\t\t\tcloseWarning: message === false ? undefined : message,\n\t\t\t}))\n\t\t})\n\t}\n\n\tasync closePlugin(message?: string, options?: ClosePluginOptions): Promise<void> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tthis.engine.stores.modalStore.dismissModal(ModalType.ConfirmationPlugin)\n\t\t\tthis.engine.stores.pluginStore.closePlugin(this.manifestId)\n\n\t\t\tif (options?.silent) return\n\t\t\tconst { primaryText, secondaryText } = getPluginToastParts(this.name, message ? message : \"finished.\")\n\n\t\t\ttoast({\n\t\t\t\ttype: \"add\",\n\t\t\t\tkey: \"plugin-closed\",\n\t\t\t\tvariant: getToastVariantFromNotificationVariant(options),\n\t\t\t\tprimaryText,\n\t\t\t\tsecondaryText,\n\t\t\t\tduration: defaultToastDuration,\n\t\t\t})\n\t\t})\n\t}\n\n\tasync getCurrentUser(): Promise<ApiVersion1User> {\n\t\tconst { id, name } = this.engine.stores.sessionStore.user\n\t\treturn { id: murmurHash(id).toString(), name }\n\t}\n\n\tasync getCurrentUser2(): Promise<User> {\n\t\treturn framerUserToPluginUser(this.engine.stores.sessionStore.user)\n\t}\n\n\tasync [getCurrentUserMessageType](): Promise<User> {\n\t\tconst { id, name, avatar, initials } = this.engine.stores.sessionStore.user\n\t\treturn { id, name, avatarUrl: avatar, initials, apiVersion1Id: \"\" }\n\t}\n\n\tasync getProjectInfo(): Promise<ApiVersion1ProjectInfo> {\n\t\tconst { projectId, project } = this.engine.stores.projectStore\n\t\tconst name = project?.title ?? Dictionary.Unknown\n\t\treturn { name, id: murmurHash(projectId).toString() }\n\t}\n\n\tasync getProjectInfo2(): Promise<ProjectInfo> {\n\t\tconst { projectId, project } = this.engine.stores.projectStore\n\t\tconst name = project?.title ?? Dictionary.Unknown\n\t\treturn { id: await sha256(projectId), name, apiVersion1Id: murmurHash(projectId).toString() }\n\t}\n\n\tasync [getProjectInfoMessageType](): Promise<ProjectInfo> {\n\t\tconst { projectId, project } = this.engine.stores.projectStore\n\t\tconst name = project?.title ?? Dictionary.Unknown\n\t\treturn { id: projectId, name, apiVersion1Id: \"\" }\n\t}\n\n\tasync getSelection() {\n\t\treturn getSelection(this.engine, this.context)\n\t}\n\n\tasync setSelection(ids: NodeID[]) {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tsetSelection(this.engine, ids)\n\t\t})\n\t}\n\n\tasync getCanvasRoot() {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\treturn getCanvasRoot(this.engine, this.context)\n\t\t})\n\t}\n\n\tasync getPublishInfo(): Promise<PublishInfo> {\n\t\treturn getPublishInfo(this.engine)\n\t}\n\n\t/**\n\t * Resolves and determines the version range to use for change-related methods.\n\t * If versions are not provided, returns current published and tree versions.\n\t */\n\tprivate resolveVersionRange(fromVersion?: number, toVersion?: number): { from: number; to: number } {\n\t\tconst stores = this.engine.stores\n\t\tconst defaultToVersion = this.engine.remoteDocument?.treeVersion() || 0\n\t\tconst productionDeployment =\n\t\t\tstores.publishStore.customHostnameDeployment || stores.publishStore.defaultHostnameDeployment\n\t\tconst defaultFromVersion = productionDeployment?.treeVersion || 0\n\n\t\treturn {\n\t\t\tfrom: fromVersion ?? defaultFromVersion,\n\t\t\tto: toVersion ?? defaultToVersion,\n\t\t}\n\t}\n\n\t/**\n\t * Get paths of web pages that changed since last publish.\n\t * Only returns WebPage paths (not components or templates).\n\t * Uses the same logic as the publish sheet.\n\t *\n\t * @returns Object with added, removed, and modified page paths\n\t *\n\t * @alpha\n\t */\n\tasync getChangedPaths(): Promise<{ added: string[]; removed: string[]; modified: string[] }> {\n\t\tconst { changes } = this.engine.stores.publishStore.getPublishRevisions()\n\n\t\tconst added: string[] = []\n\t\tconst removed: string[] = []\n\t\tconst modified: string[] = []\n\n\t\tfor (const change of changes) {\n\t\t\tif (change.type !== ChangeType.WebPage) continue\n\n\t\t\t// getPublishRevisions returns \"Home\" for the home page, normalize to \"/\"\n\t\t\tconst path = change.name === Dictionary.Home ? \"/\" : change.name\n\t\t\tswitch (change.status) {\n\t\t\t\tcase ChangeStatus.Added:\n\t\t\t\t\tadded.push(path)\n\t\t\t\t\tbreak\n\t\t\t\tcase ChangeStatus.Updated:\n\t\t\t\t\tmodified.push(path)\n\t\t\t\t\tbreak\n\t\t\t\tcase ChangeStatus.Removed:\n\t\t\t\t\tremoved.push(path)\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\treturn { added, removed, modified }\n\t}\n\n\t/**\n\t * Get unique user IDs of authors who made changes between two versions.\n\t *\n\t * @param fromVersion - Starting version (defaults to last deployment)\n\t * @param toVersion - Ending version (defaults to current version)\n\t * @returns Array of unique user IDs\n\t *\n\t * @alpha\n\t */\n\tasync getChangeContributors(fromVersion?: number, toVersion?: number): Promise<string[]> {\n\t\tconst { from, to } = this.resolveVersionRange(fromVersion, toVersion)\n\n\t\tif (from === 0 || to === 0 || from === to) {\n\t\t\treturn []\n\t\t}\n\n\t\tconst projectId = this.engine.stores.projectStore.projectId\n\t\tconst { diffs } = await fetchChanges(projectId, from, to, this.engine.stores.treeStore.isMPSSocket)\n\n\t\tconst userIds = new Set<string>()\n\t\tfor (const diff of Object.values(diffs)) {\n\t\t\tfor (const userId of diff.userIds) {\n\t\t\t\tuserIds.add(userId)\n\t\t\t}\n\t\t}\n\n\t\treturn Array.from(userIds)\n\t}\n\n\tasync publish(): Promise<PublishResult> {\n\t\tawait waitUntilBeforeUnloadUnblocked({ timeout: 10_000 })\n\t\tconst result = await this.engine.stores.publishStore.publish()\n\t\tif (isPublishError(result)) {\n\t\t\tconst error = new Error(result.error)\n\t\t\tlog.reportError(error)\n\t\t\tthrow error\n\t\t}\n\t\treturn {\n\t\t\tdeployment: mapDeploymentToPlugin(result.deployment),\n\t\t\thostnames: result.hostnames.map(mapHostnameToPlugin),\n\t\t}\n\t}\n\n\tasync getDeployments(): Promise<PluginDeployment[]> {\n\t\tconst response = await listVersionDeployments(\n\t\t\tthis.engine.stores.projectStore.projectId,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tthis.engine.stores.treeStore.branchId,\n\t\t)\n\t\treturn response.deployments.map(mapDeploymentToPlugin)\n\t}\n\n\tasync deploy(deploymentId: string, domains?: string[]): Promise<PluginHostname[]> {\n\t\tconst publishStore = this.engine.stores.publishStore\n\t\tconst targetDomains = domains ?? (publishStore.customHostname ? [publishStore.customHostname.hostname] : [])\n\n\t\tif (targetDomains.length === 0) {\n\t\t\treturn []\n\t\t}\n\n\t\tconst results: PluginHostname[] = []\n\n\t\tfor (const domain of targetDomains) {\n\t\t\tconst response: EnrichedHostnameWithDeployment = await apiFetcher.put(\"/web/v1/sites/hostnames/custom\", {\n\t\t\t\tprojectId: this.engine.stores.projectStore.projectId,\n\t\t\t\tdomain,\n\t\t\t\tdeploymentId,\n\t\t\t})\n\t\t\tresults.push(mapHostnameToPlugin(response))\n\t\t}\n\n\t\treturn results\n\t}\n\n\tasync getAgentContextForScope(pagePath?: string): Promise<AgentContext> {\n\t\tconst scopeNode = await resolveScope(this.engine, pagePath)\n\t\tconst cachedContext = this.agentContexts.get(scopeNode.id)\n\t\tif (cachedContext) return cachedContext\n\n\t\tconst ctx = await AgentContext.init(buildDeps(this.engine), scopeNode, createNodeByIdCursorStoreState())\n\t\tthis.agentContexts.set(scopeNode.id, ctx)\n\t\treturn ctx\n\t}\n\n\tasync readProjectForAgent(\n\t\tqueries: Record<string, unknown>[],\n\t\toptions?: { pagePath?: string },\n\t): Promise<{ results: unknown[] }> {\n\t\tassert(this.sessionId, \"Expected sessionId for headless-only method\")\n\t\tconst ctx = await this.getAgentContextForScope(options?.pagePath)\n\t\treturn runReadProject(this.engine, ctx, queries, this.sessionId)\n\t}\n\n\tasync getAgentSystemPrompt(): Promise<string> {\n\t\treturn getAgentSystemPrompt()\n\t}\n\n\tasync getAgentContext(options?: { pagePath?: string }): Promise<string> {\n\t\tconst ctx = await this.getAgentContextForScope(options?.pagePath)\n\t\treturn getAgentContext(this.engine, ctx)\n\t}\n\n\tasync applyAgentChanges(dsl: string, options?: { pagePath?: string }): Promise<void> {\n\t\tconst ctx = await this.getAgentContextForScope(options?.pagePath)\n\t\treturn runApplyAgentChanges(this.engine, ctx, dsl)\n\t}\n\n\tasync publishForAgent(input?: Record<string, unknown>): Promise<unknown> {\n\t\tconst ctx = await this.getAgentContextForScope()\n\t\treturn runPublish(ctx, input)\n\t}\n\n\tasync queryImagesForAgent(input: Record<string, unknown>): Promise<unknown> {\n\t\tconst ctx = await this.getAgentContextForScope()\n\t\treturn runQueryImages(ctx, input)\n\t}\n\n\tasync reviewChangesForAgent(options?: { pagePath?: string }): Promise<unknown> {\n\t\tconst ctx = await this.getAgentContextForScope(options?.pagePath)\n\t\treturn reviewChanges(ctx)\n\t}\n\n\tasync flattenComponentInstanceForAgent(input: { id: string }, options?: { pagePath?: string }): Promise<unknown> {\n\t\tconst ctx = await this.getAgentContextForScope(options?.pagePath)\n\t\treturn runFlattenComponentInstance(this.engine, ctx, input)\n\t}\n\n\tasync makeExternalComponentLocalForAgent(\n\t\tinput: { id: string; replaceAll?: boolean },\n\t\toptions?: { pagePath?: string },\n\t): Promise<unknown> {\n\t\tconst ctx = await this.getAgentContextForScope(options?.pagePath)\n\t\treturn runMakeExternalComponentLocal(this.engine, ctx, input)\n\t}\n\n\tasync getNodeForAgent(input: { id: string }, options?: { pagePath?: string }): Promise<unknown> {\n\t\tconst ctx = await this.getAgentContextForScope(options?.pagePath)\n\t\treturn getAgentNode(ctx, input.id)\n\t}\n\n\tasync getNodesForAgent(input: { ids: readonly string[] }, options?: { pagePath?: string }): Promise<unknown> {\n\t\tconst ctx = await this.getAgentContextForScope(options?.pagePath)\n\t\treturn getAgentNodes(ctx, input.ids)\n\t}\n\n\tasync getNodesOfTypesForAgent(\n\t\tinput: { types: readonly string[] },\n\t\toptions?: { pagePath?: string },\n\t): Promise<unknown> {\n\t\tconst ctx = await this.getAgentContextForScope(options?.pagePath)\n\t\tconst types = input.types.filter(\n\t\t\t(type): type is AIContextNode[\"type\"] => isVirtualNodeClass(type) || isSupportedDSLNodeClass(type),\n\t\t)\n\t\treturn getAgentNodesOfTypes(ctx, types)\n\t}\n\n\tasync getScopeNodeForAgent(input: { id: string }, options?: { pagePath?: string }): Promise<unknown> {\n\t\tconst ctx = await this.getAgentContextForScope(options?.pagePath)\n\t\treturn getScopeNodeFor(ctx, input.id)\n\t}\n\n\tasync getGroundNodeForAgent(input: { id: string }, options?: { pagePath?: string }): Promise<unknown> {\n\t\tconst ctx = await this.getAgentContextForScope(options?.pagePath)\n\t\treturn getGroundNodeFor(ctx, input.id)\n\t}\n\n\tasync getParentNodeForAgent(input: { id: string }, options?: { pagePath?: string }): Promise<unknown> {\n\t\tconst ctx = await this.getAgentContextForScope(options?.pagePath)\n\t\treturn getParentNodeFor(ctx, input.id)\n\t}\n\n\tasync getAncestorsForAgent(input: { id: string }, options?: { pagePath?: string }): Promise<unknown> {\n\t\tconst ctx = await this.getAgentContextForScope(options?.pagePath)\n\t\treturn getAncestorsFor(ctx, input.id)\n\t}\n\n\tasync serializeForAgent(\n\t\tinput: { id: string; depth?: number; attributeFilter?: readonly string[]; ancestorPath?: boolean },\n\t\toptions?: { pagePath?: string },\n\t): Promise<unknown> {\n\t\tconst ctx = await this.getAgentContextForScope(options?.pagePath)\n\t\treturn runSerialize(ctx, input)\n\t}\n\n\tasync serializeNodesForAgent(\n\t\tinput: {\n\t\t\tids: readonly string[]\n\t\t\tdepth?: number\n\t\t\tattributeFilter?: readonly string[]\n\t\t\tancestorPath?: boolean\n\t\t},\n\t\toptions?: { pagePath?: string },\n\t): Promise<unknown> {\n\t\tconst ctx = await this.getAgentContextForScope(options?.pagePath)\n\t\treturn runSerializeNodes(ctx, input)\n\t}\n\n\tasync paginateForAgent(\n\t\tinput:\n\t\t\t| { items: readonly unknown[]; keyName?: never; cursor?: never }\n\t\t\t| { keyName: string; cursor: number; items?: never },\n\t\toptions?: { pagePath?: string },\n\t): Promise<unknown> {\n\t\tconst ctx = await this.getAgentContextForScope(options?.pagePath)\n\t\treturn runPaginate(ctx, input)\n\t}\n\n\tasync startAgentConversation(\n\t\tprompt: string,\n\t\toptions?: StartAgentConversationOptions,\n\t): Promise<StartAgentConversationResult> {\n\t\tassertIsEmployee(this.engine)\n\t\tassert(this.sessionId, \"Expected sessionId for headless-only method\")\n\t\treturn this.agentConversationManager.startConversation(prompt, options)\n\t}\n\n\tasync continueAgentConversation(\n\t\tprompt: string,\n\t\toptions: ContinueAgentConversationOptions,\n\t): Promise<ContinueAgentConversationResult> {\n\t\tassertIsEmployee(this.engine)\n\t\tassert(this.sessionId, \"Expected sessionId for headless-only method\")\n\t\treturn this.agentConversationManager.continueConversation(prompt, options)\n\t}\n\n\tasync submitAgentClarification(options: SubmitAgentClarificationOptions): Promise<SubmitAgentClarificationResult> {\n\t\tassertIsEmployee(this.engine)\n\t\tassert(this.sessionId, \"Expected sessionId for headless-only method\")\n\t\treturn this.agentConversationManager.submitClarification(options)\n\t}\n\n\tasync runSupervisorAgentCommand(options: RunSupervisorAgentCommandOptions): Promise<RunSupervisorAgentCommandResult> {\n\t\tassertIsEmployee(this.engine)\n\t\tassert(this.sessionId, \"Expected sessionId for headless-only method\")\n\t\treturn runSupervisorAgentCommand(this.engine, options)\n\t}\n\n\tasync createNode(type: CreateNodeType, parentId: unknown, attributes: unknown) {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst node = createNodeFromCreateNodeType(type)\n\t\t\tif (!node) return null\n\n\t\t\treturn insertNodeOnCanvas(this.context, node, parentId, attributes)\n\t\t})\n\t}\n\n\tasync createDesignPage(name: string): Promise<SomeNodeData> {\n\t\tconst designPage = await this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst designPage = new DesignPageNode({ name })\n\t\t\tthis.engine.tree.insertNode(designPage, this.engine.tree.root.id)\n\t\t\treturn designPage\n\t\t})\n\n\t\treturn getPluginNodeDataFromVekter(designPage, this.context)\n\t}\n\n\tasync createWebPage(pagePath: string): Promise<SomeNodeData> {\n\t\tif (doesPathExist(this.engine.tree, pagePath)) {\n\t\t\tthrow new Error(\"This path already exists, each page must have a unique URL\")\n\t\t}\n\n\t\tconst webPage = await this.engine.createWebPage({\n\t\t\tpreferredPath: pagePath,\n\t\t\tshouldOpenPage: false,\n\t\t\tshouldSetPanelTab: false,\n\t\t\tstartEditingPageTitle: false,\n\t\t})\n\n\t\treturn getPluginNodeDataFromVekter(webPage, this.context)\n\t}\n\n\t/** Canvas-only. */\n\tasync removeNodes2(ids: NodeID[]) {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tfor (const id of ids) {\n\t\t\t\tconst node = this.engine.tree.getNode(id)\n\t\t\t\tif (isUnknownNode(node)) continue\n\n\t\t\t\tif (isWebPageNode(node)) {\n\t\t\t\t\tconst routeSegmentNode = getRouteSegmentNodeByWebPageId(this.engine.tree, id)\n\t\t\t\t\tif (routeSegmentNode) {\n\t\t\t\t\t\tdeleteRouteSegmentAndOrphanedWebPages(this.engine, routeSegmentNode.id)\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.engine.deleteNode(id)\n\t\t\t}\n\t\t})\n\t}\n\n\tasync removeCollectionItems(ids: NodeID[]) {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tfor (const id of ids) {\n\t\t\t\tconst node = this.engine.tree.getNode(id)\n\t\t\t\tif (!isCollectionItemNode(node)) continue\n\t\t\t\tconst collection = this.engine.tree.getNode(node.parentid)\n\t\t\t\tassertUnmanagedCollection(collection)\n\t\t\t\tthis.engine.deleteNode(id)\n\t\t\t\trecord(\"collection_record_delete\", { source: `plugin:${this.manifestId}` })\n\t\t\t}\n\t\t})\n\t}\n\n\t/** @deprecated Use `removeNodes2` or `removeCollectionItems`. */\n\tasync removeNodes(ids: NodeID[]) {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tfor (const id of ids) {\n\t\t\t\tconst node = this.engine.tree.getNode(id)\n\t\t\t\tif (isCollectionItemNode(node)) {\n\t\t\t\t\tconst collection = this.engine.tree.getNode(node.parentid)\n\t\t\t\t\tassertUnmanagedCollection(collection)\n\t\t\t\t} else if (isUnknownNode(node)) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tthis.engine.deleteNode(id)\n\t\t\t}\n\t\t})\n\t}\n\n\t/** @deprecated Use `removeNodes2` or `removeCollectionItems`. */\n\tasync removeNode(id: NodeID) {\n\t\treturn this.removeNodes([id])\n\t}\n\n\tasync cloneNode(id: NodeID) {\n\t\tconst node = this.engine.tree.getNode(id)\n\t\tif (isUnknownNode(node)) return null\n\t\tif (isWebPageNode(node)) return this.cloneWebPage(id)\n\t\tif (isDesignPageNode(node)) return this.cloneDesignPage(id)\n\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst clone = this.engine.cloneNode(node)\n\t\t\treturn getPluginNodeDataFromVekter(clone, this.context)\n\t\t})\n\t}\n\n\tasync cloneWebPage(id: NodeID, options?: WebPageCloneOptions): Promise<SomeNodeData> {\n\t\tconst node = this.engine.tree.getNode(id)\n\t\tif (!isWebPageNode(node)) throw new PluginOnlyError(\"Node to clone must be a web page\")\n\n\t\tconst loadedNode = node.isLoaded() ? node : await node.load()\n\t\tif (!loadedNode) throw new Error(\"Failed to load web page node\")\n\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst clone = duplicateWebPage(this.engine, loadedNode, loadedNode.getPrimaryVariant(), options?.path, {\n\t\t\t\tshouldOpenPage: false,\n\t\t\t})\n\t\t\treturn getPluginNodeDataFromVekter(clone, this.context)\n\t\t})\n\t}\n\n\tasync cloneDesignPage(id: NodeID, options?: DesignPageCloneOptions) {\n\t\tconst node = this.engine.tree.getNode(id)\n\t\tif (!(node instanceof DesignPageNode)) throw new PluginOnlyError(\"Node to clone must be a design page\")\n\n\t\tconst loadedNode = node.isLoaded() ? node : await node.load()\n\t\tif (!loadedNode) throw new Error(\"Failed to load design page node\")\n\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst clone = duplicateLoadedDesignPage(this.engine, loadedNode, options?.name)\n\t\t\treturn getPluginNodeDataFromVekter(clone, this.context)\n\t\t})\n\t}\n\n\tasync getNode(id: NodeID) {\n\t\tconst node = this.engine.tree.getNode(id)\n\t\tif (!node) return null\n\t\treturn getPluginNodeDataFromVekter(node, this.context)\n\t}\n\n\tasync getParent(id: NodeID) {\n\t\tconst node = this.engine.tree.getNode(id)\n\t\tif (!node) return null\n\t\tif (isScopeNode(node)) return null\n\n\t\tconst parent = node.parentid ? this.engine.tree.getNode(node.parentid) : null\n\t\tif (!parent) return null\n\n\t\treturn getPluginNodeDataFromVekter(parent, this.context)\n\t}\n\n\tasync getChildren(id: NodeID) {\n\t\tconst node = this.engine.tree.getNode(id)\n\t\tif (!node) return []\n\t\tif (isUnknownNode(node)) return []\n\t\tif (!withChildren(node)) return []\n\t\tif (isCodeComponentNode(node)) return []\n\n\t\tconst children: SomeNodeData[] = []\n\n\t\tfor (const child of node.children) {\n\t\t\t// TODO: should we support overlay nodes / content?\n\t\t\t// https://github.com/framer/company/issues/29294\n\t\t\tif (isOverlayNode(child)) continue\n\n\t\t\tconst childData = getPluginNodeDataFromVekter(child, this.context)\n\t\t\tif (childData) children.push(childData)\n\t\t}\n\n\t\treturn children\n\t}\n\n\tasync getRect(id: NodeID) {\n\t\tconst node = this.engine.tree.getNode(id)\n\t\tif (!node) return null\n\t\tif (isUnknownNode(node)) return null\n\t\tif (isScopeNode(node)) return null\n\t\treturn this.engine.tree.getRect(node)\n\t}\n\n\tasync zoomIntoView(nodeIds: NodeID[], options?: ZoomIntoViewOptions): Promise<void> {\n\t\tawait zoomIntoView(this.engine, nodeIds, options)\n\t}\n\n\tasync navigateTo(\n\t\tnodeId: NodeID,\n\t\t{ select = true, zoomIntoView: zoomIntoViewOption = true, scrollTo }: NavigableOptions = {},\n\t) {\n\t\tconst node = getNode(this.engine, nodeId)\n\t\tif (!node) throw new PluginOnlyError(\"Node not found\")\n\n\t\tif (isLocalModuleNode(node)) {\n\t\t\tawait this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\t\tthis.engine.stores.codeEditorStore.editFile(`local-module:${node.id}`, scrollTo?.codeFilePosition)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\tawait this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tthis.engine.stores.scopeStore.selectByNode(nodeId)\n\t\t\tif (select) {\n\t\t\t\tsetSelection(this.engine, [nodeId])\n\t\t\t}\n\t\t\tif (scrollTo?.collectionFieldId) {\n\t\t\t\t// In case the ID is invalid, nothing will happen.\n\t\t\t\t// No check for it's existence is needed.\n\t\t\t\tthis.engine.stores.contentManagementStore.setCollectionItemControlToHighlight(scrollTo.collectionFieldId)\n\t\t\t}\n\t\t})\n\n\t\tconst scope = this.engine.tree.getScopeNodeFor(node)\n\t\tif (zoomIntoViewOption && isCanvasScopeNode(scope)) {\n\t\t\tconst options = typeof zoomIntoViewOption === \"boolean\" ? undefined : zoomIntoViewOption\n\n\t\t\tawait zoomIntoView(this.engine, [nodeId], options)\n\t\t}\n\t}\n\n\tasync setAttributes(id: NodeID, attributes: Record<string, unknown>) {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst node = this.engine.tree.getNode(id)\n\t\t\tif (isUnknownNode(node)) return null\n\n\t\t\tconst parent = node.parentid ? this.engine.tree.getNode(node.parentid) : null\n\t\t\tconst update = getVekterNodeDataFromPlugin(node, attributes, this.context, parent)\n\t\t\tnode.set(update)\n\n\t\t\tconst nextNode = this.engine.tree.current(node)\n\t\t\tassert(nextNode)\n\n\t\t\treturn getPluginNodeDataFromVekter(nextNode, this.context)\n\t\t})\n\t}\n\n\tasync setParent(id: NodeID, parentId: MaybeNodeID, index?: number): Promise<void> {\n\t\tconst { treeStore, scopeStore } = this.engine.stores\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst node = treeStore.tree.get(id)\n\t\t\tconst parent = treeStore.tree.get(parentId)\n\t\t\tif (!node || isUnknownNode(parent)) return\n\t\t\tverifyForPlugin(!isReplicaOrReplicaChild(node), \"Cannot set parent of a replica node\")\n\t\t\tverifyForPlugin(!isReplicaOrReplicaChild(parent), \"Cannot set parent to a replica node\")\n\t\t\tif (!acceptsChild(treeStore.tree, parent, node, scopeStore.active.id, this.engine.componentLoader)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.engine.moveNode(id, parentId, index)\n\t\t})\n\t}\n\n\tasync addImages(images: readonly NamedImageTransfer[]): Promise<void> {\n\t\tconst preparedImages = await Promise.all(\n\t\t\timages.map(async image => {\n\t\t\t\tconst upload = uploadImageFromDataTransfer(this.assetUploader, image)\n\t\t\t\tconst url = image.type === \"bytes\" ? URL.createObjectURL(createFileFromBytesData(image)) : image.url\n\t\t\t\tconst size = await this.getPreloadedImageSize(url)\n\n\t\t\t\treturn {\n\t\t\t\t\turl,\n\t\t\t\t\tsize,\n\t\t\t\t\tupload,\n\t\t\t\t\taltText: image.altText,\n\t\t\t\t\tname: image.name,\n\t\t\t\t\tresolution: image.resolution,\n\t\t\t\t\tpreferredImageRendering: image.preferredImageRendering,\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\n\t\tconst placeholderNodeIds = await this.engine.scheduler.processWhenReadyAsync(() =>\n\t\t\tpreparedImages.map((preparedImage, index) => {\n\t\t\t\tconst scope = this.engine.stores.scopeStore.active\n\t\t\t\tassert(isCanvasScopeNode(scope))\n\t\t\t\tconst target = getInsertTarget({\n\t\t\t\t\tengine: this.engine,\n\t\t\t\t\ttype: \"image\",\n\t\t\t\t\tscope,\n\t\t\t\t\tsize: preparedImage.size,\n\t\t\t\t\tcanvasPosition: null,\n\t\t\t\t})\n\n\t\t\t\tconst placeholderInfo = createInsertImagePlaceholder(\n\t\t\t\t\tthis.engine,\n\t\t\t\t\ttarget,\n\t\t\t\t\tpreparedImage.size,\n\t\t\t\t\tpreparedImage.name,\n\t\t\t\t\tpreparedImage.preferredImageRendering,\n\t\t\t\t)\n\n\t\t\t\t// Only zoom to the first image thats being inserted\n\t\t\t\tif (index === 0 && target.zoomToCenter) {\n\t\t\t\t\tzoomInsertedNodeToCenterOfCanvas(this.engine.stores, target)\n\t\t\t\t}\n\n\t\t\t\treturn placeholderInfo.placeholderId\n\t\t\t}),\n\t\t)\n\n\t\t// Focus the main app window so you can use the keyboard shortcuts (e.g. delete)\n\t\twindow.focus()\n\n\t\tconst uploadResults = await Promise.all(preparedImages.map(image => image.upload))\n\t\tawait this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tpreparedImages.forEach((preparedImage, index) => {\n\t\t\t\tconst uploadResult = uploadResults[index]\n\t\t\t\tassert(uploadResult)\n\n\t\t\t\tconst placeholderId = placeholderNodeIds[index]\n\t\t\t\tassert(placeholderId)\n\n\t\t\t\tconst latestNode = this.engine.tree.get(placeholderId)\n\t\t\t\tassert(isFrameNode(latestNode), \"Expected placeholder node to be a frame node\")\n\n\t\t\t\tapplyImageFillToNode(latestNode, uploadResult, undefined, preparedImage.resolution)\n\t\t\t\tapplyImageOptionsToNode(latestNode, preparedImage)\n\t\t\t})\n\t\t})\n\t}\n\n\tasync setImage(image: NamedImageTransfer): Promise<void> {\n\t\tif (this.modeHandlers.mode === \"image\" || this.modeHandlers.mode === \"editImage\") {\n\t\t\tconst uploaded = uploadImageFromDataTransfer(this.assetUploader, image).then(\n\t\t\t\t(imageResult: ImageUploadResultWithOptionalAssetSize) => [{ ...imageResult, preferredSize: image.resolution }],\n\t\t\t)\n\n\t\t\tthis.modeHandlers.setImages(uploaded, image.altText)\n\t\t\tawait uploaded\n\t\t\treturn\n\t\t}\n\n\t\tconst selection = this.engine.stores.selectionStore.nodes\n\t\tif (selection.length !== 1) return\n\t\tconst selectedSingleNode = selection[0]\n\n\t\tif (isCodeComponentNode(selectedSingleNode)) {\n\t\t\tawait applyImageToCodeComponentNode(this.assetUploader, selectedSingleNode, image, this.context)\n\t\t\treturn\n\t\t}\n\n\t\tif (!selectedSingleNode) return\n\t\tif (!withFill(selectedSingleNode)) return\n\t\tif (withOptionalFill(selectedSingleNode) && !selectedSingleNode.fillEnabled) return\n\n\t\tconst uploadedImage = await uploadImageFromDataTransfer(this.assetUploader, image)\n\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tif (!uploadedImage) throw new PluginOnlyError('Expected \"uploadedImage\" to be present')\n\t\t\tapplyImageFillToNode(selectedSingleNode, uploadedImage, undefined, image.resolution)\n\n\t\t\tapplyImageOptionsToNode(selectedSingleNode, image)\n\t\t})\n\t}\n\n\tasync uploadImages(images: readonly NamedImageTransfer[]): Promise<ImageAssetData[]> {\n\t\treturn Promise.all(images.map(image => this.uploadImage(image)))\n\t}\n\n\tasync getImageData({\n\t\tid,\n\t\tresolution,\n\t}: AssetIdentifier & Partial<Pick<ImageAssetData, \"resolution\">>): Promise<BytesData> {\n\t\t// NOTE: Older versions of Plugin API may not be sending along an options object hence the type being a Partial.\n\t\tconst url = this.context.assetResolver.getUrl(id, resolution ?? \"auto\")\n\n\t\tif (!url) throw new PluginOnlyError(\"Expected URL to be present for image asset\")\n\n\t\tconst response = await fetch(url)\n\t\tconst blob = await response.blob()\n\n\t\tconst type = response.headers.get(\"Content-Type\")\n\t\tif (!type) {\n\t\t\tthrow new Error(\"Unknown content-type for file at URL\")\n\t\t}\n\n\t\tassertIsImageMimeType(type)\n\n\t\tconst buffer = await new Response(blob).arrayBuffer()\n\t\tconst bytes = new Uint8Array(buffer)\n\n\t\treturn { bytes, mimeType: type }\n\t}\n\n\tasync addSVG({ svg, name }: SVGData) {\n\t\tverifyMaxSVGSize(svg)\n\n\t\tconst file = new File([svg], name ?? Dictionary.Unknown, { type: \"image/svg+xml\" })\n\t\tawait addImagesToCanvas(\n\t\t\tthis.engine,\n\t\t\t[file],\n\t\t\tthis.engine.stores.canvasStore.getCanvasCenter(),\n\t\t\t\"plugin\",\n\t\t\tfalse,\n\t\t\ttrue,\n\t\t)\n\t}\n\n\tasync addComponentInstance({\n\t\turl,\n\t\tattributes,\n\t\tparentId,\n\t}: {\n\t\turl: string\n\t\tattributes?: unknown\n\t\tparentId?: string\n\t}): Promise<SomeNodeData> {\n\t\tconst componentInstance = await addComponent({\n\t\t\tattributes,\n\t\t\turl,\n\t\t\tcontext: this.context,\n\t\t\tparentId,\n\t\t})\n\t\tif (!componentInstance) throw new PluginOnlyError(\"Failed to add component instance\")\n\t\treturn getPluginNodeDataFromVekter(componentInstance, this.context)\n\t}\n\n\treadonly preloadedDetachedComponentLayers = new Map<\n\t\tstring /* module URL */,\n\t\tPromise<PreloadedDetachedComponentLayers>\n\t>()\n\n\tprivate getPreloadedDetachedComponentLayers(url: string): Promise<PreloadedDetachedComponentLayers> {\n\t\tconst preloadedDetachedComponentLayers = this.preloadedDetachedComponentLayers\n\t\tconst existingPreload = preloadedDetachedComponentLayers.get(url)\n\t\tif (existingPreload) return existingPreload\n\n\t\tconst engine = this.engine\n\n\t\tconst promise = new Promise<PreloadedDetachedComponentLayers>((resolve, reject) => {\n\t\t\tasync function preload() {\n\t\t\t\ttry {\n\t\t\t\t\tconst info = await preloadDetachedComponentLayers({ engine, url })\n\t\t\t\t\tresolve(info)\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error)\n\t\t\t\t\tpreloadedDetachedComponentLayers.delete(url)\n\t\t\t\t}\n\t\t\t}\n\t\t\tvoid preload()\n\t\t})\n\n\t\tthis.preloadedDetachedComponentLayers.set(url, promise)\n\t\treturn promise\n\t}\n\n\tasync addDetachedComponentLayers({\n\t\turl,\n\t\tlayout,\n\t\tattributes,\n\t}: {\n\t\turl: string\n\t\tlayout?: boolean\n\t\tattributes?: unknown\n\t}): Promise<SomeNodeData> {\n\t\tconst preloadedDetachedComponentLayers = await this.getPreloadedDetachedComponentLayers(url)\n\t\tconst frame = await addDetachedComponentLayers({\n\t\t\tattributes,\n\t\t\tpreloadedDetachedComponentLayers,\n\t\t\tdragged: false,\n\t\t\tcontext: this.context,\n\t\t\tlayout: layout ?? false,\n\t\t\tcanvasPosition: null,\n\t\t})\n\t\treturn getPluginNodeDataFromVekter(frame, this.context)\n\t}\n\n\tasync preloadDetachedComponentLayers(url: string): Promise<void> {\n\t\tawait this.getPreloadedDetachedComponentLayers(url)\n\t}\n\n\treadonly preloadedImageSizes = new Map<string /* URL */, Promise<Size>>()\n\n\tprivate getPreloadedImageSize(url: string): Promise<Size> {\n\t\tconst preloadedImageSizes = this.preloadedImageSizes\n\t\tconst existingPreload = preloadedImageSizes.get(url)\n\t\tif (existingPreload) return existingPreload\n\n\t\tconst promise = new Promise<Size>((resolve, reject) => {\n\t\t\tconst image = new Image()\n\n\t\t\timage.onload = () => {\n\t\t\t\tconst { naturalWidth, naturalHeight } = image\n\t\t\t\tresolve({ width: naturalWidth, height: naturalHeight })\n\t\t\t}\n\n\t\t\timage.onerror = error => {\n\t\t\t\treject(error instanceof Error ? error : new Error())\n\t\t\t}\n\n\t\t\timage.src = url\n\t\t})\n\n\t\tthis.preloadedImageSizes.set(url, promise)\n\t\treturn promise\n\t}\n\n\tasync preloadImageUrlForInsertion(url: string): Promise<void> {\n\t\tawait this.getPreloadedImageSize(url)\n\t}\n\n\tasync getText(): Promise<string | null> {\n\t\treturn getText(this.engine)\n\t}\n\n\tasync setText(text: string): Promise<void> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst selection = this.engine.stores.selectionStore.nodes\n\t\t\tif (selection.length === 0) {\n\t\t\t\tthrow new PluginOnlyError(\"No text nodes are selected\")\n\t\t\t}\n\n\t\t\tsetNodeText(selection, text)\n\t\t})\n\t}\n\n\tasync getSVGForNode(nodeId: string): Promise<string | null> {\n\t\tconst node = this.engine.tree.get(nodeId)\n\t\tif (!node) return null\n\n\t\tif (isVectorSetItem(node)) {\n\t\t\tconst icon = await iconForVectorSetItem(node, this.context.engine)\n\t\t\treturn icon ?? null\n\t\t}\n\n\t\tthrow new PluginOnlyError(\"Node does not support SVG\")\n\t}\n\n\tasync getTextForNode(nodeId: string): Promise<string | null> {\n\t\tconst node = this.engine.tree.get(nodeId)\n\n\t\tif (!isRichTextNode(node)) {\n\t\t\tthrow new PluginOnlyError(\"Node is not a text node\")\n\t\t}\n\n\t\treturn node.getTextContent()\n\t}\n\n\tasync setTextForNode(nodeId: string, text: string): Promise<void> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst node = this.engine.tree.get(nodeId)\n\n\t\t\tif (!node) throw new PluginOnlyError(\"Node not found\")\n\n\t\t\tsetNodeText([node], text)\n\t\t})\n\t}\n\n\tasync [getHTMLForNodeMessageType](nodeId: string): Promise<string | null> {\n\t\tconst node = this.engine.tree.get(nodeId)\n\t\tif (!node) return null\n\t\tif (!isRichTextNode(node)) throw new PluginOnlyError(\"Node is not a text node\")\n\n\t\tconst html = node.html\n\t\treturn convertVekterHTMLToPluginHTML(this.context.engine, html, node)\n\t}\n\n\tasync [setHTMLForNodeMessageType](nodeId: string, html: string): Promise<void> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst node = this.engine.tree.get(nodeId)\n\t\t\tif (!isRichTextNode(node)) throw new PluginOnlyError(\"Node not found\")\n\n\t\t\tconst sanitizedHTML = convertPluginHTMLToCanvasHTML(this.engine, html, node, { supportsStyles: true })\n\n\t\t\tnode.set({ html: sanitizedHTML })\n\t\t})\n\t}\n\n\tasync addText(text: string, options?: AddTextOptions) {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\t// At this point tag is already validated by the runtime.\n\t\t\tconst tag = options?.tag ?? \"p\"\n\t\t\tconst node = new RichTextNode({\n\t\t\t\thtml: `<${tag}>${text}</${tag}>`,\n\t\t\t\t// TODO: Support setting width/height for text through API\n\t\t\t\t// https://github.com/framer/company/issues/29270\n\t\t\t\twidthType: DimensionType.Auto,\n\t\t\t\theightType: DimensionType.Auto,\n\t\t\t})\n\n\t\t\tconst parentId = getInsertionParentIdFromSelection(this.engine, node)\n\t\t\tinsertNodeOnCanvas(this.context, node, parentId, undefined)\n\t\t})\n\t}\n\n\tasync getCustomCode(): Promise<PluginCustomHTMLValues> {\n\t\treturn getCustomCode(this.engine, this.manifestId)\n\t}\n\n\tasync setCustomCode(options: SetCustomCodeOptions) {\n\t\tconst scope = CustomCodeScopeNode.ensure(this.engine.tree)\n\t\tconst loadedScope = await scope.load()\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tsetCustomCode(this, options, loadedScope)\n\t\t})\n\t}\n\n\tasync notify(message: string, options: NotifyOptionsData) {\n\t\treturn new Promise<NotificationCloseReason>(resolve => {\n\t\t\tlet closeReason: NotificationCloseReason = \"timeoutReachedOrDismissed\"\n\n\t\t\tthis.activeToastIds.add(options.notificationId)\n\t\t\tconst { primaryText, secondaryText } = getPluginToastParts(this.name, message)\n\t\t\ttoast({\n\t\t\t\ttype: \"add\",\n\t\t\t\tkey: options.notificationId,\n\t\t\t\tvariant: getToastVariantFromNotificationVariant(options),\n\t\t\t\tprimaryText,\n\t\t\t\tsecondaryText,\n\t\t\t\tonDisappear: () => {\n\t\t\t\t\tthis.activeToastIds.delete(options.notificationId)\n\t\t\t\t\tresolve(closeReason)\n\t\t\t\t},\n\t\t\t\taction: options?.buttonText\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttitle: options.buttonText,\n\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\tcloseReason = \"actionButtonClicked\"\n\t\t\t\t\t\t\t\ttoast({\n\t\t\t\t\t\t\t\t\ttype: \"remove\",\n\t\t\t\t\t\t\t\t\tkey: options.notificationId,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\n\t\t\t\tduration: Math.max(options.durationMs ?? defaultToastDuration, 1_500),\n\t\t\t})\n\t\t})\n\t}\n\n\tasync closeNotification(notificationId: string) {\n\t\ttoast({\n\t\t\ttype: \"remove\",\n\t\t\tkey: notificationId,\n\t\t})\n\t}\n\n\t// MARK: Node Queries\n\n\tasync getNodesWithType(nodeId: string | null, type: KnownNodeClass) {\n\t\treturn getNodesDataWithPredicate(this.context, nodeId, node => {\n\t\t\treturn getPluginClassFromVekterNode(node) === type\n\t\t})\n\t}\n\n\tasync getNodesWithAttribute(nodeId: string | null, attribute: string) {\n\t\t// This cast is fine because its the same type we use for the public API, we are just not\n\t\t// using it for the postmessage API because that results in massive Typia code generation.\n\t\tconst traitCheck = getTraitForNodeAttribute(attribute as NodeAttributeKey)\n\t\tif (!traitCheck) throw new PluginOnlyError(`Unknown attribute: ${attribute}`)\n\t\treturn getNodesDataWithPredicate(this.context, nodeId, traitCheck)\n\t}\n\n\tasync getNodesWithAttributeSet(nodeId: string | null, attribute: string) {\n\t\treturn getNodesDataWithPredicate(this.context, nodeId, node => {\n\t\t\t// This cast is fine because its the same type we use for the public API, we are just\n\t\t\t// not using it for the postmessage API because that results in massive Typia code\n\t\t\t// generation.\n\t\t\treturn hasAttributeSet(node, attribute as NodeAttributeKey, this.context)\n\t\t})\n\t}\n\n\t// MARK: Plugin Data\n\n\tasync getPluginData(key: string) {\n\t\treturn getPluginData(this.engine.tree.root, this.manifestId, key)\n\t}\n\n\tasync setPluginData(key: string, value: string | null) {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tsetPluginData(this.engine.tree.root, this.manifestId, key, value)\n\t\t})\n\t}\n\n\tasync getPluginDataKeys() {\n\t\treturn getPluginDataKeys(this.engine.tree.root, this.manifestId)\n\t}\n\n\tasync getPluginDataForNode(id: string, key: string) {\n\t\tconst node = this.engine.tree.get(id)\n\t\tif (!node) throw Error(\"Node not found\")\n\t\tverifyForPlugin(node.supportsPluginData(), \"Node does not support plugin data\")\n\t\treturn getPluginData(node, this.manifestId, key)\n\t}\n\n\tasync setPluginDataForNode(id: string, key: string, value: string | null) {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst node = this.engine.tree.get(id)\n\t\t\tif (!node) throw Error(\"Node not found\")\n\t\t\tverifyForPlugin(node.supportsPluginData(), \"Node does not support plugin data\")\n\t\t\tsetPluginData(node, this.manifestId, key, value)\n\t\t})\n\t}\n\n\tasync getPluginDataKeysForNode(id: string) {\n\t\tconst node = this.engine.tree.get(id)\n\t\tif (!node) throw Error(\"Node not found\")\n\t\tverifyForPlugin(node.supportsPluginData(), \"Node does not support plugin data\")\n\t\treturn getPluginDataKeys(node, this.manifestId)\n\t}\n\n\t// MARK: Dragging\n\n\treadonly dragState = new RenderState<DragState>({ type: \"idle\" })\n\n\tprivate updateDragEndState({ cancelled }: { cancelled: boolean }) {\n\t\tconst state = this.dragState.getState()\n\n\t\tif (state.type === \"dragging\") {\n\t\t\tthis.dragState.setState({ ...state, type: cancelled ? \"cancelled\" : \"success\" })\n\t\t} else {\n\t\t\tthis.dragState.setState({ type: \"idle\" })\n\t\t}\n\t}\n\n\tprivate endDragSession(info: { dragSessionId: string; cancelled: boolean }) {\n\t\treturn new Promise<DragCompleteResult>((resolve, reject) => {\n\t\t\thighlightInsertParent(this.engine, null, null)\n\n\t\t\tconst state = this.dragState.getState()\n\t\t\tif (state.type !== \"dragging\") return\n\n\t\t\tconst { dragSessionId } = info\n\t\t\tif (state.dragData.dragSessionId !== dragSessionId) return\n\n\t\t\tlet { cancelled } = info\n\n\t\t\ttry {\n\t\t\t\tif (cancelled) return\n\n\t\t\t\tconst { dragData, dragInfo } = state\n\t\t\t\tif (!dragInfo || !isDraggingOverCanvas(this.dragState)) {\n\t\t\t\t\tcancelled = true\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tconst canvasPosition = this.engine.stores.canvasStore.convertContainerPointToCanvas(dragInfo.mouse)\n\t\t\t\tconst insertType = getInsertTypeFromDragData(dragData)\n\t\t\t\tconst scope = this.engine.stores.scopeStore.active\n\t\t\t\tassert(isCanvasScopeNode(scope))\n\n\t\t\t\t// Focus the main app window so you can use the keyboard shortcuts (e.g. delete)\n\t\t\t\twindow.focus()\n\n\t\t\t\tswitch (dragData.type) {\n\t\t\t\t\tcase \"svg\": {\n\t\t\t\t\t\tverifyMaxSVGSize(dragData.svg)\n\n\t\t\t\t\t\tconst { parent, insertionIndex } = getInsertTarget({\n\t\t\t\t\t\t\tengine: this.engine,\n\t\t\t\t\t\t\ttype: insertType,\n\t\t\t\t\t\t\tcanvasPosition,\n\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\tsize: state.size,\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tconst imageTarget: AddImageTarget | undefined = parent\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\ttype: \"node\",\n\t\t\t\t\t\t\t\t\tparentId: parent.id,\n\t\t\t\t\t\t\t\t\tindex: insertionIndex,\n\t\t\t\t\t\t\t\t\tposition: canvasPosition,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: undefined\n\n\t\t\t\t\t\tconst file = new File([dragData.svg], dragData.name ?? Dictionary.Unknown, {\n\t\t\t\t\t\t\ttype: \"image/svg+xml\",\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\taddImagesToCanvas(\n\t\t\t\t\t\t\tthis.engine,\n\t\t\t\t\t\t\t[file],\n\t\t\t\t\t\t\tcanvasPosition,\n\t\t\t\t\t\t\t\"plugin\",\n\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\timageTarget ? [imageTarget] : undefined,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.then(nodeIds => {\n\t\t\t\t\t\t\t\tif (nodeIds.length !== 1) {\n\t\t\t\t\t\t\t\t\tresolve({ status: \"error\", reason: \"Expected a single node to be inserted\" })\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (!isString(nodeIds[0])) {\n\t\t\t\t\t\t\t\t\tresolve({ status: \"error\", reason: \"Expected a valid node id\" })\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tresolve({ status: \"success\", nodeId: nodeIds[0] })\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.catch(reason => {\n\t\t\t\t\t\t\t\tresolve({ status: \"error\", reason })\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase \"componentInstance\": {\n\t\t\t\t\t\taddComponent({\n\t\t\t\t\t\t\tcontext: this.context,\n\t\t\t\t\t\t\turl: dragData.url,\n\t\t\t\t\t\t\tattributes: dragData.attributes,\n\t\t\t\t\t\t\tcanvasPosition,\n\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.then(node => (node ? resolve({ status: \"success\", nodeId: node.id }) : reject()))\n\t\t\t\t\t\t\t.catch(reason => {\n\t\t\t\t\t\t\t\tresolve({ status: \"error\", reason })\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase \"detachedComponentLayers\": {\n\t\t\t\t\t\tthis.getPreloadedDetachedComponentLayers(dragData.url)\n\t\t\t\t\t\t\t.then(preloadedDetachedComponentLayers =>\n\t\t\t\t\t\t\t\taddDetachedComponentLayers({\n\t\t\t\t\t\t\t\t\tcontext: this.context,\n\t\t\t\t\t\t\t\t\tpreloadedDetachedComponentLayers,\n\t\t\t\t\t\t\t\t\tdragged: true,\n\t\t\t\t\t\t\t\t\tattributes: dragData.attributes,\n\t\t\t\t\t\t\t\t\tcanvasPosition,\n\t\t\t\t\t\t\t\t\tlayout: dragData.layout === true,\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.then(node => resolve({ status: \"success\", nodeId: node.id }))\n\t\t\t\t\t\t\t.catch(reason => {\n\t\t\t\t\t\t\t\tresolve({ status: \"error\", reason })\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase \"image\": {\n\t\t\t\t\t\tconst imageUpload = uploadImageFromDataTransfer(this.assetUploader, {\n\t\t\t\t\t\t\ttype: \"url\",\n\t\t\t\t\t\t\turl: dragData.image,\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tthis.getPreloadedImageSize(dragData.image)\n\t\t\t\t\t\t\t.then(async size => {\n\t\t\t\t\t\t\t\tconst placeholderId = await this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\t\t\t\t\t\t\tconst target = getInsertTarget({\n\t\t\t\t\t\t\t\t\t\tengine: this.engine,\n\t\t\t\t\t\t\t\t\t\ttype: insertType,\n\t\t\t\t\t\t\t\t\t\tcanvasPosition,\n\t\t\t\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\t\t\tsize,\n\t\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\t\tconst placeholderInfo = createInsertImagePlaceholder(\n\t\t\t\t\t\t\t\t\t\tthis.engine,\n\t\t\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\t\t\tsize,\n\t\t\t\t\t\t\t\t\t\tdragData.name,\n\t\t\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\treturn placeholderInfo.placeholderId\n\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\tconst uploadResult = await imageUpload\n\t\t\t\t\t\t\t\tawait noMoveToolActive(this.engine)\n\n\t\t\t\t\t\t\t\tawait this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\t\t\t\t\t\t\tconst placeholder = this.engine.tree.get<FrameNode>(placeholderId)\n\t\t\t\t\t\t\t\t\tif (!placeholder) return\n\t\t\t\t\t\t\t\t\tapplyImageFillToNode(placeholder, uploadResult, undefined, dragData.resolution)\n\n\t\t\t\t\t\t\t\t\tapplyImageOptionsToNode(placeholder, dragData)\n\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\treturn placeholderId\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.then(nodeId => resolve({ status: \"success\", nodeId }))\n\t\t\t\t\t\t\t.catch(reason => {\n\t\t\t\t\t\t\t\tresolve({ status: \"error\", reason })\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\tresolve({ status: \"error\", reason: \"Unknown drag data type\" })\n\t\t\t\t\t\tassertNever(dragData, \"Unknown drag data type\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.updateDragEndState({ cancelled })\n\t\t\t}\n\t\t})\n\t}\n\n\tasync setDragData(dragSessionId: string, dragData: DragData) {\n\t\tconst size: Size = { width: 200, height: 200 }\n\n\t\tif (dragData.type === \"svg\") {\n\t\t\tconst svgSize = calculateSizeOfSVG(dragData.svg)\n\t\t\tsize.width = svgSize.width\n\t\t\tsize.height = svgSize.height\n\t\t}\n\n\t\tthis.dragState.setState({\n\t\t\ttype: \"dataReceived\",\n\t\t\tdragData: { dragSessionId, ...dragData },\n\t\t\tsize,\n\t\t})\n\t}\n\n\tasync onDragStart(info: DragStartInfo) {\n\t\tconst state = this.dragState.getState()\n\t\tif (state.type !== \"dataReceived\" || state.dragData.dragSessionId !== info.dragSessionId) return\n\n\t\tconst elementRect = convertPluginPositionToWindow(info.elementRect, this.iFrameRef)\n\t\tconst mouse = convertPluginPositionToWindow(info.mouse, this.iFrameRef)\n\t\tif (!elementRect || !mouse) return\n\n\t\tconst dragStartInfo: DragStartInfo = {\n\t\t\tdragSessionId: info.dragSessionId,\n\t\t\telementRect,\n\t\t\tmouse,\n\t\t\tsvgRect: info.svgRect,\n\t\t}\n\n\t\tconst center = Rect.center(elementRect)\n\t\tconst offset = Point.subtract(mouse, center)\n\n\t\tthis.dragState.setState({\n\t\t\t...state,\n\t\t\ttype: \"dragging\",\n\t\t\tdragStartInfo,\n\t\t\tdragInfo: null,\n\t\t\toffset,\n\t\t\toverCanvas: false,\n\t\t\thasBeenOverCanvas: false,\n\t\t})\n\t}\n\n\tasync onDrag(info: DragInfo) {\n\t\tconst state = this.dragState.getState()\n\t\tif (state.type !== \"dragging\" || state.dragData.dragSessionId !== info.dragSessionId) return null\n\n\t\tconst mouse = convertPluginPositionToWindow(info.mouse, this.iFrameRef)\n\t\tif (!mouse) {\n\t\t\tvoid this.endDragSession({ dragSessionId: info.dragSessionId, cancelled: true })\n\t\t\tthrow new Error(\"Failed to convert mouse position\")\n\t\t}\n\n\t\tconst isOverCanvas = isDraggingOverCanvas(this.dragState)\n\t\tconst canvasPosition = this.engine.stores.canvasStore.convertContainerPointToCanvas(mouse)\n\n\t\tconst scope = this.engine.stores.scopeStore.active\n\t\tassert(isCanvasScopeNode(scope))\n\t\tconst { parent, insertionLine } = isOverCanvas\n\t\t\t? getInsertTarget({\n\t\t\t\t\tengine: this.engine,\n\t\t\t\t\ttype: getInsertTypeFromDragData(state.dragData),\n\t\t\t\t\tscope,\n\t\t\t\t\tcanvasPosition,\n\t\t\t\t\tsize: state.size,\n\t\t\t\t})\n\t\t\t: { parent: null, insertionLine: null }\n\n\t\thighlightInsertParent(this.engine, parent, insertionLine)\n\n\t\tconst dragInfo: DragInfo = { dragSessionId: info.dragSessionId, mouse }\n\n\t\tthis.dragState.setState({\n\t\t\t...state,\n\t\t\tdragInfo,\n\t\t\toverCanvas: isOverCanvas,\n\t\t\thasBeenOverCanvas: state.hasBeenOverCanvas || isOverCanvas,\n\t\t})\n\t\treturn isOverCanvas ? \"copy\" : null\n\t}\n\n\tasync onDragEnd(info: DragEndInfo) {\n\t\treturn this.endDragSession(info)\n\t}\n\n\t// Purely used for focus management\n\tasync onPointerDown() {\n\t\tconst { chromeStore } = this.engine.stores\n\t\tif (chromeStore.floatingWindowInFront === \"plugin\") return\n\n\t\tthis.engine.scheduler.processWhenReady(() => {\n\t\t\tchromeStore.floatingWindowInFront = \"plugin\"\n\t\t})\n\t}\n\n\tasync preloadDragPreviewImage(url: string): Promise<void> {\n\t\tthis.dragState.setState(current => ({ ...current, dragPreviewImagePreload: url }))\n\t}\n\n\t// MARK: CMS\n\n\tasync getActiveManagedCollection() {\n\t\tconst collection = getCollectionNodeFromSelection(this.engine)\n\t\tassertPluginManagedCollection(this.manifestId, collection)\n\t\treturn getPluginCollectionData(collection, this.manifestId, this.modeHandlers.mode)\n\t}\n\n\t/** @deprecated Use `getActiveManagedCollection` */\n\tasync getManagedCollection() {\n\t\treturn this.getActiveManagedCollection()\n\t}\n\n\tasync getManagedCollections() {\n\t\tlet contentManagementNode: ContentManagementNode | undefined | null\n\n\t\tswitch (this.manifest.type) {\n\t\t\tcase \"hosted\": {\n\t\t\t\tconst activeScope = this.engine.stores.scopeStore.active\n\t\t\t\tassert(isContentManagementNode(activeScope), \"Managed collection modes are only available in the CMS\")\n\t\t\t\tcontentManagementNode = activeScope\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase \"api\":\n\t\t\t\tcontentManagementNode = await getContentManagementNode(this.engine.tree)?.load()\n\t\t\t\tif (!contentManagementNode) return []\n\t\t\t\tbreak\n\n\t\t\tdefault:\n\t\t\t\tassertNever(this.manifest, `Unknown plugin manifest type`)\n\t\t}\n\n\t\tconst result: CollectionData[] = []\n\n\t\tfor (const node of contentManagementNode.children) {\n\t\t\tif (node.managedByPlugin === this.manifestId) {\n\t\t\t\tresult.push(getPluginCollectionData(node, this.manifestId, this.modeHandlers.mode))\n\t\t\t}\n\t\t}\n\n\t\treturn result\n\t}\n\n\tasync createCollection(name: string): Promise<CollectionData> {\n\t\tconst collectionNode = await this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\treturn createCollectionNode(this.engine, name)\n\t\t})\n\n\t\trecord(\"collection_create\", {\n\t\t\trecordCount: 0,\n\t\t\trecordSource: \"blank\",\n\t\t\tsource: `plugin:${this.manifestId}`,\n\t\t})\n\n\t\treturn getPluginCollectionData(collectionNode, this.manifestId, this.modeHandlers.mode)\n\t}\n\n\tasync createManagedCollection(name: string): Promise<CollectionData> {\n\t\tconst collectionNode = await this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\treturn createManagedCollectionNode(this.engine, this.manifest, name)\n\t\t})\n\n\t\treturn getPluginCollectionData(collectionNode, this.manifestId, this.modeHandlers.mode)\n\t}\n\n\tasync getManagedCollectionItemIds(id: NodeID) {\n\t\tconst collection = this.engine.tree.get(id)\n\t\tassertPluginManagedCollection(this.manifestId, collection)\n\n\t\treturn collection.getUnsortedChildren().map(child => {\n\t\t\tassert(child.externalId, \"Expected child to have an external id\")\n\t\t\treturn child.externalId\n\t\t})\n\t}\n\n\tasync setManagedCollectionItemOrder(id: NodeID, externalIds: NodeID[]) {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst collection = this.engine.tree.get(id)\n\t\t\tassertPluginManagedCollection(this.manifestId, collection)\n\n\t\t\tconst externalIdToIndex = arrayToMap(externalIds, (externalId, index) => [externalId, index])\n\n\t\t\tthis.engine.tree.sortNodeChildren(collection, (a: CollectionItemNode, b: CollectionItemNode) => {\n\t\t\t\tassert(a.externalId, \"Expected node to have an external id\")\n\t\t\t\tconst indexA = externalIdToIndex.get(a.externalId) ?? Number.POSITIVE_INFINITY\n\n\t\t\t\tassert(b.externalId, \"Expected node to have an external id\")\n\t\t\t\tconst indexB = externalIdToIndex.get(b.externalId) ?? Number.POSITIVE_INFINITY\n\n\t\t\t\treturn indexA - indexB\n\t\t\t})\n\t\t})\n\t}\n\n\tasync setManagedCollectionFields(id: NodeID, fields: ManagedCollectionFieldInputData[]) {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst collection = this.engine.tree.get(id)\n\t\t\tassertPluginManagedCollection(this.manifestId, collection)\n\n\t\t\tconst { variables, removedVariables } = getUpdatedManagedCollectionVariables(\n\t\t\t\tthis.engine,\n\t\t\t\tthis.manifest.id,\n\t\t\t\tthis.modeHandlers.mode,\n\t\t\t\tcollection,\n\t\t\t\tfields,\n\t\t\t)\n\n\t\t\tcollection.set({ variables })\n\n\t\t\tif (removedVariables.length === 0) return\n\n\t\t\tconst removedVariableIds = removedVariables.map(variable => variable.id)\n\t\t\tfor (const item of collection.getUnsortedChildren()) {\n\t\t\t\titem.clearControlProps(removedVariableIds)\n\t\t\t}\n\n\t\t\tconst pluginVariableIds = { ...collection.pluginVariableIds }\n\t\t\tfor (const removedVariable of removedVariables) {\n\t\t\t\tassert(removedVariable.externalId, \"Expected removed variable to have an external id\")\n\n\t\t\t\tconst pluginVariableIdKey = getPluginVariableIdKeyFromVariable(this.engine.tree, removedVariable)\n\t\t\t\tif (!pluginVariableIdKey) continue\n\n\t\t\t\tpluginVariableIds[pluginVariableIdKey] = removedVariable.id\n\t\t\t}\n\n\t\t\tcollection.set({ pluginVariableIds })\n\t\t})\n\t}\n\n\tasync getManagedCollectionFields(id: NodeID): Promise<ManagedCollectionField[]> {\n\t\tconst fields = await this.getManagedCollectionFields2(id)\n\n\t\treturn fields.filter(field => field.type !== \"array\")\n\t}\n\n\tasync getManagedCollectionFields2(id: NodeID): Promise<ManagedCollectionField[]> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst collection = this.engine.tree.get(id)\n\t\t\tassertPluginManagedCollection(this.manifestId, collection)\n\n\t\t\treturn getPluginManagedCollectionFields(this.context.engine, collection)\n\t\t})\n\t}\n\n\tprivate async applyCollectionItemLocalizationUpdates(\n\t\tcollection: CollectionNode,\n\t\tinputItems: OmitEvery<NormalizedCollectionItemInput, \"externalId\">[],\n\t) {\n\t\tconst { localizationUpdates, includedLocalesUpdates } = await prepareCollectionItemLocalizationUpdates(\n\t\t\tthis.engine,\n\t\t\tcollection,\n\t\t\tinputItems,\n\t\t\tthis.assetUploader,\n\t\t)\n\n\t\tawait this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tapplyLocalizationUpdates(this.engine, this.manifestId, this.modeHandlers.mode, localizationUpdates)\n\t\t\tapplyIncludedLocalesUpdates(this.engine, includedLocalesUpdates)\n\t\t})\n\t}\n\n\tasync addCollectionItems(\n\t\tcollectionId: NodeID,\n\t\tinputItems: DeepReadonly<ApiV2CollectionItemInput[]>,\n\t): Promise<ApiV2CollectionItemData[]> {\n\t\tconst items = await this._addCollectionItems(collectionId, inputItems)\n\t\treturn items.map(item => migrateToApiV2CollectionItemData(item))\n\t}\n\n\taddCollectionItems2(\n\t\tcollectionId: NodeID,\n\t\tinputItems: DeepReadonly<CollectionItemInput[]>,\n\t): Promise<CollectionItemSerializableData[]> {\n\t\treturn this._addCollectionItems(collectionId, inputItems)\n\t}\n\n\tprivate ensureModuleComponentsPreloaded(): Promise<void> {\n\t\tthis.#moduleComponentsPreloaded ??= preloadModuleComponents(this.engine).catch(() => {\n\t\t\tthis.#moduleComponentsPreloaded = undefined\n\t\t})\n\t\treturn this.#moduleComponentsPreloaded\n\t}\n\n\tprivate async _addCollectionItems(\n\t\tcollectionId: NodeID,\n\t\tinputItems: DeepReadonly<ApiV2CollectionItemInput[] | CollectionItemInput[]>,\n\t): Promise<CollectionItemSerializableData[]> {\n\t\tawait this.ensureModuleComponentsPreloaded()\n\t\tconst collection = this.engine.tree.get(collectionId)\n\t\tassertUnmanagedCollection(collection)\n\n\t\t// This isn't in prepareCollectionItemUpsertionTreeOperations because\n\t\t// only managed collections are required to have a slug variable.\n\t\tconst slugVariable = collection.variables.find(variable => variable.type === \"slug\")\n\t\tverifyForPlugin(slugVariable?.type === \"slug\", \"Legacy collections without slugs are read-only\")\n\n\t\tconst normalizedInputItems = normalizeUnmanagedCollectionItemInputs(collection, inputItems, this.engine)\n\t\tconst preparedTreeOperations = await prepareCollectionItemUpsertionTreeOperations(\n\t\t\tcollection,\n\t\t\tslugVariable,\n\t\t\tnormalizedInputItems,\n\t\t\tthis.assetUploader,\n\t\t\tthis.engine,\n\t\t\tfalse,\n\t\t)\n\n\t\tif (this.hasStopped()) return []\n\n\t\tconst resultingItems: CollectionItemNode[] = []\n\n\t\tawait this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tfor (const operation of preparedTreeOperations) {\n\t\t\t\tif (operation.type === \"insert\") {\n\t\t\t\t\tconst item = CollectionItemNode.create(operation.properties)\n\t\t\t\t\tthis.engine.stores.scopeStore.insertNode(item, collection.id)\n\t\t\t\t\tresultingItems.push(item)\n\t\t\t\t\trecord(\"collection_record_create\", { source: `plugin:${this.manifestId}` })\n\t\t\t\t} else if (operation.type === \"update\") {\n\t\t\t\t\tconst node = this.engine.tree.get(operation.nodeId)\n\n\t\t\t\t\t// If null, it likely means that the item was deleted by\n\t\t\t\t\t// another user, which is fine.\n\t\t\t\t\tif (isNull(node)) continue\n\t\t\t\t\tassert(isCollectionItemNode(node), \"Operation node ID must refer to collection item\")\n\n\t\t\t\t\tconst item = node.set(operation.properties)\n\t\t\t\t\tresultingItems.push(item)\n\t\t\t\t} else {\n\t\t\t\t\tassertNever(operation)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tconst updatedCollection = this.engine.tree.current(collection)\n\t\tassert(updatedCollection, \"Collection was not found\")\n\t\tawait this.applyCollectionItemLocalizationUpdates(updatedCollection, normalizedInputItems)\n\n\t\treturn getCollectionItems(this.manifestId, this.context, collection, resultingItems)\n\t}\n\n\tasync addManagedCollectionItems(collectionId: NodeID, inputItems: DeepReadonly<ApiV2ManagedCollectionItemInput[]>) {\n\t\treturn this._addManagedCollectionItems(collectionId, inputItems)\n\t}\n\n\tasync addManagedCollectionItems2(collectionId: NodeID, inputItems: DeepReadonly<ManagedCollectionItemInput[]>) {\n\t\treturn this._addManagedCollectionItems(collectionId, inputItems)\n\t}\n\n\tprivate async _addManagedCollectionItems(\n\t\tcollectionId: NodeID,\n\t\tinputItems: DeepReadonly<ApiV2ManagedCollectionItemInput[] | ManagedCollectionItemInput[]>,\n\t) {\n\t\tconst collection = this.engine.tree.get(collectionId)\n\t\tassertPluginManagedCollection(this.manifestId, collection)\n\n\t\t// This isn't in prepareCollectionItemUpsertionTreeOperations because\n\t\t// only managed collections are required to have a slug variable.\n\t\tconst slugVariable = collection.variables.find(variable => variable.type === \"slug\")\n\t\tassert(slugVariable?.type === \"slug\", \"Slug variable not found in managed collection\")\n\n\t\tconst normalizedInputItems = normalizeManagedCollectionItemInputs(collection, inputItems, this.engine)\n\t\tconst preparedTreeOperations = await prepareCollectionItemUpsertionTreeOperations(\n\t\t\tcollection,\n\t\t\tslugVariable,\n\t\t\tnormalizedInputItems,\n\t\t\tthis.assetUploader,\n\t\t\tthis.engine,\n\t\t\ttrue,\n\t\t)\n\n\t\tif (this.hasStopped()) return\n\n\t\tawait this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\t// Create a map of existing external IDs to check for race conditions.\n\t\t\t// We do this inside the scheduler task to ensure we have the latest state.\n\t\t\t// We must re-fetch the collection because the tree might have been updated by a concurrent task.\n\t\t\tconst freshCollection = this.engine.tree.get(collectionId)\n\t\t\tassertPluginManagedCollection(this.manifestId, freshCollection)\n\n\t\t\tconst existingExternalIds = new Map<string, CollectionItemNode>()\n\t\t\tfor (const child of freshCollection.getUnsortedChildren()) {\n\t\t\t\tif (child.externalId) {\n\t\t\t\t\texistingExternalIds.set(child.externalId, child)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (const operation of preparedTreeOperations) {\n\t\t\t\tif (operation.type === \"insert\") {\n\t\t\t\t\tconst { externalId, id: _id, ...properties } = operation.properties\n\t\t\t\t\tconst existingItem = externalId ? existingExternalIds.get(externalId) : undefined\n\n\t\t\t\t\tif (existingItem) {\n\t\t\t\t\t\t// If the item already exists, we update it instead of inserting a duplicate.\n\t\t\t\t\t\texistingItem.setByManagingPlugin(properties)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst item = CollectionItemNode.createByManagingPlugin(operation.properties)\n\t\t\t\t\t\tthis.engine.stores.scopeStore.insertNode(item, freshCollection.id)\n\n\t\t\t\t\t\tif (externalId) {\n\t\t\t\t\t\t\texistingExternalIds.set(externalId, item)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (operation.type === \"update\") {\n\t\t\t\t\tconst node = this.engine.tree.get(operation.nodeId)\n\n\t\t\t\t\t// Hard error rather than swallowing, like in unmanaged,\n\t\t\t\t\t// because this likely means that two syncs are happening at\n\t\t\t\t\t// the same time, and we don't want to end up with\n\t\t\t\t\t// inconsistent state.\n\t\t\t\t\tverifyForPlugin(isCollectionItemNode(node), \"Collection item deleted before operation finished\")\n\n\t\t\t\t\tnode.setByManagingPlugin(operation.properties)\n\t\t\t\t} else {\n\t\t\t\t\tassertNever(operation)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tconst updatedCollection = this.engine.tree.current(collection)\n\t\tassert(updatedCollection, \"Collection was not found\")\n\t\tawait this.applyCollectionItemLocalizationUpdates(updatedCollection, normalizedInputItems)\n\t}\n\n\tasync removeManagedCollectionItems(id: NodeID, externalIds: NodeID[]) {\n\t\tawait this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst collection = this.engine.tree.get(id)\n\t\t\tassertPluginManagedCollection(this.manifestId, collection)\n\n\t\t\tconst idByExternalId = arrayToMap(collection.getUnsortedChildren(), child => {\n\t\t\t\tassert(isDefined(child.externalId), \"Expected collection item to have an external id\")\n\t\t\t\treturn [child.externalId, child.id]\n\t\t\t})\n\n\t\t\tfor (const externalId of externalIds) {\n\t\t\t\tconst nodeId = idByExternalId.get(externalId)\n\t\t\t\tif (!nodeId) throw new Error(\"Non existing id\")\n\t\t\t\tthis.engine.deleteNode(nodeId)\n\t\t\t}\n\t\t})\n\t}\n\n\tasync getCollection(id: NodeID): Promise<CollectionData | null> {\n\t\tconst collection = this.engine.tree.get(id)\n\t\tif (!isCollectionNode(collection)) return null\n\t\treturn getPluginCollectionData(collection, this.manifestId, this.modeHandlers.mode)\n\t}\n\n\tasync getActiveCollection(): Promise<CollectionData | null> {\n\t\tconst collection = getCollectionNodeFromSelection(this.engine)\n\t\tif (!collection) return null\n\t\treturn getPluginCollectionData(collection, this.manifestId, this.modeHandlers.mode)\n\t}\n\n\tasync getCollections(): Promise<CollectionData[]> {\n\t\tconst contentManagement = await getContentManagementNode(this.engine.tree)?.load()\n\t\tif (!contentManagement) return []\n\n\t\treturn contentManagement.children.map(collectionNode =>\n\t\t\tgetPluginCollectionData(collectionNode, this.manifestId, this.modeHandlers.mode),\n\t\t)\n\t}\n\n\tasync getCollectionFields(id: NodeID, includeDividers: true | undefined): Promise<FieldDefinitionData[]> {\n\t\tconst fields = await this.getCollectionFields2(id, includeDividers)\n\t\treturn fields.filter(field => field.type !== \"array\")\n\t}\n\n\tasync getCollectionFields2(id: NodeID, includeDividers: true | undefined): Promise<FieldDefinitionData[]> {\n\t\tconst collection = this.engine.tree.get(id)\n\t\tverifyForPlugin(isCollectionNode(collection), \"Node is not a collection\")\n\t\treturn getCollectionFields(this.context.engine, collection, includeDividers ? \"includeDividers\" : \"excludeDividers\")\n\t}\n\n\tasync addCollectionFields(collectionId: string, fields: FieldInput[]): Promise<(FieldDefinitionData | null)[]> {\n\t\tconst addedFields = await this.addCollectionFields2(collectionId, fields)\n\n\t\t// It should be impossible that there were any array fields here,\n\t\t// because they were not supported in this version of the API.\n\t\treturn addedFields.filter(field => field?.type !== \"array\")\n\t}\n\n\tasync addCollectionFields2(collectionId: string, fields: FieldInput[]): Promise<(FieldDefinitionData | null)[]> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst collection = this.engine.tree.get(collectionId)\n\t\t\tassertUnmanagedCollection(collection)\n\n\t\t\t// We don't check for the read-only status, as it's not really harmful. For example,\n\t\t\t// slugs are untouchable, and their presence isn't required for any of this to work.\n\n\t\t\tconst { variables, upsertedVariables } = upsertCollectionFields(\n\t\t\t\tthis.manifest.id,\n\t\t\t\tthis.modeHandlers.mode,\n\t\t\t\tcollection,\n\t\t\t\tfields,\n\t\t\t\tthis.engine,\n\t\t\t)\n\n\t\t\tif (variables !== collection.variables) {\n\t\t\t\tcollection.set({ variables })\n\t\t\t}\n\n\t\t\treturn mapSpecificVariablesToCollectionFields(this.context.engine, collection, upsertedVariables)\n\t\t})\n\t}\n\n\tasync removeCollectionFields(id: NodeID, fieldIds: string[]): Promise<void> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst collection = this.engine.tree.get(id)\n\t\t\tassertUnmanagedCollection(collection)\n\n\t\t\tconst variables = collection.variables.filter(variable => !fieldIds.includes(variable.id))\n\t\t\tcollection.set({ variables })\n\n\t\t\tfor (const item of collection.getUnsortedChildren()) {\n\t\t\t\titem.clearControlProps(fieldIds)\n\t\t\t}\n\t\t})\n\t}\n\n\tasync setCollectionFieldOrder(collectionId: NodeID, fieldIds: string[]): Promise<void> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst collection = this.engine.tree.get(collectionId)\n\t\t\tassertUnmanagedCollection(collection)\n\n\t\t\tconst slugVariableIndex = collection.variables.findIndex(variable => variable.type === \"slug\")\n\t\t\tconst slugVariable = collection.variables[slugVariableIndex]\n\n\t\t\tconst fieldIdsWithSlug = slugVariable ? fieldIds.toSpliced(slugVariableIndex, 0, slugVariable.id) : fieldIds\n\t\t\tconst fieldIdToIndex = arrayToMap(fieldIdsWithSlug, (fieldId, index) => [fieldId, index])\n\n\t\t\tconst variables = collection.variables.toSorted((a, b) => {\n\t\t\t\tconst indexA = fieldIdToIndex.get(a.id) ?? Number.POSITIVE_INFINITY\n\t\t\t\tconst indexB = fieldIdToIndex.get(b.id) ?? Number.POSITIVE_INFINITY\n\t\t\t\treturn indexA - indexB\n\t\t\t})\n\n\t\t\tcollection.set({ variables })\n\t\t})\n\t}\n\n\tasync getCollectionItems(id: NodeID): Promise<ApiV2CollectionItemData[]> {\n\t\tconst items = await this.getCollectionItems2(id)\n\t\treturn items.map(item => migrateToApiV2CollectionItemData(item))\n\t}\n\n\tasync getCollectionItems2(id: NodeID): Promise<CollectionItemSerializableData[]> {\n\t\tconst collection = this.engine.tree.get(id)\n\t\tif (!isCollectionNode(collection)) throw new PluginOnlyError(\"Node is not a collection\")\n\n\t\treturn getCollectionItems(this.manifestId, this.context, collection)\n\t}\n\n\tasync setCollectionItemOrder(collectionId: NodeID, itemIds: NodeID[]) {\n\t\tconst collection = this.engine.tree.get(collectionId)\n\t\tassertUnmanagedCollection(collection)\n\n\t\tconst itemIdToIndex = arrayToMap(itemIds, (itemId, index) => [itemId, index])\n\n\t\tawait this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tthis.engine.tree.sortNodeChildren(collection, (a, b) => {\n\t\t\t\tconst indexA = itemIdToIndex.get(a.id) ?? Number.POSITIVE_INFINITY\n\t\t\t\tconst indexB = itemIdToIndex.get(b.id) ?? Number.POSITIVE_INFINITY\n\t\t\t\treturn indexA - indexB\n\t\t\t})\n\t\t})\n\t}\n\n\tasync setCollectionItemAttributes(\n\t\tid: NodeID,\n\t\tattributes: ApiV2EditableCollectionItemAttributes,\n\t): Promise<ApiV2CollectionItemData | null> {\n\t\tconst item = await this._setCollectionItemAttributes(id, attributes)\n\t\tif (isNull(item)) return null\n\t\treturn migrateToApiV2CollectionItemData(item)\n\t}\n\n\tsetCollectionItemAttributes2(\n\t\tid: NodeID,\n\t\tattributes: EditableCollectionItemAttributes,\n\t): Promise<CollectionItemSerializableData | null> {\n\t\treturn this._setCollectionItemAttributes(id, attributes)\n\t}\n\n\tasync setCollectionItemAttributes3(\n\t\tid: NodeID,\n\t\tattributes: EditableCollectionItemAttributes,\n\t): Promise<CollectionItemSerializableData | null> {\n\t\treturn this._setCollectionItemAttributes(id, attributes)\n\t}\n\n\tprivate async _setCollectionItemAttributes(\n\t\tid: NodeID,\n\t\tattributes: ApiV2EditableCollectionItemAttributes | EditableCollectionItemAttributes,\n\t): Promise<CollectionItemSerializableData | null> {\n\t\tconst item = this.engine.tree.get(id)\n\n\t\t// It's unlikely that the provided ID was erroneous, as it's provided by\n\t\t// CollectionItem, so it was probably just deleted.\n\t\tif (!item) return null\n\n\t\tverifyForPlugin(isCollectionItemNode(item), \"Node is not a collection item\")\n\t\tassert(isNodeId(item.parentid), \"Collection item has no parent\")\n\n\t\t// addCollectionItems checks that it's unmanaged for us\n\t\tconst resultingItems = await this._addCollectionItems(item.parentid, [{ ...attributes, id }])\n\n\t\t// See the \"!item\" return\n\t\tif (resultingItems.length === 0) return null\n\n\t\tassert(resultingItems.length === 1)\n\t\tassert(resultingItems[0])\n\n\t\treturn resultingItems[0]\n\t}\n\n\tasync setActiveCollection(collectionId: NodeID) {\n\t\tconst collection = this.engine.tree.get(collectionId)\n\t\tif (!isCollectionNode(collection)) return\n\n\t\tswitch (this.modeHandlers.mode) {\n\t\t\tcase \"configureManagedCollection\":\n\t\t\tcase \"syncManagedCollection\":\n\t\t\tcase \"api\":\n\t\t\t\tassertPluginManagedCollection(this.manifestId, collection)\n\t\t\t\tbreak\n\t\t\tcase \"canvas\":\n\t\t\t\tthrow new PluginOnlyError(`Cannot set collection as active in \"${this.modeHandlers.mode}\" mode`)\n\t\t\tcase \"code\":\n\t\t\tcase \"image\":\n\t\t\tcase \"editImage\":\n\t\t\tcase \"collection\":\n\t\t\tcase \"localization\":\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tassertNever(this.modeHandlers)\n\t\t}\n\n\t\tawait this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tthis.engine.stores.scopeStore.select(CONTENT_MANAGEMENT_ID, { keepHistory: false })\n\t\t\tthis.engine.stores.selectionStore.set(collection.id)\n\t\t})\n\t}\n\n\tasync addEnumCase(nodeId: string, variableId: string, attributes: CreateEnumCase): Promise<EnumCaseData | null> {\n\t\treturn addEnumCase(this.context, nodeId, variableId, attributes)\n\t}\n\n\tasync updateEnumCase(\n\t\tnodeId: string,\n\t\tvariableId: string,\n\t\tcaseId: string,\n\t\tattributes: UpdateEnumCase,\n\t): Promise<EnumCaseData | null> {\n\t\treturn updateEnumCase(this.context, nodeId, variableId, caseId, attributes)\n\t}\n\n\tasync removeEnumCase(nodeId: string, variableId: string, caseId: string): Promise<void> {\n\t\tawait removeEnumCase(this.context, nodeId, variableId, caseId)\n\t}\n\n\tasync setEnumCaseOrder(nodeId: string, variableId: string, caseIds: string[]): Promise<void> {\n\t\tawait setEnumCaseOrder(this.context, nodeId, variableId, caseIds)\n\t}\n\n\t// MARK: COLOR STYLES\n\n\tasync getColorStyle(id: NodeID): Promise<ColorStyleData | null> {\n\t\tconst token = this.engine.tree.getNode(id)\n\t\tif (!isColorStyleTokenNode(token) || token.softDeleted) return null\n\n\t\treturn getColorStyleDataFromToken(this.engine, token)\n\t}\n\n\tasync getColorStyles(): Promise<ColorStyleData[]> {\n\t\treturn getColorStyles(this.engine)\n\t}\n\n\tasync createColorStyle(attributes: Record<string, unknown>): Promise<ColorStyleData> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => createColorStyle(this.context, attributes))\n\t}\n\n\tasync setColorStyleAttributes(id: NodeID, attributes: Record<string, unknown>): Promise<ColorStyleData | null> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => setColorStyleAttributes(this.context, id, attributes))\n\t}\n\n\tasync removeColorStyle(id: NodeID): Promise<void> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => removeColorStyle(this.engine, id))\n\t}\n\n\t// MARK: TEXT STYLES\n\n\tasync getTextStyle(id: NodeID): Promise<TextStyleData | null> {\n\t\tconst preset = this.engine.tree.getNode(id)\n\t\tif (!isTextStylePresetPrimaryNode(preset)) return null\n\n\t\treturn getTextStyleDataFromPreset(this.context, preset)\n\t}\n\n\tasync getTextStyles(): Promise<TextStyleData[]> {\n\t\treturn getTextStyles(this.context)\n\t}\n\n\tasync createTextStyle(attributes: Record<string, unknown>): Promise<TextStyleData> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => createTextStyle(this.context, attributes))\n\t}\n\n\tasync setTextStyleAttributes(id: NodeID, attributes: Record<string, unknown>): Promise<TextStyleData | null> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => setTextStyleAttributes(this.context, id, attributes))\n\t}\n\n\tasync removeTextStyle(id: NodeID): Promise<void> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => removeTextStyle(this.engine, id))\n\t}\n\n\t// MARK: FONTS\n\n\tasync getFont(family: string, attributes?: Record<string, unknown>): Promise<FontData | null> {\n\t\treturn getFont(this.fontStore, family, attributes)\n\t}\n\n\tasync getFonts(): Promise<FontData[]> {\n\t\treturn getFonts(this.fontStore)\n\t}\n\n\t// MARK: LOCALIZATIONS\n\n\tasync getLocales(): Promise<readonly Locale[]> {\n\t\treturn getLocales(this.engine)\n\t}\n\n\tasync getDefaultLocale(): Promise<Locale> {\n\t\treturn getDefaultLocale(this.engine)\n\t}\n\n\tasync getActiveLocale(): Promise<Locale | null> {\n\t\treturn getActiveLocale(this.engine)\n\t}\n\n\tasync getLocalizationGroups(filter?: GetLocalizationGroupsFilter): Promise<readonly LocalizationGroup[]> {\n\t\treturn getLocalizationGroups(this.engine, this.abortController.signal, filter)\n\t}\n\n\tasync setLocalizationData(update: LocalizationData): Promise<SetLocalizationDataResult> {\n\t\tthis.windowState.setState(current => ({ ...current, localizationProgress: 0 }))\n\n\t\tconst iterator = updateLocalization(\n\t\t\tthis.engine,\n\t\t\tthis.manifestId,\n\t\t\tthis.modeHandlers.mode,\n\t\t\tupdate,\n\t\t\tthis.abortController.signal,\n\t\t)\n\t\ttry {\n\t\t\tfor await (const localizationProgress of iterator) {\n\t\t\t\tlog.debug(\"updateLocalization progress\", localizationProgress)\n\t\t\t\tthis.windowState.setState(current => ({\n\t\t\t\t\t...current,\n\t\t\t\t\tlocalizationProgress: localizationProgress.progress,\n\t\t\t\t}))\n\n\t\t\t\tif (this.hasStopped()) {\n\t\t\t\t\treturn localizationProgress.result\n\t\t\t\t}\n\n\t\t\t\tif (localizationProgress.done) {\n\t\t\t\t\tlog.debug(\"updateLocalization done\", localizationProgress)\n\t\t\t\t\treturn localizationProgress.result\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthrow new Error(\"Failed to report progress completion\")\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error)\n\t\t\tthrow new PluginOnlyError(`Failed to set localization values: ${message}`)\n\t\t} finally {\n\t\t\t// Wait for the progress bar to animate\n\t\t\tawait delay(500)\n\n\t\t\tthis.windowState.setState(current => ({\n\t\t\t\t...current,\n\t\t\t\tlocalizationProgress: undefined,\n\t\t\t}))\n\t\t}\n\t}\n\n\tasync createLocale(input: CreateLocaleInput): Promise<Locale> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => createLocale(this.engine, input))\n\t}\n\n\tasync getLocaleLanguages(): Promise<{ code: string; name: string }[]> {\n\t\treturn getLocaleLanguages()\n\t}\n\n\tasync getLocaleRegions(language: string): Promise<{ code: string; name: string; isCommon: boolean }[]> {\n\t\treturn getLocaleRegions(this.engine, language)\n\t}\n\n\t// MARK: CODE FILE\n\n\t/** @deprecated Use `framer.createCodeFile` instead. This method will be removed in the near future. */\n\tasync unstable_createCodeFile(name: string, code: string): Promise<CodeFileData> {\n\t\treturn this.createCodeFile(name, code)\n\t}\n\n\tasync createCodeFile(name: string, code: string, options?: { editViaPlugin?: boolean }): Promise<CodeFileData> {\n\t\treturn createCodeFile(this.engine, name, code, this.manifest.id, options?.editViaPlugin ?? true)\n\t}\n\n\t/** @deprecated Use `framer.setCodeFileContent` instead. This method will be removed in the near future. */\n\tasync unstable_setCodeFileContent(id: string, code: string): Promise<CodeFileData> {\n\t\treturn this.setCodeFileContent(id, code)\n\t}\n\n\tasync setCodeFileContent(id: string, code: string): Promise<CodeFileData> {\n\t\treturn setCodeFileContent(this.engine, id, code)\n\t}\n\n\t/** @deprecated Use `framer.removeCodeFile` instead. This method will be removed in the near future. */\n\tasync unstable_removeCodeFile(id: string): Promise<void> {\n\t\treturn this.removeCodeFile(id)\n\t}\n\n\tasync removeCodeFile(id: string): Promise<void> {\n\t\treturn removeCodeFile(this.engine, id)\n\t}\n\n\t/** @deprecated Use `framer.renameCodeFile` instead. This method will be removed in the near future. */\n\tasync unstable_renameCodeFile(id: string, newName: string): Promise<CodeFileData> {\n\t\treturn this.renameCodeFile(id, newName)\n\t}\n\n\tasync renameCodeFile(id: string, newName: string): Promise<CodeFileData> {\n\t\treturn renameCodeFile(this.engine, id, newName)\n\t}\n\n\t/** @deprecated Use `framer.getCodeFiles` instead. This method will be removed in the near future. */\n\tasync unstable_getCodeFiles(): Promise<readonly CodeFileData[]> {\n\t\treturn this.getCodeFiles()\n\t}\n\n\tasync getCodeFiles(): Promise<readonly CodeFileData[]> {\n\t\treturn getAllCodeFiles(this.engine)\n\t}\n\n\t/** @deprecated Use `framer.getCodeFile` instead. This method will be removed in the near future. */\n\tasync unstable_getCodeFile(idOrPath: string): Promise<CodeFileData | null> {\n\t\treturn this.getCodeFile(idOrPath)\n\t}\n\n\tasync getCodeFile(idOrPath: string): Promise<CodeFileData | null> {\n\t\treturn getAllCodeFiles(this.engine, idOrPath)\n\t}\n\n\t/** @deprecated Use `framer.getCodeFileVersions` instead. This method will be removed in the near future. */\n\tasync unstable_getCodeFileVersions(id: string): Promise<readonly CodeFileVersionData[]> {\n\t\treturn this.getCodeFileVersions(id)\n\t}\n\n\tasync getCodeFileVersions(id: string): Promise<readonly CodeFileVersionData[]> {\n\t\treturn getCodeFileVersions(this.engine, id)\n\t}\n\n\t/** @deprecated Use `framer.getCodeFileVersionContent` instead. This method will be removed in the near future. */\n\tasync unstable_getCodeFileVersionContent(fileId: string, versionId: string): Promise<string> {\n\t\treturn this.getCodeFileVersionContent(fileId, versionId)\n\t}\n\n\tasync getCodeFileVersionContent(fileId: string, versionId: string): Promise<string> {\n\t\treturn getCodeFileVersionContent(this.engine, fileId, versionId)\n\t}\n\n\t/** @deprecated Use `framer.lintCode` instead. This method will be removed in the near future. */\n\tasync unstable_getCodeFileLint2(fileName: string, content: string, rules: LintConfig): Promise<LintDiagnostic[]> {\n\t\treturn this.lintCode(fileName, content, rules)\n\t}\n\n\t/** @deprecated This method was removed and will return an empty array. */\n\t// Reason for removal: https://framer-team.slack.com/archives/C06L5H5ADK2/p1765993690508999\n\tasync lintCode(_fileName: string, _content: string, _rules: LintConfig): Promise<LintDiagnostic[]> {\n\t\treturn Promise.resolve([])\n\t}\n\n\t/** @deprecated Use `framer.typecheckCode` instead. This method will be removed in the near future. */\n\tasync unstable_getCodeFileTypecheck2(\n\t\tfileName: string,\n\t\tcontent: string,\n\t\tcompilerOptions?: ts.server.protocol.CompilerOptions,\n\t): Promise<TypecheckDiagnostic[]> {\n\t\treturn this.typecheckCode(fileName, content, compilerOptions)\n\t}\n\n\tasync typecheckCode(\n\t\tfileName: string,\n\t\tcontent: string,\n\t\tcompilerOptions?: ts.server.protocol.CompilerOptions,\n\t\tsessionId?: string,\n\t): Promise<TypecheckDiagnostic[]> {\n\t\t// the validator adds a prefix to the files and includes other \"lib checks\" as well.\n\t\t// to make it possible to filter the results, we need to add the prefix to the file name\n\t\t// so we can filter the results by the file name\n\t\tconst uniqueFilePrefix = `__framer-plugin-input-file__`\n\t\tconst uniqueFileName = `${uniqueFilePrefix}/${fileName}`\n\t\tconst result = await typecheck(uniqueFileName, content, compilerOptions, sessionId)\n\n\t\tconst filteredResult = result\n\t\t\t// filter out the results that don't belong to the file\n\t\t\t.filter(diagnostic => diagnostic.fileName?.endsWith(uniqueFileName))\n\t\t\t.map(diagnostic => ({\n\t\t\t\t...diagnostic,\n\t\t\t\tfileName,\n\t\t\t}))\n\n\t\treturn filteredResult\n\t}\n\n\t// MARK: REDIRECTS\n\n\tasync addRedirects(redirects: RedirectInput[]): Promise<RedirectData[]> {\n\t\tawait ensureRoutesNodeLoaded(this.engine)\n\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\ttry {\n\t\t\t\treturn upsertRedirects(this.engine, redirects)\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof LimitError) {\n\t\t\t\t\tthrow new PluginOnlyError(error.message)\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t}\n\t\t})\n\t}\n\n\tasync getRedirects(): Promise<RedirectData[]> {\n\t\tawait ensureRoutesNodeLoaded(this.engine)\n\n\t\treturn getRedirects(this.engine)\n\t}\n\n\tasync setRedirectOrder(redirectIds: string[]): Promise<void> {\n\t\tawait ensureRoutesNodeLoaded(this.engine)\n\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\ttry {\n\t\t\t\treturn setRedirectOrder(this.engine, redirectIds)\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof LimitError) {\n\t\t\t\t\tthrow new PluginOnlyError(error.message)\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t}\n\t\t})\n\t}\n\n\tasync removeRedirects(redirectIds: string[]): Promise<void> {\n\t\tawait ensureRoutesNodeLoaded(this.engine)\n\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\ttry {\n\t\t\t\treturn removeRedirects(this.engine, redirectIds)\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof LimitError) {\n\t\t\t\t\tthrow new PluginOnlyError(error.message)\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t}\n\t\t})\n\t}\n\n\t/** @deprecated Use `getRuntimeErrorForCodeComponentNode` instead. Can be moved to \"getRuntimeErrorForCodeComponentNode\"\n\t * when Workshop is updated. */\n\tasync getRuntimeErrorForModule(moduleIdentifier: string): Promise<string | null> {\n\t\tif (!isLocalModuleIdentifier(moduleIdentifier)) return null\n\t\treturn this.engine.componentLoader.errorForIdentifier(moduleIdentifier)?.error ?? null\n\t}\n\n\tasync getRuntimeErrorForCodeComponentNode(nodeId: NodeID): Promise<NodeRuntimeErrorResult | null> {\n\t\tconst node = this.engine.tree.getNode(nodeId)\n\t\tif (!node) return null\n\t\tif (!isCodeComponentNode(node)) {\n\t\t\tthrow new Error(\"getRuntimeErrorForCodeComponentNode: node is not a code component node\")\n\t\t}\n\n\t\tconst componentError = await this.engine.canvasSandbox?.sandbox.renderer.getComponentRenderingError(nodeId)\n\t\tif (isString(componentError)) {\n\t\t\treturn {\n\t\t\t\ttype: \"ReactRenderingError\",\n\t\t\t\tmessage: componentError,\n\t\t\t}\n\t\t}\n\n\t\tconst moduleError = this.engine.componentLoader.errorForIdentifier(node.codeComponentIdentifier)\n\t\tif (moduleError) {\n\t\t\treturn {\n\t\t\t\ttype: \"ModuleRuntimeError\",\n\t\t\t\tmessage: moduleError.error,\n\t\t\t}\n\t\t}\n\n\t\treturn null\n\t}\n\n\t// MARK: PLACEHOLDER METHODS\n\n\tasync addComponentInstancePlaceholder(\n\t\tattributes?: ComponentInstancePlaceholderAttributes,\n\t): Promise<ComponentInstancePlaceholderData> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst { scopeStore, pluginStore, canvasStore, treeStore } = this.engine.stores\n\t\t\tconst activeScope = scopeStore.active\n\t\t\tassert(isCanvasScopeNode(activeScope), \"Active scope is not a canvas scope\")\n\n\t\t\tconst id = randomID()\n\n\t\t\tconst placeholder: ComponentInstancePlaceholderData = {\n\t\t\t\tid,\n\t\t\t\twidth: 300,\n\t\t\t\theight: 300,\n\t\t\t\ttitle: \"Generating\u2026\",\n\t\t\t\tcodePreview: null,\n\t\t\t\t...attributes,\n\t\t\t}\n\n\t\t\tpluginStore.componentInstancePlaceholder = {\n\t\t\t\t...placeholder,\n\t\t\t\tscopeId: activeScope.id,\n\t\t\t}\n\n\t\t\tconst rect = getEmptySpaceRect(treeStore.tree, placeholder.width, placeholder.height, activeScope)\n\t\t\tconst center = Rect.center(rect)\n\t\t\tconst currentZoom = canvasStore.zoom\n\t\t\tconst zoom = Math.min(currentZoom, 1)\n\t\t\tcanvasStore.scrollToCenter(center, { animate: true, zoom })\n\n\t\t\treturn placeholder\n\t\t})\n\t}\n\n\tasync updateComponentInstancePlaceholder(\n\t\tplaceholderId: string,\n\t\tattributes: ComponentInstancePlaceholderAttributes,\n\t): Promise<ComponentInstancePlaceholderData | null> {\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst { pluginStore, treeStore } = this.engine.stores\n\t\t\tconst placeholder = pluginStore.componentInstancePlaceholder\n\t\t\tif (placeholder?.id !== placeholderId) return null\n\n\t\t\tconst placeholderScopeId = placeholder.scopeId\n\t\t\tif (treeStore.tree.get(placeholderScopeId) === null) {\n\t\t\t\tpluginStore.componentInstancePlaceholder = null\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tconst updatedPlaceholder = {\n\t\t\t\tcodePreview: null,\n\t\t\t\tid: placeholderId,\n\t\t\t\tscopeId: placeholderScopeId,\n\t\t\t\twidth: placeholder.width,\n\t\t\t\theight: placeholder.height,\n\t\t\t\ttitle: placeholder.title,\n\t\t\t\t...attributes,\n\t\t\t}\n\n\t\t\tpluginStore.componentInstancePlaceholder = updatedPlaceholder\n\n\t\t\treturn {\n\t\t\t\tid: placeholderId,\n\t\t\t\twidth: updatedPlaceholder.width,\n\t\t\t\theight: updatedPlaceholder.height,\n\t\t\t\ttitle: updatedPlaceholder.title,\n\t\t\t\tcodePreview: updatedPlaceholder.codePreview,\n\t\t\t}\n\t\t})\n\t}\n\n\tasync removeComponentInstancePlaceholder(placeholderId: string): Promise<void> {\n\t\tconst { pluginStore } = this.engine.stores\n\t\tconst placeholder = pluginStore.componentInstancePlaceholder\n\t\tif (placeholder?.id !== placeholderId) return\n\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tpluginStore.componentInstancePlaceholder = null\n\t\t})\n\t}\n\n\tasync replaceComponentInstancePlaceholderWithComponentInstance(\n\t\tplaceholderId: string,\n\t\tmoduleURL: string,\n\t\tattributes?: Partial<EditableComponentInstanceNodeAttributes>,\n\t): Promise<SomeNodeData | null> {\n\t\tconst { pluginStore, scopeStore, treeStore } = this.engine.stores\n\t\tconst placeholder = pluginStore.componentInstancePlaceholder\n\t\tif (placeholder?.id !== placeholderId) return null\n\t\tconst { moduleIdentifier } = await lookUpModuleURL(this.engine, moduleURL)\n\t\tassert(!isExternalModuleIdentifier(moduleIdentifier))\n\n\t\treturn this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst scope = treeStore.tree.get(placeholder.scopeId)\n\t\t\tif (!scope) return null\n\n\t\t\tassert(isCanvasScopeNode(scope))\n\t\t\tassert(scope.isLoaded())\n\t\t\tif (scopeStore.active.id !== placeholder.scopeId) {\n\t\t\t\tscopeStore.select(placeholder.scopeId, { keepHistory: false })\n\t\t\t}\n\n\t\t\tconst insertionRect = getEmptySpaceRect(treeStore.tree, placeholder.width, placeholder.height, scope)\n\n\t\t\tconst componentInstance = new CodeComponentNode({\n\t\t\t\tcodeComponentIdentifier: moduleIdentifier.value,\n\t\t\t\ttop: insertionRect.y,\n\t\t\t\tleft: insertionRect.x,\n\t\t\t\twidth: placeholder.width,\n\t\t\t\theight: placeholder.height,\n\t\t\t})\n\n\t\t\tif (attributes) {\n\t\t\t\tcomponentInstance.set(getVekterNodeDataFromPlugin(componentInstance, attributes, this.context, scope))\n\t\t\t}\n\n\t\t\tconst optionalAutoSizeUpdate: Partial<CodeComponentNode> = {}\n\t\t\tsetDimensionTypeAutoIfSupported(this.engine.componentLoader, componentInstance, optionalAutoSizeUpdate)\n\t\t\tcomponentInstance.set(optionalAutoSizeUpdate)\n\n\t\t\tscopeStore.insertNode(componentInstance)\n\t\t\tpluginStore.componentInstancePlaceholder = null\n\n\t\t\treturn getPluginNodeDataFromVekter(componentInstance, this.context)\n\t\t})\n\t}\n\n\tasync showProgressOnInstances(codeFileId: string, attributes?: ShowProgressOnInstancesAttributes): Promise<void> {\n\t\tconst { pluginStore } = this.engine.stores\n\t\tawait this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst codeFileProgressState = new Map(pluginStore.codeFilesProgressState)\n\n\t\t\tconst localModuleId = ensureLocalModuleIdPrefix(codeFileId)\n\t\t\tconst current = codeFileProgressState.get(localModuleId)\n\t\t\tif (current) {\n\t\t\t\tcodeFileProgressState.set(localModuleId, {\n\t\t\t\t\t// Code preview should not be shown unless explicitly set, otherwise the title\n\t\t\t\t\t// will not be visible if it's set.\n\t\t\t\t\tcodePreview: null,\n\t\t\t\t\ttitle: current.title,\n\t\t\t\t\t...attributes,\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tcodeFileProgressState.set(\n\t\t\t\t\tlocalModuleId,\n\t\t\t\t\tattributes || {\n\t\t\t\t\t\ttitle: \"Generating\u2026\",\n\t\t\t\t\t\tcodePreview: null,\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tpluginStore.codeFilesProgressState = codeFileProgressState\n\t\t})\n\t}\n\n\tasync removeProgressFromInstances(codeFileId: string): Promise<void> {\n\t\tconst { pluginStore } = this.engine.stores\n\t\tawait this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst codeFileProgressState = new Map(pluginStore.codeFilesProgressState)\n\t\t\tconst localModuleId = ensureLocalModuleIdPrefix(codeFileId)\n\t\t\tcodeFileProgressState.delete(localModuleId)\n\t\t\tpluginStore.codeFilesProgressState = codeFileProgressState\n\t\t})\n\t}\n\n\tasync [getAiServiceInfoMessageType](_version?: AiServiceVersion): Promise<AiServiceInfo> {\n\t\tconst apiHost = getServiceMap().api\n\t\tconst response = await fetch(`${apiHost}/auth/ai/access-token`, { credentials: \"include\" })\n\t\tif (!response.ok) throw new ApiError({ status: response.status, message: response.statusText })\n\t\tconst { accessToken, expiresAt } = await response.json()\n\t\tassert(isString(accessToken) && isString(expiresAt), \"Bad authentication service response\")\n\t\treturn { endpoint: `${apiHost}/ai/v3/chat/`, token: accessToken, expiresAt }\n\t}\n\n\t/** @deprecated */\n\tasync getAiServiceInfo(version?: AiServiceVersion): Promise<AiServiceInfo> {\n\t\treturn this[getAiServiceInfoMessageType](version)\n\t}\n\n\tasync [sendTrackingEventMessageType](key: string, value: string, identifier: string): Promise<void> {\n\t\treturn record(\"plugin_api_event\", {\n\t\t\tmanifestId: this.manifest.id,\n\t\t\tidentifier,\n\t\t\tkey,\n\t\t\tvalue,\n\t\t})\n\t}\n\n\t/** @deprecated */\n\tasync sendTrackingEvent(key: string, value: string, identifier: string): Promise<void> {\n\t\treturn this[sendTrackingEventMessageType](key, value, identifier)\n\t}\n\n\t// MARK: UNSTABLE\n\tasync unstable_getDependencyVersion(packageName: string): Promise<string | null> {\n\t\tconst dependenciesMapContent = this.context.engine.stores.modulesStore.dependenciesModule?.dependenciesMapContent\n\t\tif (!dependenciesMapContent) return null\n\n\t\tconst dependenciesMap: DependenciesMap = JSON.parse(dependenciesMapContent)\n\t\tif (!Object.hasOwn(dependenciesMap.dependencies, packageName)) return null\n\n\t\tconst version = dependenciesMap.dependencies[packageName] ?? null\n\t\tif (version === null) return version\n\n\t\t// All dependencies currently include a caret in the dependencies.json version.\n\t\t// Projects never actually update their dependencies within the range.\n\t\t// Therefore, we expose the installed version without the caret.\n\t\treturn version.replace(/^\\^/, \"\")\n\t}\n\n\tasync unstable_ensureMinimumDependencyVersion(packageName: string, version: string): Promise<void> {\n\t\t// Because this is an unstable API we only allow specifically the Rive\n\t\t// package to be updated right now.\n\t\tconst supportedPackagesWithSubDependencies = new Map<string, string[]>([\n\t\t\t[\"@rive-app/react-canvas\", [\"@rive-app/canvas\"]],\n\t\t\t[\"@rive-app/react-webgl\", [\"@rive-app/webgl\"]],\n\t\t\t[\"@rive-app/react-webgl2\", [\"@rive-app/webgl2\"]],\n\t\t])\n\n\t\tconst subDependencies = supportedPackagesWithSubDependencies.get(packageName)\n\t\tif (!subDependencies) {\n\t\t\tthrow new PluginOnlyError(`The package \"${packageName}\" is not allowed to be upgraded.`)\n\t\t}\n\n\t\tawait this.context.engine.stores.modulesStore.unsafeUpgradeDependency(packageName, subDependencies, version)\n\t}\n\n\tasync setMenu(menuItemsSerialized: MenuItemSerializable[]): Promise<void> {\n\t\tconst { contextMenuStore } = this.engine.stores\n\t\tconst currentMenuItems = this.menuItems.getState()\n\n\t\tthis.menuItems.setState(\n\t\t\tgetMenuItemOptionsFromMenuItemsSerializable(\n\t\t\t\tmenuItemsSerialized,\n\t\t\t\tmessage => this.transport.send(message),\n\t\t\t\t\"pluginMenu\",\n\t\t\t),\n\t\t)\n\n\t\t// If the previous version of the plugin menu is currently open,\n\t\t// immediately open the new menu in the same place.\n\t\tif (contextMenuStore.menu) {\n\t\t\tif (areMenuItemsEqual(currentMenuItems, contextMenuStore.menu.items)) {\n\t\t\t\tcontextMenuStore.show(this.menuItems.getState(), {\n\t\t\t\t\t...contextMenuStore.menu.config,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tasync showContextMenu(menuItemsSerialized: MenuItemSerializable[], config: ContextMenuConfig): Promise<void> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst menuItems = getMenuItemOptionsFromMenuItemsSerializable(\n\t\t\t\t\tmenuItemsSerialized,\n\t\t\t\t\tmessage => this.transport.send(message),\n\t\t\t\t\t\"contextMenu\",\n\t\t\t\t)\n\n\t\t\t\tconst location = convertPluginPositionToWindow(config.location, this.iFrameRef)\n\t\t\t\tassert(location, \"Expected location to not be null\")\n\n\t\t\t\tthis.engine.stores.contextMenuStore.show(menuItems, {\n\t\t\t\t\tlocation,\n\t\t\t\t\tplacement: convertPluginMenuPlacementToVekterPlacement(config.placement),\n\t\t\t\t\twidth: config.width,\n\t\t\t\t\tonDone: resolve,\n\t\t\t\t\tonCancel: resolve,\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\treject(error)\n\t\t\t}\n\t\t})\n\t}\n\n\tasync addVariantToComponent(componentId: NodeID, basedOn: NodeID, attributes?: unknown): Promise<SomeNodeData> {\n\t\tconst component = this.engine.tree.getNode(componentId)\n\t\tverifyForPlugin(component, \"Node does not exist\")\n\t\tverifyForPlugin(isSmartComponentNode(component), \"Node is not a ComponentNode\")\n\n\t\t// Load the component if needed\n\t\tconst loadedComponent = component.isLoaded() ? component : await component.load()\n\t\tassert(loadedComponent, \"Failed to load ComponentNode\")\n\n\t\tconst basedOnVariant = this.engine.tree.getNode(basedOn)\n\t\tif (!isFrameNode(basedOnVariant) || !isVariant(basedOnVariant)) {\n\t\t\tthrow new PluginOnlyError(\"Based on variant not found\")\n\t\t}\n\n\t\t// Ensure the variant is a child of the component\n\t\tverifyForPlugin(\n\t\t\tthis.engine.tree.isAncestorOfNode(basedOnVariant, loadedComponent.id),\n\t\t\t\"Variant must be a child of the component\",\n\t\t)\n\n\t\tif (isGestureVariant(basedOnVariant)) {\n\t\t\tthrow new PluginOnlyError(\"Cannot add a variant to a gesture variant\")\n\t\t}\n\n\t\tconst rect = this.engine.tree.getRect(basedOnVariant)\n\t\tconst suggestedRect = rightSideOf(this.engine.tree, loadedComponent, basedOnVariant, rect)\n\n\t\tconst newVariant = await this.engine.scheduler.processWhenReadyAsync(() =>\n\t\t\tContextAction.createVariant(\n\t\t\t\tthis.engine.componentLoader,\n\t\t\t\tthis.engine.stores.treeStore.tree,\n\t\t\t\tthis.engine.stores.selectionStore,\n\t\t\t\tthis.engine.stores.canvasStore,\n\t\t\t\tloadedComponent,\n\t\t\t\tbasedOnVariant,\n\t\t\t\tsuggestedRect,\n\t\t\t\t{\n\t\t\t\t\toverrides: isReplica(basedOnVariant) ? basedOnVariant.replicaInfo?.overrides : undefined,\n\t\t\t\t\tselectAndCenter: false,\n\t\t\t\t},\n\t\t\t),\n\t\t)\n\n\t\tverifyForPlugin(newVariant, \"Failed to create variant\")\n\n\t\t// Apply any custom attributes from the plugin\n\t\tif (isObject(attributes)) {\n\t\t\tconst update = getVekterNodeDataFromPlugin(newVariant, attributes, this.context, null)\n\t\t\tnewVariant.set(narrowNodeUpdate(newVariant, update))\n\t\t}\n\n\t\treturn getPluginNodeDataFromVekter(newVariant, this.context)\n\t}\n\n\tasync addGestureVariantToComponent(\n\t\tcomponentId: NodeID,\n\t\tnodeId: NodeID,\n\t\ttype: \"hover\" | \"pressed\",\n\t\tattributes?: unknown,\n\t): Promise<SomeNodeData> {\n\t\tconst component = this.engine.tree.getNode(componentId)\n\t\tverifyForPlugin(component, \"Node does not exist\")\n\t\tverifyForPlugin(isSmartComponentNode(component), \"Node is not a ComponentNode\")\n\n\t\t// Load the component if needed\n\t\tconst loadedComponent = component.isLoaded() ? component : await component.load()\n\t\tassert(loadedComponent, \"Failed to load ComponentNode\")\n\n\t\tconst basedOnVariant = this.engine.tree.getNode(nodeId)\n\t\tif (!isFrameNode(basedOnVariant) || !isVariant(basedOnVariant)) {\n\t\t\tthrow new PluginOnlyError(\"Based on variant not found\")\n\t\t}\n\n\t\tif (isGestureVariant(basedOnVariant)) {\n\t\t\tthrow new PluginOnlyError(\"Cannot add a variant to a gesture variant\")\n\t\t}\n\n\t\t// Ensure the variant is a child of the component\n\t\tverifyForPlugin(\n\t\t\tthis.engine.tree.isAncestorOfNode(basedOnVariant, loadedComponent.id),\n\t\t\t\"Variant must be a child of the component\",\n\t\t)\n\n\t\tconst rect = this.engine.tree.getRect(basedOnVariant)\n\t\tconst suggestedRect = bottomSideOf(this.engine.tree, loadedComponent, basedOnVariant, rect)\n\n\t\tconst overrides =\n\t\t\tbasedOnVariant && isGestureVariant(basedOnVariant) ? basedOnVariant.replicaInfo?.overrides : undefined\n\n\t\tconst newVariant = await this.engine.scheduler.processWhenReadyAsync(() =>\n\t\t\tContextAction.createVariant(\n\t\t\t\tthis.engine.componentLoader,\n\t\t\t\tthis.engine.stores.treeStore.tree,\n\t\t\t\tthis.engine.stores.selectionStore,\n\t\t\t\tthis.engine.stores.canvasStore,\n\t\t\t\tloadedComponent,\n\t\t\t\tbasedOnVariant,\n\t\t\t\tsuggestedRect,\n\t\t\t\t{\n\t\t\t\t\tgesture: type,\n\t\t\t\t\toverrides,\n\t\t\t\t\tselectAndCenter: false,\n\t\t\t\t},\n\t\t\t),\n\t\t)\n\n\t\tverifyForPlugin(newVariant, \"Failed to create gesture variant\")\n\n\t\t// Apply any custom attributes from the plugin\n\t\tif (isObject(attributes)) {\n\t\t\tconst update = getVekterNodeDataFromPlugin(newVariant, attributes, this.context, null)\n\t\t\t// Gesture variants don't support a name attributes, this will cause a sync error if we try to set it.\n\t\t\tdelete update.name\n\t\t\tnewVariant.set(narrowNodeUpdate(newVariant, update))\n\t\t}\n\n\t\treturn getPluginNodeDataFromVekter(newVariant, this.context)\n\t}\n\n\t/**\n\t * Get a list of breakpoints suggestions that can be added to the web page.\n\t * @alpha\n\t */\n\tasync getBreakpointSuggestionsForWebPage(nodeId: NodeID): Promise<readonly Breakpoint[]> {\n\t\tconst webPageNode = this.engine.tree.getNode(nodeId)\n\t\tverifyForPlugin(webPageNode, \"Node does not exist\")\n\t\tassert(isWebPageNode(webPageNode), \"Node is not a WebPageNode\")\n\n\t\tconst loaded = await webPageNode.load()\n\t\tassert(loaded, \"Failed to load WebPageNode\")\n\n\t\tconst suggestions = suggestBreakpoints(this.engine, loaded)\n\n\t\treturn suggestions.map(suggestion => ({\n\t\t\tname: suggestion.name,\n\t\t\twidth: suggestion.width,\n\t\t\tviewportHeight: suggestion.viewportHeight,\n\t\t}))\n\t}\n\n\t/**\n\t * Get the previewed collection item for a web page if it's a CMS detail page.\n\t * If no item is selected, it will fallback to an item from the collection.\n\t * Returns null if this is not a detail page or the collection is empty.\n\t *\n\t * @alpha\n\t */\n\tasync getActiveCollectionItemForWebPage(nodeId: NodeID): Promise<CollectionItemSerializableData | null> {\n\t\tconst webPageNode = this.engine.tree.getNode(nodeId)\n\t\tverifyForPlugin(webPageNode, \"Node does not exist\")\n\t\tverifyForPlugin(isWebPageNode(webPageNode), \"Node is not a WebPageNode\")\n\n\t\tif (!webPageNode.dataIdentifier) return null\n\n\t\tconst collection = getCollectionForIdentifier(this.engine.tree, webPageNode.dataIdentifier)\n\t\tif (!collection) return null\n\n\t\tconst { selectedItemId } = getSelectedCollectionItemForWebPage(this.engine, webPageNode.id)\n\t\tif (isUndefined(selectedItemId)) return null // Empty collection\n\n\t\tconst collectionItem = this.engine.tree.getNodeWithTrait(selectedItemId, isCollectionItemNode)\n\t\tassert(collectionItem)\n\n\t\tconst [serializedCollectionItem] = getCollectionItems(this.manifestId, this.context, collection, [collectionItem])\n\t\tassert(serializedCollectionItem)\n\n\t\treturn serializedCollectionItem\n\t}\n\n\tasync addBreakpointToWebPage(\n\t\tnodeId: NodeID,\n\t\tbasedOn: NodeID,\n\t\tbreakpoint: Breakpoint,\n\t\tattributes?: Readonly<Record<string, unknown>>,\n\t): Promise<SomeNodeData> {\n\t\tconst node = this.engine.tree.getNode(nodeId)\n\t\tverifyForPlugin(node, \"WebPageNode does not exist\")\n\t\tassert(isWebPageNode(node), \"Node is not a WebPageNode\")\n\n\t\tconst loaded = await node.load()\n\t\tassert(loaded, \"Failed to load WebPageNode\")\n\n\t\tconst baseNode = this.engine.tree.getNode(basedOn)\n\t\tif (!isFrameNode(baseNode) || !isBreakpointVariant(baseNode)) {\n\t\t\tthrow new PluginOnlyError(\"Based on node is not a breakpoint node.\")\n\t\t}\n\n\t\tconst scopeForBaseNode = this.engine.tree.getScopeNodeFor(baseNode)\n\t\tif (node.id !== scopeForBaseNode?.id) {\n\t\t\tthrow new PluginOnlyError(\"Based on node is in the same scope as the WebPage node.\")\n\t\t}\n\n\t\tconst baseNodeRect = this.engine.tree.getRect(baseNode)\n\t\tconst rect = rightSideOf(this.engine.tree, loaded, baseNode, baseNodeRect)\n\n\t\tconst createdNode = await this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tconst node = ContextAction.createBreakpoint(\n\t\t\t\tthis.engine,\n\t\t\t\tbaseNode,\n\t\t\t\tloaded,\n\t\t\t\trect,\n\t\t\t\tbreakpoint.width,\n\t\t\t\tbreakpoint.name,\n\t\t\t\tbreakpoint.viewportHeight,\n\t\t\t\tfalse,\n\t\t\t)\n\n\t\t\tif (attributes) {\n\t\t\t\tconst update = getVekterNodeDataFromPlugin(node, attributes, this.context, null)\n\t\t\t\tnode.set(narrowNodeUpdate(node, update))\n\t\t\t}\n\n\t\t\treturn node\n\t\t})\n\n\t\treturn getPluginNodeDataFromVekter(createdNode, this.context)\n\t}\n\n\tasync getVariables(nodeId: string): Promise<VariableData[]> {\n\t\tconst component = this.engine.tree.getNode(nodeId)\n\t\tverifyForPlugin(isSmartComponentNode(component), \"Node is not a ComponentNode\")\n\t\treturn getVariableDataArray(this.context, component)\n\t}\n\n\tasync addVariables(nodeId: string, pluginCreateVariables: Marshaled<CreateVariable[]>): Promise<VariableData[]> {\n\t\tconst component = this.engine.tree.getNode(nodeId)\n\t\tverifyForPlugin(isSmartComponentNode(component), \"Node is not a ComponentNode\")\n\n\t\tconst existingVariableNames = new Set(component.variables.map(variable => variable.name))\n\t\tconst newVariables: VariableDefinition[] = []\n\t\tfor (const pluginCreateVariable of pluginCreateVariables) {\n\t\t\tconst newVariable = getVekterVariableFromPluginCreateVariable(\n\t\t\t\tthis.context,\n\t\t\t\tpluginCreateVariable,\n\t\t\t\texistingVariableNames,\n\t\t\t)\n\n\t\t\texistingVariableNames.add(newVariable.name)\n\t\t\tnewVariables.push(newVariable)\n\t\t}\n\n\t\tawait this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tcomponent.set({ variables: [...component.variables, ...newVariables] })\n\t\t})\n\n\t\treturn getVariableDataArray(this.context, component, newVariables)\n\t}\n\n\tasync updateVariable(\n\t\tnodeId: string,\n\t\tvariableId: string,\n\t\tpluginUpdateVariable: Marshaled<UpdateVariable>,\n\t): Promise<VariableData | null> {\n\t\tconst component = this.engine.tree.getNode(nodeId)\n\t\tverifyForPlugin(isSmartComponentNode(component), \"Node is not a ComponentNode\")\n\n\t\tconst variableIndex = component.variables.findIndex(variable => variable.id === variableId)\n\t\tif (variableIndex === -1) return null\n\n\t\tconst variables = await updateVariablesWithPluginUpdateVariable(\n\t\t\tthis.context,\n\t\t\tcomponent,\n\t\t\tvariableIndex,\n\t\t\tpluginUpdateVariable,\n\t\t)\n\n\t\tconst variable = variables[variableIndex]\n\t\tassert(variable)\n\t\tconst variableData = variableToVariableData(this.context, component, variable)\n\n\t\treturn variableData\n\t}\n\n\tasync removeVariables(nodeId: string, variableIds: string[]): Promise<void> {\n\t\tconst component = this.engine.tree.getNode(nodeId)\n\t\tverifyForPlugin(isSmartComponentNode(component), \"Node is not a ComponentNode\")\n\n\t\tconst variables = component.variables.filter(variable => !variableIds.includes(variable.id))\n\n\t\tawait this.engine.scheduler.processWhenReadyAsync(() => {\n\t\t\tcomponent.set({ variables })\n\t\t})\n\t}\n\n\tasync setVariableOrder(nodeId: string, variableIds: string[]): Promise<void> {\n\t\tawait setVariableOrder(this.context, nodeId, variableIds)\n\t}\n\n\tasync getVectorSets(): Promise<VectorSetData[]> {\n\t\treturn getVectorSets(this.context.engine)\n\t}\n\n\tasync getVectorSetItems(vectorSetId: string): Promise<VectorSetItemData[]> {\n\t\treturn getVectorSetItems(this.context.engine, vectorSetId)\n\t}\n\n\tasync getVectorSetItemVariables(vectorSetItemId: string, moduleId: string): Promise<VectorSetItemVariable[]> {\n\t\treturn getVectorSetItemVariables(this.context.engine, vectorSetItemId, moduleId)\n\t}\n}\n\nfunction getSelection(engine: VekterEngine, context: ActivePluginContext) {\n\tconst result: SomeNodeData[] = []\n\n\tconst selection = engine.stores.selectionStore.nodes\n\n\tfor (const node of selection) {\n\t\tconst nodeData = getPluginNodeDataFromVekter(node, context)\n\t\tresult.push(nodeData)\n\t}\n\n\treturn result\n}\n\nfunction getText(engine: VekterEngine): string | null {\n\tconst selection = engine.stores.selectionStore.nodes\n\tif (selection.length !== 1) return null\n\tconst node = selection[0]\n\n\tif (!isRichTextNode(node)) return null\n\n\treturn node.getTextContent()\n}\n\nfunction getImage(activePlugin: ActivePlugin) {\n\tif (activePlugin.modeHandlers.mode === \"editImage\") {\n\t\tconst { assetReference: asset, altText } = activePlugin.modeHandlers.getImage()\n\t\treturn activePlugin.context.assetResolver.addImage(asset, altText)\n\t}\n\n\tconst selection = activePlugin.engine.stores.selectionStore.nodes\n\n\tif (selection.length !== 1) return null\n\n\tconst firstNode = selection[0]\n\tif (!firstNode) return null\n\n\tif (!withFill(firstNode)) return null\n\tif (withOptionalFill(firstNode) && !firstNode.fillEnabled) return null\n\n\treturn getImageAssetDataForImageFill(firstNode, activePlugin.context)\n}\n\nfunction getCanvasRoot(engine: VekterEngine, context: ActivePluginContext) {\n\tconst activeScope = engine.stores.scopeStore.active\n\treturn getPluginNodeDataFromVekter(activeScope, context)\n}\n\nfunction setSelection(engine: VekterEngine, nodeIds: readonly NodeID[]): void {\n\tengine.stores.selectionStore.set(nodeIds)\n}\n\nasync function zoomIntoView(\n\tengine: VekterEngine,\n\tnodeIds: readonly NodeID[],\n\toptions?: ZoomIntoViewOptions,\n): Promise<void> {\n\tconst nodes = engine.tree.getNodes(nodeIds)\n\tif (nodes.length === 0) return\n\n\tconst [firstNode] = nodes\n\tassert(firstNode)\n\n\tconst firstNodeScope = engine.tree.getScopeNodeFor(firstNode)\n\tif (!firstNodeScope) return\n\n\t// Don't zoom to node if any of them are on different pages.\n\tconst allSameScope = nodes.every(node => firstNodeScope.id === engine.tree.getScopeNodeFor(node)?.id)\n\tif (!allSameScope) return\n\n\tconst scope = engine.tree.getScopeNodeFor(firstNode)\n\tassert(scope)\n\n\tawait engine.tree.loadScopes([scope])\n\n\tawait engine.scheduler.processWhenReadyAsync(() => {\n\t\tengine.stores.scopeStore.selectByNode(firstNode.id)\n\t})\n\n\tawait waitForMeasuredRectWithTimeout(engine, nodes, 2000)\n\n\tconst allNodesHaveHiddenAncestors = nodes.every(node => getFirstHiddenAncestor(node))\n\n\tif (allNodesHaveHiddenAncestors) {\n\t\ttoast({\n\t\t\ttype: \"add\",\n\t\t\tvariant: \"warning\",\n\t\t\tprimaryText: \"Layer is hidden\",\n\t\t\tsecondaryText: \"by its parent layer.\",\n\t\t\tduration: defaultToastDuration,\n\t\t})\n\t\treturn\n\t}\n\n\tconst rect = getBoundingFrameForNodes(engine.tree, nodes)\n\n\t// Check if we should skip zooming when nodes are already visible\n\tif (options?.skipIfVisible) {\n\t\tconst visibleRect = engine.stores.canvasStore.getCanvasVisibleRect()\n\t\tif (Rect.containsRect(visibleRect, rect)) {\n\t\t\treturn\n\t\t}\n\t}\n\n\tengine.scheduler.runAtEndOfFrame(() => {\n\t\tengine.stores.canvasStore.zoomToCenter(rect, {\n\t\t\tanimated: engine.stores.persistedUserDefaults.animateOnZoom,\n\t\t\tmaxZoom: options?.maxZoom,\n\t\t\tsnapToZoomSteps: true,\n\t\t})\n\t})\n}\n\n/**\n * Gets a node ID and tries to find the node in the tree.\n * It tries to resolve the node id in different ways:\n * - first try to find the node in the tree using the node id\n * - if not found, try to find the node in the tree by adding the `codeFile/` prefix to the node id\n */\nfunction getNode(engine: VekterEngine, nodeId: NodeID) {\n\tlet node = engine.tree.getNode(nodeId)\n\tif (!node) {\n\t\tnode = engine.tree.getNode(ensureLocalModuleIdPrefix(nodeId))\n\t}\n\treturn node\n}\n\ntype APIMethodName = keyof PluginMessageAPI\n\nconst deprecatedInternalMethods = {\n\tgetAiServiceInfo: true,\n\tsendTrackingEvent: true,\n} as const\n\nconst apiMethods: Record<APIMethodName, true> = {\n\treadProjectForAgent: true,\n\tgetAgentSystemPrompt: true,\n\tgetAgentContext: true,\n\tapplyAgentChanges: true,\n\tflattenComponentInstanceForAgent: true,\n\tmakeExternalComponentLocalForAgent: true,\n\tgetNodeForAgent: true,\n\tgetNodesForAgent: true,\n\tgetNodesOfTypesForAgent: true,\n\tgetScopeNodeForAgent: true,\n\tgetGroundNodeForAgent: true,\n\tgetParentNodeForAgent: true,\n\tgetAncestorsForAgent: true,\n\tserializeForAgent: true,\n\tserializeNodesForAgent: true,\n\tpaginateForAgent: true,\n\tpublishForAgent: true,\n\tqueryImagesForAgent: true,\n\treviewChangesForAgent: true,\n\tstartAgentConversation: true,\n\tcontinueAgentConversation: true,\n\tsubmitAgentClarification: true,\n\trunSupervisorAgentCommand: true,\n\taddImages: true,\n\tnavigateTo: true,\n\taddSVG: true,\n\taddComponentInstance: true,\n\taddDetachedComponentLayers: true,\n\tpreloadDetachedComponentLayers: true,\n\tpreloadImageUrlForInsertion: true,\n\tpreloadDragPreviewImage: true,\n\tcloneNode: true,\n\tcloneWebPage: true,\n\tcloneDesignPage: true,\n\tclosePlugin: true,\n\tcreateNode: true,\n\tcreateDesignPage: true,\n\tcreateWebPage: true,\n\tgetCanvasRoot: true,\n\tgetCurrentUser: true,\n\tgetCurrentUser2: true,\n\tgetProjectInfo: true,\n\tgetProjectInfo2: true,\n\tgetImageData: true,\n\tgetNode: true,\n\tgetParent: true,\n\tgetChildren: true,\n\tgetRect: true,\n\tgetPublishInfo: true,\n\tgetSelection: true,\n\thideUI: true,\n\tsetBackgroundMessage: true,\n\tsetCloseWarning: true,\n\tremoveNodes2: true,\n\tremoveNodes: true,\n\tremoveNode: true,\n\tsetAttributes: true,\n\tsetParent: true,\n\tsetSelection: true,\n\tshowUI: true,\n\tuploadImages: true,\n\taddImage: true,\n\tgetImage: true,\n\tuploadImage: true,\n\tuploadFile: true,\n\tuploadFiles: true,\n\tgetText: true,\n\tsetText: true,\n\taddText: true,\n\tgetTextForNode: true,\n\tsetTextForNode: true,\n\tgetSVGForNode: true,\n\tsetImage: true,\n\tsetDragData: true,\n\tonDragStart: true,\n\tonDrag: true,\n\tonDragEnd: true,\n\tonPointerDown: true,\n\tsetCustomCode: true,\n\tgetCustomCode: true,\n\tgetPluginData: true,\n\tgetPluginDataKeys: true,\n\tsetPluginData: true,\n\tgetPluginDataForNode: true,\n\tsetPluginDataForNode: true,\n\tgetPluginDataKeysForNode: true,\n\n\tgetActiveManagedCollection: true,\n\tgetManagedCollection: true,\n\tgetManagedCollections: true,\n\tgetManagedCollectionItemIds: true,\n\tsetManagedCollectionItemOrder: true,\n\tsetManagedCollectionFields: true,\n\tgetManagedCollectionFields: true,\n\tgetManagedCollectionFields2: true,\n\taddManagedCollectionItems: true,\n\taddManagedCollectionItems2: true,\n\tremoveManagedCollectionItems: true,\n\n\tgetCollection: true,\n\tcreateCollection: true,\n\tgetActiveCollection: true,\n\tgetCollections: true,\n\tgetCollectionItems: true,\n\tgetCollectionItems2: true,\n\tsetCollectionItemOrder: true,\n\tgetCollectionFields: true,\n\tgetCollectionFields2: true,\n\taddCollectionFields: true,\n\taddCollectionFields2: true,\n\tremoveCollectionFields: true,\n\tsetCollectionFieldOrder: true,\n\taddCollectionItems: true,\n\taddCollectionItems2: true,\n\tsetCollectionItemAttributes: true,\n\tsetCollectionItemAttributes2: true,\n\tsetActiveCollection: true,\n\taddEnumCase: true,\n\tupdateEnumCase: true,\n\tremoveEnumCase: true,\n\tsetEnumCaseOrder: true,\n\tremoveCollectionItems: true,\n\n\tgetNodesWithType: true,\n\tgetNodesWithAttribute: true,\n\tgetNodesWithAttributeSet: true,\n\tnotify: true,\n\tcloseNotification: true,\n\tgetColorStyle: true,\n\tgetColorStyles: true,\n\tcreateColorStyle: true,\n\tsetColorStyleAttributes: true,\n\tremoveColorStyle: true,\n\tzoomIntoView: true,\n\tgetTextStyle: true,\n\tgetTextStyles: true,\n\tcreateTextStyle: true,\n\tsetTextStyleAttributes: true,\n\tremoveTextStyle: true,\n\tgetFont: true,\n\tgetFonts: true,\n\n\tcreateLocale: true,\n\tgetLocaleLanguages: true,\n\tgetLocaleRegions: true,\n\tgetDefaultLocale: true,\n\tgetLocales: true,\n\tgetActiveLocale: true,\n\tgetLocalizationGroups: true,\n\tsetLocalizationData: true,\n\n\t// REMOVE ONCE CODE FILE API ARE RELEASED AND NO MORE USAGE OF `unstable_` METHODS\n\tunstable_createCodeFile: true,\n\tunstable_setCodeFileContent: true,\n\tunstable_removeCodeFile: true,\n\tunstable_renameCodeFile: true,\n\tunstable_getCodeFiles: true,\n\tunstable_getCodeFile: true,\n\tunstable_getCodeFileVersions: true,\n\tunstable_getCodeFileVersionContent: true,\n\tunstable_getCodeFileLint2: true,\n\tunstable_getCodeFileTypecheck2: true,\n\t// END REMOVE\n\n\tcreateCodeFile: true,\n\tsetCodeFileContent: true,\n\tremoveCodeFile: true,\n\trenameCodeFile: true,\n\tgetCodeFiles: true,\n\tgetCodeFile: true,\n\tgetCodeFileVersions: true,\n\tgetCodeFileVersionContent: true,\n\tlintCode: true,\n\ttypecheckCode: true,\n\n\taddRedirects: true,\n\tgetRedirects: true,\n\tsetRedirectOrder: true,\n\tremoveRedirects: true,\n\n\tgetRuntimeErrorForModule: true,\n\tgetRuntimeErrorForCodeComponentNode: true,\n\n\taddComponentInstancePlaceholder: true,\n\tupdateComponentInstancePlaceholder: true,\n\tremoveComponentInstancePlaceholder: true,\n\treplaceComponentInstancePlaceholderWithComponentInstance: true,\n\tshowProgressOnInstances: true,\n\tremoveProgressFromInstances: true,\n\n\tunstable_getDependencyVersion: true,\n\tunstable_ensureMinimumDependencyVersion: true,\n\n\taddVariantToComponent: true,\n\taddGestureVariantToComponent: true,\n\n\tsetMenu: true,\n\tshowContextMenu: true,\n\n\tgetBreakpointSuggestionsForWebPage: true,\n\taddBreakpointToWebPage: true,\n\tgetActiveCollectionItemForWebPage: true,\n\n\tgetVariables: true,\n\taddVariables: true,\n\tupdateVariable: true,\n\tremoveVariables: true,\n\tsetVariableOrder: true,\n\n\tgetVectorSets: true,\n\tgetVectorSetItems: true,\n\tgetVectorSetItemVariables: true,\n\n\t// Headless api\n\tcreateManagedCollection: true,\n\tpublish: true,\n\tgetDeployments: true,\n\tdeploy: true,\n\tgetChangedPaths: true,\n\tgetChangeContributors: true,\n\n\t// Internal\n\t[getAiServiceInfoMessageType]: true,\n\t[sendTrackingEventMessageType]: true,\n\t[getCurrentUserMessageType]: true,\n\t[getProjectInfoMessageType]: true,\n\t[getHTMLForNodeMessageType]: true,\n\t[setHTMLForNodeMessageType]: true,\n\n\t...deprecatedInternalMethods,\n}\n\n// These methods are ignored from events tracking\nconst ignoredTrackingMethods: Partial<Record<APIMethodName, true>> = {\n\t// Fires for every drag - no point in tracking. Instead rely on dragStart/dragEnd\n\tonDrag: true,\n\t// Fires on every document click - no point in tracking\n\tonPointerDown: true,\n\t// Internal drag handlers.\n\tpreloadDetachedComponentLayers: true,\n\tpreloadDragPreviewImage: true,\n\tpreloadImageUrlForInsertion: true,\n}\n\nfunction shouldTrackMethodEvent(methodName: APIMethodName): boolean {\n\treturn !ignoredTrackingMethods[methodName]\n}\n\nfunction isAPIMethodName(value: unknown): value is APIMethodName {\n\treturn isString(value) && Object.hasOwn(apiMethods, value)\n}\n\nfunction isInternalMessageType(\n\tvalue: string,\n): value is keyof typeof deprecatedInternalMethods | `${typeof internalMessageTypePrefix}${string}` {\n\treturn value in deprecatedInternalMethods || value.startsWith(internalMessageTypePrefix)\n}\n\nfunction getToastVariantFromNotificationVariant(options?: ClosePluginOptions): ToastVariant {\n\tconst defaultVariant: ToastVariant = \"info\"\n\tif (!options) return defaultVariant\n\tswitch (options.variant) {\n\t\tcase \"error\":\n\t\t\treturn \"alert\"\n\t\tcase \"success\":\n\t\t\treturn \"success\"\n\t\tcase \"warning\":\n\t\t\treturn \"warning\"\n\t\tcase \"info\":\n\t\tcase undefined:\n\t\t\treturn defaultVariant\n\t\tdefault:\n\t\t\tassertNever(options.variant)\n\t}\n}\n\n// Utils\n\nasync function addDetachedComponentLayers({\n\tcontext,\n\tpreloadedDetachedComponentLayers,\n\tcanvasPosition,\n\tattributes,\n\tlayout,\n}: {\n\tcontext: ActivePluginContext\n\tpreloadedDetachedComponentLayers: PreloadedDetachedComponentLayers\n\tdragged: boolean\n\tattributes: unknown\n\tcanvasPosition: Point | null\n\tlayout: boolean\n}) {\n\tconst controls = isObject(attributes) && isObject(attributes.controls) ? attributes.controls : undefined\n\n\tconst node = await insertDetachedComponentLayers({\n\t\tengine: context.engine,\n\t\tpreloadedDetachedComponentLayers,\n\t\tcanvasPosition,\n\t\tattributes: controls,\n\t\tlayout,\n\t})\n\n\t// Focus the main app window so you can use the keyboard shortcuts (e.g. delete)\n\twindow.focus()\n\n\treturn node\n}\n\nasync function addComponent({\n\tcontext,\n\turl,\n\tcanvasPosition,\n\tattributes,\n\tparentId,\n}: {\n\tcontext: ActivePluginContext\n\turl: string\n\tattributes: unknown\n\tcanvasPosition?: Point\n\tparentId?: string\n}) {\n\tlet node: CodeComponentNode | undefined\n\n\tconst position = canvasPosition ?? context.engine.stores.canvasStore.getCanvasCenter()\n\n\t// If a parentId is provided, validate that it's not a web page\n\tif (parentId) {\n\t\tconst { module } = await lookUpModuleURL(context.engine, url)\n\t\tif (module.type === ModuleType.Screen) {\n\t\t\tthrow new PluginOnlyError(\"Cannot insert a web page as a child node\")\n\t\t}\n\t}\n\n\tawait insertModuleEntity({\n\t\tengine: context.engine,\n\t\tmoduleURL: url,\n\t\tposition,\n\t\tcenterInParent: false,\n\t\t// We don't want components to be inserted into replica variants without dragging\n\t\tinsertAsGroundNode: !canvasPosition && !parentId,\n\t\tparentId,\n\t\tupdate: component => {\n\t\t\tnode = component\n\t\t\tif (!isObject(attributes)) return\n\t\t\tconst parent = parentId ? context.engine.tree.getNode(parentId) : null\n\t\t\tconst update = getVekterNodeDataFromPlugin(node, attributes, context, parent)\n\t\t\tnode.set(update)\n\t\t},\n\t})\n\n\t// Focus the main app window so you can use the keyboard shortcuts (e.g. delete)\n\twindow.focus()\n\n\treturn node\n}\n\n/** We only allow SVG of max 10kB. */\nfunction verifyMaxSVGSize(svg: string) {\n\tconst size = getStringSizeInKilobytes(svg)\n\tif (size > 10) throw new PluginOnlyError(\"SVG is too large. Max size is 10kB.\")\n}\n\nfunction createNodeFromCreateNodeType(type: CreateNodeType) {\n\tswitch (type) {\n\t\tcase \"ComponentNode\":\n\t\t\treturn new SmartComponentNode()\n\t\tcase \"FrameNode\":\n\t\t\treturn new FrameNode()\n\t\tcase \"TextNode\": {\n\t\t\treturn new RichTextNode({\n\t\t\t\t// Use auto dimensions as defaults for plugin-created text nodes.\n\t\t\t\twidthType: DimensionType.Auto,\n\t\t\t\theightType: DimensionType.Auto,\n\t\t\t})\n\t\t}\n\t\tdefault:\n\t\t\tshouldBeNever(type)\n\t\t\treturn null\n\t}\n}\n\nasync function getNodesDataWithPredicate(\n\tcontext: ActivePluginContext,\n\troot: NodeID | null,\n\tpredicate: (node: CanvasNode) => boolean,\n): Promise<SomeNodeData[]> {\n\tfunction collectResults(searchRoot: CanvasNode) {\n\t\tconst result: SomeNodeData[] = []\n\n\t\t// At this point we have loaded the search root so we can safely use `walk`\n\t\tfor (const node of searchRoot.walk()) {\n\t\t\tif (!predicate(node)) continue\n\n\t\t\tconst nodeData = getPluginNodeDataFromVekter(node, context)\n\t\t\tresult.push(nodeData)\n\t\t}\n\n\t\treturn result\n\t}\n\n\tconst { treeStore } = context.engine.stores\n\n\tconst dataTree = treeStore.getDataTree()\n\tif (dataTree) {\n\t\tconst searchRoot = root ? dataTree.get(root) : dataTree.root\n\t\tif (!searchRoot) throw new PluginOnlyError(\"Node not found\")\n\t\treturn collectResults(searchRoot)\n\t}\n\n\t// TODO: Remove after full migration to CRDT and DataTree\n\tif (!root) {\n\t\tconst searchRoot = context.engine.tree.root\n\t\treturn new Promise<SomeNodeData[]>(resolve => {\n\t\t\tcontext.engine.runWithFullyLoadedTree(\n\t\t\t\t() => {\n\t\t\t\t\tconst currentRoot = context.engine.tree.current(searchRoot)\n\t\t\t\t\tassert(currentRoot, \"Expected to load scope node\")\n\t\t\t\t\tconst result = collectResults(currentRoot)\n\t\t\t\t\tresolve(result)\n\t\t\t\t},\n\t\t\t\t{ name: \"getPluginNodesWithPredicate\" },\n\t\t\t)\n\t\t})\n\t}\n\n\tlet searchRoot = context.engine.tree.get(root)\n\tif (!searchRoot) throw new PluginOnlyError(\"Node not found\")\n\n\tif (isScopeNode(searchRoot) && !searchRoot.loaded) {\n\t\tsearchRoot = await searchRoot.load()\n\t\tassert(searchRoot, \"Expected to load scope node\")\n\t}\n\n\tsearchRoot = context.engine.tree.current(searchRoot)\n\tassert(searchRoot, \"Expected to load scope node\")\n\treturn collectResults(searchRoot)\n}\n\n/**\n * The move tool resets all locale tree changes on every change so it should not be active after\n * async processes edit the tree.\n */\nfunction noMoveToolActive(engine: VekterEngine): Promise<void> {\n\tif (engine.stores.toolStore.tool !== Tools.Move) return Promise.resolve()\n\n\treturn new Promise<void>(resolve => {\n\t\tconst token = engine.scheduler.changes.observe(engine.stores.toolStore, () => {\n\t\t\tif (engine.stores.toolStore.tool === Tools.Move) return\n\t\t\tresolve()\n\t\t\tengine.scheduler.changes.removeObserver(token)\n\t\t})\n\t})\n}\n\nfunction getPublishInfo(engine: VekterEngine): PublishInfo {\n\tconst { componentLoader, stores } = engine\n\tconst { defaultHostname, defaultHostnameDeployment, customHostname, customHostnameDeployment } = stores.publishStore\n\n\tconst productionHostname = customHostname || defaultHostname\n\tconst productionDeployment = customHostnameDeployment || defaultHostnameDeployment\n\n\treturn {\n\t\tproduction:\n\t\t\tproductionHostname && productionDeployment\n\t\t\t\t? mapHostname(componentLoader, stores, productionHostname, productionDeployment)\n\t\t\t\t: null,\n\t\tstaging:\n\t\t\tdefaultHostname && defaultHostnameDeployment\n\t\t\t\t? mapHostname(componentLoader, stores, defaultHostname, defaultHostnameDeployment)\n\t\t\t\t: null,\n\t}\n}\n\nfunction mapHostname(\n\tcomponentLoader: ComponentLoader,\n\tstores: EngineStores,\n\thostname: Hostname,\n\tdeployment: Deployment,\n): Publish {\n\treturn {\n\t\tdeploymentTime: Date.parse(deployment.createdAt),\n\t\toptimizationStatus: mapOptimizationStatus(deployment.status),\n\t\turl: `https://${hostname.hostname}`,\n\t\tcurrentPageUrl: getActiveWebPageURL(componentLoader, stores, hostname.hostname),\n\t}\n}\n\nfunction mapOptimizationStatus(status: DeploymentStatus): OptimizationStatus {\n\tswitch (status) {\n\t\tcase DeploymentStatus.Pending:\n\t\tcase DeploymentStatus.SpaReady:\n\t\t\treturn \"optimizing\"\n\t\tcase DeploymentStatus.SpaFailed:\n\t\tcase DeploymentStatus.SsgPipelineFailed:\n\t\tcase DeploymentStatus.SsgReadyWithErrors:\n\t\t\treturn \"error\"\n\t\tcase DeploymentStatus.SsgReady:\n\t\tcase DeploymentStatus.SsgReadyWithWarnings:\n\t\t\treturn \"optimized\"\n\t\tdefault:\n\t\t\tassertNever(status)\n\t}\n}\n\nconst alwaysAllowedMethods = {\n\tshowUI: true,\n\thideUI: true,\n\tsetBackgroundMessage: true,\n\tsetCloseWarning: true,\n\tclosePlugin: true,\n\tgetCurrentUser: true,\n\tgetCurrentUser2: true,\n\tgetProjectInfo: true,\n\tgetProjectInfo2: true,\n\tonPointerDown: true,\n\tnotify: true,\n\tcloseNotification: true,\n\tgetPluginData: true,\n\tsetPluginData: true,\n\tgetPluginDataKeys: true,\n\tgetPluginDataForNode: true,\n\tgetPluginDataKeysForNode: true,\n\tsetPluginDataForNode: true,\n\tcreateCollection: true,\n\tcreateManagedCollection: true,\n\tgetCollection: true,\n\tgetCollections: true,\n\tgetCollectionItems: true,\n\tgetCollectionItems2: true,\n\tsetCollectionItemOrder: true,\n\tgetCollectionFields: true,\n\tgetCollectionFields2: true,\n\taddCollectionFields: true,\n\taddCollectionFields2: true,\n\tremoveCollectionFields: true,\n\tsetCollectionFieldOrder: true,\n\taddCollectionItems: true,\n\taddCollectionItems2: true,\n\tsetCollectionItemAttributes: true,\n\tsetCollectionItemAttributes2: true,\n\taddEnumCase: true,\n\tupdateEnumCase: true,\n\tremoveEnumCase: true,\n\tsetEnumCaseOrder: true,\n\tremoveCollectionItems: true,\n\tgetActiveCollectionItemForWebPage: true,\n\tgetLocales: true,\n\tgetDefaultLocale: true,\n\tgetActiveLocale: true,\n\tgetLocaleLanguages: true,\n\tgetLocaleRegions: true,\n\taddRedirects: true,\n\tgetRedirects: true,\n\tsetRedirectOrder: true,\n\tremoveRedirects: true,\n\tuploadImage: true,\n\tuploadImages: true,\n\tuploadFile: true,\n\tuploadFiles: true,\n\tsetMenu: true,\n\tshowContextMenu: true,\n\tgetVariables: true,\n\taddVariables: true,\n\tupdateVariable: true,\n\tremoveVariables: true,\n\tsetVariableOrder: true,\n\tgetVectorSets: true,\n\n\tgetVectorSetItems: true,\n\tgetVectorSetItemVariables: true,\n\n\t// Internal\n\t[getAiServiceInfoMessageType]: true,\n\t[sendTrackingEventMessageType]: true,\n\t[getCurrentUserMessageType]: true,\n\t[getProjectInfoMessageType]: true,\n\t[getHTMLForNodeMessageType]: true,\n\t[setHTMLForNodeMessageType]: true,\n\n\t// Deprecated internal\n\tgetAiServiceInfo: true,\n\tsendTrackingEvent: true,\n} as const satisfies Partial<Record<keyof PluginMessageAPI, true>>\n\nconst allManagedCollectionMethods = {\n\tgetActiveManagedCollection: true,\n\tgetManagedCollection: true,\n\tgetManagedCollections: true,\n\tcreateManagedCollection: true,\n\tgetManagedCollectionItemIds: true,\n\tsetManagedCollectionItemOrder: true,\n\tsetManagedCollectionFields: true,\n\tgetManagedCollectionFields: true,\n\tgetManagedCollectionFields2: true,\n\taddManagedCollectionItems: true,\n\taddManagedCollectionItems2: true,\n\tremoveManagedCollectionItems: true,\n\tsetActiveCollection: true,\n} as const satisfies Partial<Record<keyof PluginMessageAPI, true>>\n\nconst allCollectionMethods = {\n\tcreateCollection: true,\n} as const satisfies Partial<Record<keyof PluginMessageAPI, true>>\n\nconst allLocalizationMethods = {\n\tcreateLocale: true,\n\tgetLocalizationGroups: true,\n\tsetLocalizationData: true,\n} as const satisfies Partial<Record<keyof PluginMessageAPI, true>>\n\nconst apiOnlyMethods = {\n\treadProjectForAgent: true,\n\tgetAgentSystemPrompt: true,\n\tgetAgentContext: true,\n\tapplyAgentChanges: true,\n\tflattenComponentInstanceForAgent: true,\n\tmakeExternalComponentLocalForAgent: true,\n\tgetNodeForAgent: true,\n\tgetNodesForAgent: true,\n\tgetNodesOfTypesForAgent: true,\n\tgetScopeNodeForAgent: true,\n\tgetGroundNodeForAgent: true,\n\tgetParentNodeForAgent: true,\n\tgetAncestorsForAgent: true,\n\tserializeForAgent: true,\n\tserializeNodesForAgent: true,\n\tpaginateForAgent: true,\n\tpublishForAgent: true,\n\tqueryImagesForAgent: true,\n\treviewChangesForAgent: true,\n\tstartAgentConversation: true,\n\tcontinueAgentConversation: true,\n\tsubmitAgentClarification: true,\n\trunSupervisorAgentCommand: true,\n\tpublish: true,\n\tgetDeployments: true,\n\tdeploy: true,\n\tgetChangedPaths: true,\n\tgetChangeContributors: true,\n} as const satisfies Partial<Record<keyof PluginMessageAPI, true>>\n\nconst allowedMethodsByMode = {\n\tcanvas: {\n\t\taddComponentInstance: true,\n\t\taddDetachedComponentLayers: true,\n\t\taddImage: true,\n\t\taddImages: true,\n\t\taddSVG: true,\n\t\taddText: true,\n\t\tcloneNode: true,\n\t\tcloneWebPage: true,\n\t\tcloneDesignPage: true,\n\t\tcreateColorStyle: true,\n\t\tcreateNode: true,\n\t\tcreateDesignPage: true,\n\t\tcreateTextStyle: true,\n\t\tcreateWebPage: true,\n\t\tgetActiveCollection: true,\n\t\tgetCanvasRoot: true,\n\t\tgetChildren: true,\n\t\tgetColorStyle: true,\n\t\tgetColorStyles: true,\n\t\tgetCustomCode: true,\n\t\tgetFont: true,\n\t\tgetFonts: true,\n\t\tgetImage: true,\n\t\tgetImageData: true,\n\t\tgetNode: true,\n\t\tgetNodesWithAttribute: true,\n\t\tgetNodesWithAttributeSet: true,\n\t\tgetNodesWithType: true,\n\t\tgetParent: true,\n\t\tgetPublishInfo: true,\n\t\tgetRect: true,\n\t\tgetSelection: true,\n\t\tgetText: true,\n\t\tgetTextForNode: true,\n\t\tgetTextStyle: true,\n\t\tgetTextStyles: true,\n\t\tgetSVGForNode: true,\n\t\tonDrag: true,\n\t\tonDragEnd: true,\n\t\tonDragStart: true,\n\t\tpreloadDetachedComponentLayers: true,\n\t\tpreloadDragPreviewImage: true,\n\t\tpreloadImageUrlForInsertion: true,\n\t\tremoveColorStyle: true,\n\t\tremoveNodes2: true,\n\t\tremoveNodes: true,\n\t\tremoveNode: true,\n\t\tremoveTextStyle: true,\n\t\tsetAttributes: true,\n\t\tsetColorStyleAttributes: true,\n\t\tsetCustomCode: true,\n\t\tsetDragData: true,\n\t\tsetImage: true,\n\t\tsetParent: true,\n\t\tsetSelection: true,\n\t\tsetText: true,\n\t\tsetTextForNode: true,\n\t\tsetTextStyleAttributes: true,\n\t\tunstable_getDependencyVersion: true,\n\t\tunstable_ensureMinimumDependencyVersion: true,\n\t\tzoomIntoView: true,\n\t\t// REMOVE ONCE CODE FILE API ARE RELEASED AND NO MORE USAGE OF `unstable_` METHODS\n\t\tunstable_createCodeFile: true,\n\t\tunstable_getCodeFiles: true,\n\t\tunstable_getCodeFile: true,\n\t\tunstable_setCodeFileContent: true,\n\t\tunstable_removeCodeFile: true,\n\t\tunstable_renameCodeFile: true,\n\t\tunstable_getCodeFileVersions: true,\n\t\tunstable_getCodeFileVersionContent: true,\n\t\tunstable_getCodeFileLint2: true,\n\t\tunstable_getCodeFileTypecheck2: true,\n\t\t// END REMOVE\n\n\t\tcreateCodeFile: true,\n\t\tgetCodeFiles: true,\n\t\tgetCodeFile: true,\n\t\tsetCodeFileContent: true,\n\t\tremoveCodeFile: true,\n\t\trenameCodeFile: true,\n\t\tgetCodeFileVersions: true,\n\t\tgetCodeFileVersionContent: true,\n\t\t/** @deprecated The lintCode API was removed. */\n\t\tlintCode: true,\n\t\ttypecheckCode: true,\n\t\tgetRuntimeErrorForModule: true,\n\t\tgetRuntimeErrorForCodeComponentNode: true,\n\t\taddComponentInstancePlaceholder: true,\n\t\tupdateComponentInstancePlaceholder: true,\n\t\tremoveComponentInstancePlaceholder: true,\n\t\treplaceComponentInstancePlaceholderWithComponentInstance: true,\n\t\tshowProgressOnInstances: true,\n\t\tremoveProgressFromInstances: true,\n\t\tnavigateTo: true,\n\t\taddVariantToComponent: true,\n\t\taddGestureVariantToComponent: true,\n\t\tgetBreakpointSuggestionsForWebPage: true,\n\t\taddBreakpointToWebPage: true,\n\t} as const satisfies Record<\n\t\tExclude<\n\t\t\tkeyof PluginMessageAPI,\n\t\t\t| keyof typeof alwaysAllowedMethods\n\t\t\t| keyof typeof allManagedCollectionMethods\n\t\t\t| keyof typeof allLocalizationMethods\n\t\t\t| keyof typeof allCollectionMethods\n\t\t\t| keyof typeof apiOnlyMethods\n\t\t>,\n\t\ttrue\n\t>,\n\timage: {\n\t\tsetImage: true,\n\t\tgetImageData: true,\n\t},\n\teditImage: {\n\t\tsetImage: true,\n\t\tgetImage: true,\n\t\tgetImageData: true,\n\t},\n\tconfigureManagedCollection: allManagedCollectionMethods,\n\tsyncManagedCollection: allManagedCollectionMethods,\n\tcollection: {\n\t\tgetActiveCollection: true,\n\t\tsetActiveCollection: true,\n\t\tremoveNodes: true,\n\t\t...allCollectionMethods,\n\t},\n\tlocalization: allLocalizationMethods,\n\tcode: {\n\t\t// REMOVE ONCE CODE FILE API ARE RELEASED AND NO MORE USAGE OF `unstable_` METHODS\n\t\tunstable_getCodeFile: true,\n\t\tunstable_getCodeFiles: true,\n\t\tunstable_getCodeFileVersions: true,\n\t\tunstable_getCodeFileVersionContent: true,\n\t\tunstable_getCodeFileLint2: true,\n\t\tunstable_getCodeFileTypecheck2: true,\n\t\tunstable_createCodeFile: true,\n\t\tunstable_setCodeFileContent: true,\n\t\tunstable_removeCodeFile: true,\n\t\tunstable_renameCodeFile: true,\n\t\t// END REMOVE\n\n\t\tgetCodeFile: true,\n\t\tgetCodeFiles: true,\n\t\tgetCodeFileVersions: true,\n\t\tgetCodeFileVersionContent: true,\n\t\t/** @deprecated The lintCode API was removed. */\n\t\tlintCode: true,\n\t\ttypecheckCode: true,\n\t\tunstable_getDependencyVersion: true,\n\t\tcreateCodeFile: true,\n\t\tsetCodeFileContent: true,\n\t\tremoveCodeFile: true,\n\t\trenameCodeFile: true,\n\t},\n\tapi: {\n\t\t...allManagedCollectionMethods,\n\t\t...allLocalizationMethods,\n\t\t...apiOnlyMethods,\n\t\t...allCollectionMethods,\n\n\t\taddComponentInstance: true,\n\t\taddDetachedComponentLayers: true,\n\t\taddImage: true,\n\t\taddImages: true,\n\t\taddSVG: true,\n\t\taddText: true,\n\t\tcloneNode: true,\n\t\tcloneWebPage: true,\n\t\tcloneDesignPage: true,\n\t\tcreateColorStyle: true,\n\t\tcreateNode: true,\n\t\tcreateTextStyle: true,\n\t\tcreateDesignPage: true,\n\t\tcreateWebPage: true,\n\t\tgetCanvasRoot: true,\n\t\tgetChildren: true,\n\t\tgetColorStyle: true,\n\t\tgetColorStyles: true,\n\t\tgetCustomCode: true,\n\t\tgetFont: true,\n\t\tgetFonts: true,\n\t\tgetImage: true,\n\t\tgetImageData: true,\n\t\tgetNode: true,\n\t\tgetNodesWithAttribute: true,\n\t\tgetNodesWithAttributeSet: true,\n\t\tgetNodesWithType: true,\n\t\tgetParent: true,\n\t\tgetPublishInfo: true,\n\t\tgetRect: true,\n\t\tgetText: true,\n\t\tgetTextForNode: true,\n\t\tgetTextStyle: true,\n\t\tgetTextStyles: true,\n\t\tgetSVGForNode: true,\n\t\tremoveColorStyle: true,\n\t\tremoveNodes2: true,\n\t\tremoveNodes: true,\n\t\tremoveNode: true,\n\t\tremoveTextStyle: true,\n\t\tsetAttributes: true,\n\t\tsetColorStyleAttributes: true,\n\t\tsetCustomCode: true,\n\t\tsetImage: true,\n\t\tsetParent: true,\n\t\tsetText: true,\n\t\tsetSelection: true,\n\t\tsetTextForNode: true,\n\t\tsetTextStyleAttributes: true,\n\t\tunstable_createCodeFile: true,\n\t\tunstable_getCodeFiles: true,\n\t\tunstable_getCodeFile: true,\n\t\tunstable_setCodeFileContent: true,\n\t\tunstable_removeCodeFile: true,\n\t\tunstable_renameCodeFile: true,\n\t\tunstable_getCodeFileVersions: true,\n\t\tunstable_getCodeFileVersionContent: true,\n\t\tunstable_getCodeFileLint2: true,\n\t\tunstable_getCodeFileTypecheck2: true,\n\t\tcreateCodeFile: true,\n\t\tgetCodeFiles: true,\n\t\tgetCodeFile: true,\n\t\tsetCodeFileContent: true,\n\t\tremoveCodeFile: true,\n\t\trenameCodeFile: true,\n\t\tgetCodeFileVersions: true,\n\t\tgetCodeFileVersionContent: true,\n\t\t/** @deprecated The lintCode API was removed. */\n\t\tlintCode: true,\n\t\ttypecheckCode: true,\n\t\tgetRuntimeErrorForModule: true,\n\t\tgetRuntimeErrorForCodeComponentNode: true,\n\t\taddComponentInstancePlaceholder: true,\n\t\tupdateComponentInstancePlaceholder: true,\n\t\tremoveComponentInstancePlaceholder: true,\n\t\treplaceComponentInstancePlaceholderWithComponentInstance: true,\n\t\tshowProgressOnInstances: true,\n\t\tremoveProgressFromInstances: true,\n\t\taddVariantToComponent: true,\n\t\taddGestureVariantToComponent: true,\n\t\tgetBreakpointSuggestionsForWebPage: true,\n\t\taddBreakpointToWebPage: true,\n\t} as const satisfies Record<\n\t\tExclude<\n\t\t\tkeyof PluginMessageAPI,\n\t\t\tkeyof typeof alwaysAllowedMethods | ApiModeBlockedMethods | ApiModeAdditionalMessageApiOnlyMethods\n\t\t>,\n\t\ttrue\n\t>,\n} as const satisfies Record<Mode, Partial<Record<keyof PluginMessageAPI, true>>>\n\nfunction isMethodAllowedInMode(mode: Mode, methodName: keyof PluginMessageAPI): boolean {\n\tconst isAllowedForAllModes = Object.hasOwn(alwaysAllowedMethods, methodName)\n\tif (isAllowedForAllModes) return true\n\tconst isAllowedForThisMode = Object.hasOwn(allowedMethodsByMode[mode], methodName)\n\treturn isAllowedForThisMode\n}\n\nconst alwaysAllowedSubscriptionTopics = {\n\ttheme: true,\n} as const satisfies Partial<Record<PluginSubscriptionTopic, true>>\n\nconst allowedSubscriptionTopicsByMode = {\n\tcanvas: allSubscriptionTopics,\n\timage: {},\n\teditImage: { image: true },\n\tconfigureManagedCollection: {},\n\tsyncManagedCollection: {},\n\tcollection: {},\n\tlocalization: {},\n\tcode: {\n\t\tcodeFiles: true,\n\t\topenCodeFile: true,\n\t},\n\tapi: {\n\t\tcanvasRoot: true,\n\t\tpublishInfo: true,\n\t\ttheme: true,\n\t\tcolorStyles: true,\n\t\ttextStyles: true,\n\t\tredirects: true,\n\t\tcodeFiles: true,\n\t\tcustomCode: true,\n\t},\n} as const satisfies Record<Mode, Partial<Record<PluginSubscriptionTopic, true>>>\n\nfunction isSubscriptionAllowedInMode(mode: Mode, topic: PluginSubscriptionTopic): boolean {\n\tconst isAllowedForAllModes = Object.hasOwn(alwaysAllowedSubscriptionTopics, topic)\n\tif (isAllowedForAllModes) return true\n\tconst isAllowedForThisMode = Object.hasOwn(allowedSubscriptionTopicsByMode[mode], topic)\n\treturn isAllowedForThisMode\n}\n\nfunction convertPluginPositionToWindow<T extends Point>(\n\tdata: T,\n\tiFrameRef: React.RefObject<HTMLIFrameElement>,\n): T | null {\n\tconst iFrame = iFrameRef.current\n\tif (!iFrame) return null\n\n\tconst iFrameBounds = iFrame.getBoundingClientRect()\n\n\treturn { ...data, x: data.x + iFrameBounds.left, y: data.y + iFrameBounds.top }\n}\n\nfunction convertPluginMenuPlacementToVekterPlacement(\n\tplacement: MenuPlacement | undefined,\n): MenuConfig[\"placement\"] | undefined {\n\tif (!placement) return undefined\n\n\tswitch (placement) {\n\t\tcase \"top-left\":\n\t\t\treturn \"top-end\"\n\t\tcase \"top-right\":\n\t\t\treturn \"top-start\"\n\t\tcase \"bottom-left\":\n\t\t\treturn \"bottom-end\"\n\t\tcase \"bottom-right\":\n\t\t\treturn \"bottom-start\"\n\t\tcase \"bottom\":\n\t\tcase \"top\":\n\t\tcase \"left\":\n\t\tcase \"right\":\n\t\t\treturn placement\n\t\tdefault:\n\t\t\tassertNever(placement)\n\t}\n}\n\nfunction isDraggingOverCanvas(dragState: RenderState<DragState>): boolean {\n\tconst state = dragState.getState()\n\tif (state.type !== \"dragging\" || !state.dragInfo) return false\n\n\tconst { mouse } = state.dragInfo\n\tconst topElement = document.elementFromPoint(mouse.x, mouse.y)\n\tif (!topElement) return false\n\n\treturn Boolean(topElement.closest(`#${CanvasEventTargetId}`))\n}\n\nfunction getInsertTypeFromDragData(dragData: DragData): InsertType {\n\tswitch (dragData.type) {\n\t\tcase \"componentInstance\":\n\t\t\treturn \"component\"\n\t\tcase \"detachedComponentLayers\":\n\t\t\treturn dragData.layout ? \"layoutBlock\" : \"frame\"\n\t\tcase \"image\":\n\t\t\treturn \"image\"\n\t\tcase \"svg\":\n\t\t\treturn \"svg\"\n\t\tdefault:\n\t\t\tassertNever(dragData)\n\t}\n}\n\nfunction highlightInsertParent(engine: VekterEngine, parent: CanvasNode | null, line: Line | null) {\n\tengine.scheduler.processWhenReady(() => {\n\t\tengine.stores.toolStore.stackInsertionIndicator = line\n\t\tengine.stores.treeStore.setHighlight(parent ? parent.id : null)\n\t})\n}\n\nfunction isTreeDataSubscription(topic: PluginSubscriptionTopic): boolean {\n\tswitch (topic) {\n\t\tcase \"selection\":\n\t\tcase \"canvasRoot\":\n\t\tcase \"colorStyles\":\n\t\tcase \"textStyles\":\n\t\tcase \"redirects\":\n\t\tcase \"codeFiles\":\n\t\tcase \"openCodeFile\":\n\t\t\treturn true\n\t\tcase \"publishInfo\":\n\t\tcase \"image\":\n\t\tcase \"theme\":\n\t\tcase \"text\":\n\t\tcase \"customCode\":\n\t\t\treturn false\n\t\tdefault:\n\t\t\tassertNever(topic)\n\t}\n}\n\nfunction mapDeploymentToPlugin(deployment: ServerDeployment): PluginDeployment {\n\treturn {\n\t\tid: deployment.id,\n\t\tcreatedAt: deployment.createdAt,\n\t\tupdatedAt: deployment.updatedAt,\n\t}\n}\n\nfunction mapHostnameToPlugin(hostname: Hostname | EnrichedHostnameWithDeployment): PluginHostname {\n\treturn {\n\t\thostname: hostname.hostname,\n\t\ttype: hostname.type,\n\t\tisPrimary: \"isPrimary\" in hostname ? (hostname.isPrimary ?? false) : false,\n\t\tisPublished: hostname.isPublished,\n\t\tdeploymentId: \"deploymentId\" in hostname ? hostname.deploymentId : (hostname.deployment?.id ?? \"\"),\n\t}\n}\n", "import { debounce } from \"@framerjs/shared\"\nimport type { RecordFn } from \"web/lib/tracker.ts\"\nimport type { Mode, PluginMessageAPI } from \"#framer-plugin/framerAPI.ts\"\nimport { type VekterPluginManifest, isHostedPluginManifest } from \"./plugins.ts\"\n\nconst timeoutMs = 250\n\n/**\n * Method invocations are tracked as events.\n * It is possible for plugins to call the same method many times in a short period of time\n * Instead of sending an event for every method call, we throttle the events and collect a batch count\n */\nexport class MethodInvocationTracker {\n\tprivate debouncedRecord: Map<keyof PluginMessageAPI, typeof this.sendEvent> = new Map()\n\tprivate timesCalledCount: Map<keyof PluginMessageAPI, number> = new Map()\n\n\tconstructor(\n\t\tprivate manifest: VekterPluginManifest,\n\t\tprivate mode: Mode,\n\t\tprivate record: RecordFn,\n\t\t/** Only set for Headless API sessions, never in UI mode. */\n\t\tprivate sessionId: string | undefined,\n\t\tprivate clientId: string | undefined,\n\t) {}\n\n\tprivate sendEvent(methodName: keyof PluginMessageAPI) {\n\t\tconst count = this.timesCalledCount.get(methodName) ?? 0\n\t\tthis.timesCalledCount.set(methodName, 0)\n\n\t\tthis.record(\"plugin_method_invocation\", {\n\t\t\turl: isHostedPluginManifest(this.manifest) ? this.manifest.entrypointUrl : \"headless-api\",\n\t\t\tmode: this.mode,\n\t\t\tmethodName: methodName,\n\t\t\tpluginName: this.manifest.name,\n\t\t\tid: this.manifest.id,\n\t\t\tbatchCount: count,\n\t\t\tsessionId: this.sessionId,\n\t\t\tclientId: this.clientId,\n\t\t})\n\t}\n\n\tprivate getDebouncedRecord(methodName: keyof PluginMessageAPI) {\n\t\tconst debouncedRecord = this.debouncedRecord.get(methodName)\n\t\tif (debouncedRecord) return debouncedRecord\n\n\t\tconst debounced = debounce(this.sendEvent.bind(this), timeoutMs)\n\t\tthis.debouncedRecord.set(methodName, debounced)\n\n\t\treturn debounced\n\t}\n\n\ttrack(methodName: keyof PluginMessageAPI) {\n\t\tconst timesCalled = (this.timesCalledCount.get(methodName) ?? 0) + 1\n\t\tthis.timesCalledCount.set(methodName, timesCalled)\n\n\t\tconst debouncedRecord = this.getDebouncedRecord(methodName)\n\n\t\tdebouncedRecord(methodName)\n\t}\n}\n", "import { assert, assertNever } from \"@framerjs/shared\"\nimport { noop } from \"@framerjs/shared/src/noop.ts\"\nimport type { VekterEngine } from \"document/VekterEngine.ts\"\nimport type { PluginMessageAPI } from \"#framer-plugin/framerAPI.ts\"\nimport {\n\tgetAiServiceInfoMessageType,\n\tgetCurrentUserMessageType,\n\tgetHTMLForNodeMessageType,\n\tgetProjectInfoMessageType,\n\tsendTrackingEventMessageType,\n\tsetHTMLForNodeMessageType,\n} from \"#framer-plugin/internal.ts\"\nimport type { VekterPluginManifest } from \"./plugins.ts\"\n\ntype DidInvokeMethod = VoidFunction\n\nexport class PluginAutoUndoGrouping {\n\tprivate aborted = false\n\tprivate hasOpenUndoGroup = false\n\tprivate activeMethodCounter = 0\n\n\tprivate endUndoGroup: () => void\n\tprivate endUndoGroupDebounced: () => void\n\n\twillInvokeMethod: (methodName: keyof PluginMessageAPI) => DidInvokeMethod\n\n\tconstructor(\n\t\tprivate readonly engine: VekterEngine,\n\t\tsignal: AbortSignal,\n\t\tprivate readonly manifest: VekterPluginManifest,\n\t) {\n\t\tthis.endUndoGroup = this.engine.scheduler.wrapHandler(() => {\n\t\t\tif (!this.hasOpenUndoGroup) return\n\n\t\t\tthis.engine.endUndoGroup()\n\t\t\tthis.hasOpenUndoGroup = false\n\t\t})\n\n\t\tthis.endUndoGroupDebounced = this.engine.scheduler.debounce(() => {\n\t\t\tif (this.activeMethodCounter !== 0) return\n\t\t\tthis.endUndoGroup()\n\t\t}, 100)\n\n\t\tthis.willInvokeMethod = this.engine.scheduler.wrapHandler(methodName => {\n\t\t\tconst impactsUndoRedo = methodInfo[methodName] === EDITS_TREE\n\t\t\tif (!impactsUndoRedo) return noop\n\n\t\t\tassert(!this.aborted, \"`willInvokeMethod` is *not* allowed to be called after abortion\")\n\n\t\t\tif (!this.hasOpenUndoGroup) {\n\t\t\t\tswitch (this.manifest.type) {\n\t\t\t\t\tcase \"api\":\n\t\t\t\t\t\tthis.engine.setEditReason(\"api automation\")\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"hosted\":\n\t\t\t\t\t\tthis.engine.setEditReason(\"hosted plugin automation\")\n\t\t\t\t\t\tbreak\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tassertNever(this.manifest)\n\t\t\t\t}\n\t\t\t\tthis.engine.beginUndoGroup()\n\t\t\t\tthis.hasOpenUndoGroup = true\n\t\t\t}\n\n\t\t\tthis.activeMethodCounter += 1\n\n\t\t\treturn () => {\n\t\t\t\tthis.activeMethodCounter -= 1\n\t\t\t\tthis.endUndoGroupDebounced()\n\t\t\t}\n\t\t})\n\n\t\tsignal.addEventListener(\"abort\", () => this.abort(), { once: true })\n\t}\n\n\tprivate abort() {\n\t\tassert(!this.aborted, \"Can only abort once\")\n\t\tthis.aborted = true\n\t\tthis.engine.scheduler.processWhenReady(() => {\n\t\t\tthis.endUndoGroup()\n\t\t})\n\t}\n}\n\nconst EDITS_TREE = Symbol(\"EDITS_TREE\")\nconst noTreeEdits = Symbol(\"noEdit\")\n\n/** Only methods which update the tree affect undo/redo. */\nconst methodInfo: Record<keyof PluginMessageAPI, typeof EDITS_TREE | typeof noTreeEdits> = {\n\taddImages: EDITS_TREE,\n\taddSVG: EDITS_TREE,\n\taddComponentInstance: EDITS_TREE,\n\taddDetachedComponentLayers: EDITS_TREE,\n\tpreloadDetachedComponentLayers: noTreeEdits,\n\tpreloadImageUrlForInsertion: noTreeEdits,\n\tpreloadDragPreviewImage: noTreeEdits,\n\tcloneNode: EDITS_TREE,\n\tcloneWebPage: EDITS_TREE,\n\tcloneDesignPage: EDITS_TREE,\n\tclosePlugin: noTreeEdits,\n\tsetCloseWarning: noTreeEdits,\n\tcreateNode: EDITS_TREE,\n\tgetCanvasRoot: noTreeEdits,\n\tgetCurrentUser: noTreeEdits,\n\tgetCurrentUser2: noTreeEdits,\n\tgetProjectInfo: noTreeEdits,\n\tgetProjectInfo2: noTreeEdits,\n\tgetImageData: noTreeEdits,\n\tgetNode: noTreeEdits,\n\tgetParent: noTreeEdits,\n\tgetChildren: noTreeEdits,\n\tgetRect: noTreeEdits,\n\tgetPublishInfo: noTreeEdits,\n\tgetSelection: noTreeEdits,\n\thideUI: noTreeEdits,\n\tsetBackgroundMessage: noTreeEdits,\n\tremoveNodes2: EDITS_TREE,\n\tremoveNodes: EDITS_TREE,\n\tremoveNode: EDITS_TREE,\n\tsetAttributes: EDITS_TREE,\n\tsetParent: EDITS_TREE,\n\tsetSelection: noTreeEdits,\n\tshowUI: noTreeEdits,\n\taddImage: EDITS_TREE,\n\tgetImage: EDITS_TREE,\n\tuploadImages: noTreeEdits,\n\tuploadImage: noTreeEdits,\n\tuploadFile: noTreeEdits,\n\tuploadFiles: noTreeEdits,\n\tgetText: noTreeEdits,\n\tsetText: EDITS_TREE,\n\taddText: EDITS_TREE,\n\tgetSVGForNode: noTreeEdits,\n\tgetTextForNode: noTreeEdits,\n\tsetTextForNode: EDITS_TREE,\n\tsetImage: EDITS_TREE,\n\tsetDragData: noTreeEdits,\n\tonDragStart: noTreeEdits,\n\tonDrag: noTreeEdits,\n\tonDragEnd: EDITS_TREE,\n\tonPointerDown: noTreeEdits,\n\tsetCustomCode: EDITS_TREE,\n\tgetCustomCode: noTreeEdits,\n\tgetPluginData: noTreeEdits,\n\tgetPluginDataKeys: noTreeEdits,\n\tsetPluginData: EDITS_TREE,\n\tgetPluginDataForNode: noTreeEdits,\n\tsetPluginDataForNode: EDITS_TREE,\n\tgetPluginDataKeysForNode: noTreeEdits,\n\tgetActiveManagedCollection: noTreeEdits,\n\tgetManagedCollection: noTreeEdits,\n\tgetManagedCollections: noTreeEdits,\n\tgetManagedCollectionItemIds: noTreeEdits,\n\tsetManagedCollectionItemOrder: EDITS_TREE,\n\tsetManagedCollectionFields: EDITS_TREE,\n\tgetManagedCollectionFields: noTreeEdits,\n\tgetManagedCollectionFields2: noTreeEdits,\n\taddManagedCollectionItems: EDITS_TREE,\n\taddManagedCollectionItems2: EDITS_TREE,\n\tremoveManagedCollectionItems: EDITS_TREE,\n\tgetCollection: noTreeEdits,\n\tcreateCollection: EDITS_TREE,\n\tgetActiveCollection: noTreeEdits,\n\tsetActiveCollection: noTreeEdits,\n\taddEnumCase: EDITS_TREE,\n\tupdateEnumCase: EDITS_TREE,\n\tremoveEnumCase: EDITS_TREE,\n\tsetEnumCaseOrder: EDITS_TREE,\n\tgetCollections: noTreeEdits,\n\tgetCollectionItems: noTreeEdits,\n\tgetCollectionItems2: noTreeEdits,\n\tsetCollectionItemOrder: EDITS_TREE,\n\tgetCollectionFields: noTreeEdits,\n\tgetCollectionFields2: noTreeEdits,\n\taddCollectionFields: EDITS_TREE,\n\taddCollectionFields2: EDITS_TREE,\n\tremoveCollectionFields: EDITS_TREE,\n\tsetCollectionFieldOrder: EDITS_TREE,\n\taddCollectionItems: EDITS_TREE,\n\taddCollectionItems2: EDITS_TREE,\n\tsetCollectionItemAttributes: EDITS_TREE,\n\tsetCollectionItemAttributes2: EDITS_TREE,\n\tremoveCollectionItems: EDITS_TREE,\n\tgetNodesWithType: noTreeEdits,\n\tgetNodesWithAttribute: noTreeEdits,\n\tgetNodesWithAttributeSet: noTreeEdits,\n\tnotify: noTreeEdits,\n\tcloseNotification: noTreeEdits,\n\tgetColorStyle: noTreeEdits,\n\tgetColorStyles: noTreeEdits,\n\tcreateColorStyle: EDITS_TREE,\n\tsetColorStyleAttributes: EDITS_TREE,\n\tremoveColorStyle: EDITS_TREE,\n\tzoomIntoView: noTreeEdits,\n\tgetTextStyle: noTreeEdits,\n\tgetTextStyles: noTreeEdits,\n\tcreateTextStyle: EDITS_TREE,\n\tsetTextStyleAttributes: EDITS_TREE,\n\tremoveTextStyle: EDITS_TREE,\n\tgetFont: noTreeEdits,\n\tgetFonts: noTreeEdits,\n\tcreateLocale: EDITS_TREE,\n\tgetLocaleLanguages: noTreeEdits,\n\tgetLocaleRegions: noTreeEdits,\n\tgetDefaultLocale: noTreeEdits,\n\tgetActiveLocale: noTreeEdits,\n\tgetLocales: noTreeEdits,\n\tgetLocalizationGroups: noTreeEdits,\n\tsetLocalizationData: EDITS_TREE,\n\t// Code files don't currently live in the tree\n\t// REMOVE ONCE CODE FILE API ARE RELEASED AND NO MORE USAGE OF `unstable_` METHODS\n\tunstable_getCodeFiles: noTreeEdits,\n\tunstable_getCodeFile: noTreeEdits,\n\tunstable_createCodeFile: noTreeEdits,\n\tunstable_removeCodeFile: noTreeEdits,\n\tunstable_renameCodeFile: noTreeEdits,\n\tunstable_getCodeFileVersions: noTreeEdits,\n\tunstable_setCodeFileContent: noTreeEdits,\n\tunstable_getCodeFileVersionContent: noTreeEdits,\n\tunstable_getCodeFileLint2: noTreeEdits,\n\tunstable_getCodeFileTypecheck2: noTreeEdits,\n\t// END REMOVE\n\n\tgetCodeFiles: noTreeEdits,\n\tgetCodeFile: noTreeEdits,\n\tcreateCodeFile: noTreeEdits,\n\tremoveCodeFile: noTreeEdits,\n\trenameCodeFile: noTreeEdits,\n\tgetCodeFileVersions: noTreeEdits,\n\tsetCodeFileContent: noTreeEdits,\n\tgetCodeFileVersionContent: noTreeEdits,\n\t/** @deprecated The lintCode API was removed. */\n\tlintCode: noTreeEdits,\n\ttypecheckCode: noTreeEdits,\n\taddRedirects: EDITS_TREE,\n\tgetRedirects: noTreeEdits,\n\tsetRedirectOrder: EDITS_TREE,\n\tremoveRedirects: EDITS_TREE,\n\tgetRuntimeErrorForModule: noTreeEdits,\n\tgetRuntimeErrorForCodeComponentNode: noTreeEdits,\n\tunstable_getDependencyVersion: noTreeEdits,\n\tunstable_ensureMinimumDependencyVersion: noTreeEdits,\n\taddComponentInstancePlaceholder: noTreeEdits,\n\taddVariantToComponent: EDITS_TREE,\n\taddGestureVariantToComponent: EDITS_TREE,\n\treplaceComponentInstancePlaceholderWithComponentInstance: EDITS_TREE,\n\tupdateComponentInstancePlaceholder: noTreeEdits,\n\tremoveComponentInstancePlaceholder: noTreeEdits,\n\tshowProgressOnInstances: noTreeEdits,\n\tremoveProgressFromInstances: noTreeEdits,\n\tsetMenu: noTreeEdits,\n\tshowContextMenu: noTreeEdits,\n\tnavigateTo: noTreeEdits,\n\tgetBreakpointSuggestionsForWebPage: noTreeEdits,\n\taddBreakpointToWebPage: EDITS_TREE,\n\tgetActiveCollectionItemForWebPage: noTreeEdits,\n\tgetVariables: noTreeEdits,\n\taddVariables: EDITS_TREE,\n\tupdateVariable: EDITS_TREE,\n\tremoveVariables: EDITS_TREE,\n\tsetVariableOrder: EDITS_TREE,\n\tgetVectorSets: noTreeEdits,\n\tgetVectorSetItems: noTreeEdits,\n\tgetVectorSetItemVariables: noTreeEdits,\n\tcreateDesignPage: EDITS_TREE,\n\tcreateWebPage: EDITS_TREE,\n\n\t// Headless api\n\treadProjectForAgent: noTreeEdits,\n\tgetAgentSystemPrompt: noTreeEdits,\n\tgetAgentContext: noTreeEdits,\n\tapplyAgentChanges: EDITS_TREE,\n\tflattenComponentInstanceForAgent: EDITS_TREE,\n\tmakeExternalComponentLocalForAgent: EDITS_TREE,\n\tgetNodeForAgent: noTreeEdits,\n\tgetNodesForAgent: noTreeEdits,\n\tgetNodesOfTypesForAgent: noTreeEdits,\n\tgetScopeNodeForAgent: noTreeEdits,\n\tgetGroundNodeForAgent: noTreeEdits,\n\tgetParentNodeForAgent: noTreeEdits,\n\tgetAncestorsForAgent: noTreeEdits,\n\tserializeForAgent: noTreeEdits,\n\tserializeNodesForAgent: noTreeEdits,\n\tpaginateForAgent: noTreeEdits,\n\tpublishForAgent: EDITS_TREE,\n\tqueryImagesForAgent: noTreeEdits,\n\treviewChangesForAgent: noTreeEdits,\n\tstartAgentConversation: EDITS_TREE,\n\tcontinueAgentConversation: EDITS_TREE,\n\tsubmitAgentClarification: EDITS_TREE,\n\trunSupervisorAgentCommand: EDITS_TREE,\n\tgetChangedPaths: noTreeEdits,\n\tgetChangeContributors: noTreeEdits,\n\tpublish: EDITS_TREE,\n\tgetDeployments: noTreeEdits,\n\tdeploy: noTreeEdits,\n\tcreateManagedCollection: EDITS_TREE,\n\n\t// Internal\n\t[getAiServiceInfoMessageType]: noTreeEdits,\n\t[sendTrackingEventMessageType]: noTreeEdits,\n\t[getCurrentUserMessageType]: noTreeEdits,\n\t[getProjectInfoMessageType]: noTreeEdits,\n\t[getHTMLForNodeMessageType]: noTreeEdits,\n\t[setHTMLForNodeMessageType]: EDITS_TREE,\n\n\t// Deprecated internal\n\tgetAiServiceInfo: noTreeEdits,\n\tsendTrackingEvent: noTreeEdits,\n}\n", "import { assert, getLogger } from \"@framerjs/shared\"\n\nconst log = getLogger(\"pluginHealth\")\n\nenum HealthState {\n\tIdle,\n\tChecking,\n\tRunning,\n\tFailed,\n\tAborted,\n}\n\nconst retryDelay = 3 * 1000 // 3 Seconds\nconst maxRetries = 5\n\nexport class PluginHealth {\n\tprivate state: HealthState = HealthState.Idle\n\tprivate timer: number | NodeJS.Timeout | undefined\n\tprivate retryAttempt: number = 0\n\n\tconstructor(private readonly options: { onFailure: VoidFunction; signal: AbortSignal }) {\n\t\toptions.signal.addEventListener(\"abort\", () => this.abort(), { once: true })\n\t}\n\n\tstart() {\n\t\tassert(this.state === HealthState.Idle, `PluginHealth.start() called in invalid state: ${this.state}`)\n\t\tthis.state = HealthState.Checking\n\n\t\t// Must be \"typeof window\", otherwise you'll get a ReferenceError\n\t\tassert(typeof window !== \"undefined\", \"PluginHealth.start() called in an environment without window\")\n\n\t\tthis.retryAttempt = 0\n\t\tthis.checkHealth()\n\t}\n\n\trunning() {\n\t\tassert(this.state === HealthState.Checking, `PluginHealth.aliveSignal() called in invalid state: ${this.state}`)\n\n\t\tthis.clearTimer()\n\t\tthis.state = HealthState.Running\n\t}\n\n\tget isRunning() {\n\t\treturn this.state === HealthState.Running\n\t}\n\n\tprivate abort() {\n\t\tif (this.state !== HealthState.Checking) return\n\n\t\tthis.clearTimer()\n\t\tthis.state = HealthState.Aborted\n\t}\n\n\tprivate clearTimer() {\n\t\tif (this.timer) {\n\t\t\tclearTimeout(this.timer)\n\t\t\tthis.timer = undefined\n\t\t}\n\t}\n\n\tprivate checkHealth() {\n\t\tthis.clearTimer()\n\n\t\tif (this.state !== HealthState.Checking) return\n\n\t\tlog.debug(\"Retry attempt\", this.retryAttempt)\n\n\t\tthis.retryAttempt += 1\n\n\t\tif (this.retryAttempt >= maxRetries) {\n\t\t\tthis.state = HealthState.Failed\n\t\t\tthis.options.onFailure()\n\t\t\treturn\n\t\t}\n\n\t\tthis.timer = setTimeout(() => this.checkHealth(), retryDelay)\n\t}\n}\n\nexport const testing = {\n\tmaxRetries,\n\tretryDelay,\n}\n", "import { useSyncExternalStore } from \"react\"\nimport { isFunction } from \"utils/typeChecks.ts\"\n\nexport class RenderState<T extends object> {\n\tprivate readonly subscribers: Set<VoidFunction> = new Set()\n\n\tconstructor(private state: T) {}\n\n\treadonly getState = (): Readonly<T> => {\n\t\treturn this.state\n\t}\n\n\treadonly setState = (options: T | ((current: T) => T)) => {\n\t\tif (isFunction(options)) {\n\t\t\tthis.state = options(this.state)\n\t\t} else {\n\t\t\tthis.state = options\n\t\t}\n\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tsubscriber()\n\t\t}\n\t}\n\n\tprivate readonly subscribe = (callback: VoidFunction) => {\n\t\tthis.subscribers.add(callback)\n\t\treturn () => {\n\t\t\tthis.subscribers.delete(callback)\n\t\t}\n\t}\n\n\treadonly useState = (): Readonly<T> => {\n\t\treturn useSyncExternalStore(this.subscribe, this.getState)\n\t}\n}\n", "import { Components } from \"../context/components.ts\"\nimport { metadataTags } from \"../context/metadataTags.ts\"\nimport { StylePresets } from \"../context/stylePresets.ts\"\nimport { Tokens } from \"../context/tokens.ts\"\nimport { VectorSets } from \"../context/vectors.ts\"\nimport { getNodeExamplesIndex, initExamplesCache } from \"../examples/exampleLoader.ts\"\nimport type { Source } from \"../source.ts\"\nimport { buildComponentRules, buildVariables } from \"./componentRules.ts\"\nimport { buildCoreExamples } from \"./coreExamples.ts\"\nimport { buildCorePrinciples } from \"./corePrinciples.ts\"\nimport { buildRecipe, designRules, richTextRules, widthRules } from \"./designRules.ts\"\nimport { eventHandlers } from \"./eventHandlers.ts\"\nimport { buildIconRules } from \"./iconRules.ts\"\nimport { buildImplementationStrategy } from \"./implementation.ts\"\nimport { Markdown } from \"./markdown.ts\"\nimport { buildApiMessages } from \"./messages.ts\"\nimport { overlayRules } from \"./overlayRules.ts\"\nimport { buildOverview } from \"./overview.ts\"\nimport { buildProjectUpdates } from \"./projectUpdates.ts\"\nimport { GET_AGENT_CONTEXT_API_METHOD } from \"./promptEnv.ts\"\nimport { buildReplicas } from \"./replicas.ts\"\nimport { scopeTypes } from \"./scopeTypes.ts\"\nimport { AgentSystemPromptDictionary } from \"./systemPromptDictionary.ts\"\nimport { buildToolsPrompt } from \"./tools.ts\"\nimport { transitions } from \"./transitions.ts\"\nimport { escapeValue, formatNestedArray, traitValueReference } from \"./utils.ts\"\n\nconst projectContextMetadataTags = [\n\tmetadataTags.availableFonts,\n\tComponents.metadataTag,\n\tTokens.metadataTag,\n\tStylePresets.metadataTag,\n\tVectorSets.iconSetDefinitionTag,\n\tmetadataTags.siteMap,\n]\n\nconst projectContextSection = Markdown.section(\n\t\"Project Context\",\n\t`Metadata tags referenced throughout the prompt (${projectContextMetadataTags.map(tag => escapeValue(`<${tag}>`)).join(\", \")}) come from ${escapeValue(`${GET_AGENT_CONTEXT_API_METHOD}({ pagePath })`)}. Fetch the context before generating commands.`,\n\t`The ${escapeValue(`<${metadataTags.siteMap}>`)} tag is already included in that context; refresh project context after adding or removing pages.`,\n)\n\nexport async function buildExternalSystemPrompt(): Promise<string> {\n\tawait initExamplesCache()\n\n\tconst nodeExamplesIndex = await getNodeExamplesIndex()\n\n\tconst source: Source = { agent: \"api\", prompt: \"local\" }\n\n\treturn Markdown.serialize(\n\t\tbuildOverview(source, projectContextSection),\n\t\t...buildApiMessages(),\n\t\tbuildImplementationStrategy(source),\n\t\tbuildToolsPrompt(source),\n\t\tMarkdown.section(\"Design Rules\", ...designRules),\n\t\tbuildProjectUpdates(source),\n\t\tMarkdown.section(\"Core Principles\", buildCorePrinciples(source)),\n\t\tMarkdown.section(\n\t\t\t\"How Projects Work\",\n\t\t\t\"The sections below explain how to interact with a project.\",\n\t\t\tscopeTypes,\n\t\t\tbuildReplicas(source),\n\t\t\tMarkdown.section(\"Icons\", buildIconRules(source).trim()),\n\t\t\tbuildComponentRules(source),\n\t\t\tbuildVariables(source),\n\t\t\tMarkdown.section(\"Transitions\", ...transitions),\n\t\t\toverlayRules,\n\t\t\teventHandlers(source),\n\t\t\tMarkdown.section(\"Rich Text Structure\", formatNestedArray(richTextRules)),\n\t\t\tMarkdown.section(\n\t\t\t\t\"Style Rules\",\n\t\t\t\tMarkdown.section(\n\t\t\t\t\tAgentSystemPromptDictionary.WidthRules,\n\t\t\t\t\t\"**Treat every node as ONE of these roles, and apply width exactly as specified:**\",\n\t\t\t\t\tformatNestedArray(widthRules),\n\t\t\t\t),\n\t\t\t\tMarkdown.section(\n\t\t\t\t\t`Semantic rule for \\`${traitValueReference(\"width\", \"auto\")}\\`:`,\n\t\t\t\t\t`Treat \\`${traitValueReference(\"width\", \"auto\")}\\` as \"**shrink to just wrap the children**\".`,\n\t\t\t\t\t`- Use it only for **compact, inline-feeling UI** (buttons, badges, labels, icon chips, nav links, tags).`,\n\t\t\t\t\t`- **If in doubt between \\`${traitValueReference(\"width\", \"auto\")}\\` and \\`${traitValueReference(\"width\", \"100%\")}\\`: use \\`${traitValueReference(\"width\", \"100%\")}\\`.**`,\n\t\t\t\t),\n\t\t\t\tMarkdown.section(\"Recipe\", formatNestedArray(buildRecipe(source), 1)),\n\t\t\t),\n\t\t),\n\t\tMarkdown.section(AgentSystemPromptDictionary.ImplementationGuidanceDocumentationIndex, ...nodeExamplesIndex),\n\t\tMarkdown.section(\n\t\t\tAgentSystemPromptDictionary.CoreExamples,\n\t\t\t\"Use these examples to guide resolving ambiguous user requests into concrete Framer outputs.\",\n\t\t\tawait buildCoreExamples(source),\n\t\t),\n\t)\n}\n", "import { getRawWebPagePath } from \"document/components/utils/getWebPagePath.ts\"\nimport type { CanvasTree } from \"document/models/CanvasTree/CanvasTree.ts\"\nimport { isWebPageNode } from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport { getCollectionNameForPage, normalizeRouteForLLM } from \"../utils/siteMap.ts\"\n\nexport function getSitemap(tree: CanvasTree): Record<string, string> {\n\tconst sitemap: Record<string, string> = {}\n\n\tfor (const node of tree.root.children) {\n\t\t// Exclude A/B test variants to avoid multiple pages mapping to the same path\n\t\tif (!isWebPageNode(node) || node.abTestingParentId) continue\n\t\tconst route = getRawWebPagePath(tree, node)\n\t\tif (!route) continue\n\n\t\tconst collectionName = getCollectionNameForPage(tree, node)\n\t\tsitemap[node.id] = normalizeRouteForLLM(route, collectionName)\n\t}\n\n\treturn sitemap\n}\n", "import { assert, emptyArray } from \"@framerjs/shared\"\nimport type { ModelMessage, ToolExecutionOptions } from \"ai\"\nimport { createAgentAttachmentImage, type AgentAttachmentImage } from \"app/agent/attachments.ts\"\nimport { type RepairInfo, StreamingDSLParser } from \"app/ai/StreamingDSLParser.ts\"\nimport { Agent } from \"app/ai/agents/Agent.ts\"\nimport { getCommandTouchedNodeIds } from \"app/ai/agents/commandTargets.ts\"\nimport type { AgentContext, AgentContextDependencies } from \"app/ai/agents/context/AgentContext.ts\"\nimport type { ErrorResult } from \"app/ai/agents/context/issues.ts\"\nimport { metadataTags } from \"app/ai/agents/context/metadataTags.ts\"\nimport type { AIContextNode } from \"app/ai/agents/context/nodes.ts\"\nimport {\n\tCOMMAND_SEPARATOR,\n\ttype Command,\n\tQUOTE_REPAIR_WARNING,\n\tisDSLCommandStart,\n\tparseDSLCommand,\n} from \"app/ai/agents/dsl.ts\"\nimport { getPendingClarificationQuestions } from \"app/ai/agents/getPendingClarificationQuestions.ts\"\nimport { createProcessCommand } from \"app/ai/agents/processCommand.ts\"\nimport { buildExternalSystemPrompt } from \"app/ai/agents/prompt/externalSystemPrompt.ts\"\nimport { getSitemap } from \"app/ai/agents/sitemap.ts\"\nimport type { ClarificationQuestion } from \"app/ai/agents/tools/askClarification.ts\"\nimport { executeFlattenComponentInstance } from \"app/ai/agents/tools/flattenComponentInstance.ts\"\nimport { createMakeExternalComponentLocalTool } from \"app/ai/agents/tools/makeExternalComponentLocal.ts\"\nimport { PublishInputSchema, executePublish } from \"app/ai/agents/tools/publish.ts\"\nimport { QueryImagesInputSchema, executeQueryImages } from \"app/ai/agents/tools/queryImages.ts\"\nimport { ReadProjectInputSchema, readProject } from \"app/ai/agents/tools/readProject.ts\"\nimport { paginate, type PaginateCursorResult } from \"app/ai/agents/tools/script/paginate.ts\"\nimport type { AIContextNodeWithSpine } from \"app/ai/agents/tools/script/types.ts\"\nimport { collectCanvasNodes, serializeCanvasNodeWithOptions } from \"app/ai/agents/treeTraversal.ts\"\nimport { LanguageModel as VekterLanguageModel } from \"app/ai/languageModels.ts\"\nimport { createPageRouteLookup } from \"app/ai/utils/siteMap.ts\"\nimport type { VekterEngine } from \"document/VekterEngine.ts\"\nimport { TaskScheduler } from \"document/loader/TaskScheduler.ts\"\nimport { type LoadedScopeNode, isScopeNode } from \"document/models/CanvasTree/index.ts\"\nimport { randomID } from \"document/models/CanvasTree/nodes/NodeID.ts\"\nimport { isWebPageNode } from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport { isImageUploadResult, uploadService } from \"web/pages/project/lib/UploadService.ts\"\nimport type { z } from \"zod/v4\"\nimport type {\n\tAgentClarificationQuestion,\n\tContinueAgentConversationOptions,\n\tContinueAgentConversationResult,\n\tStartAgentConversationOptions,\n\tStartAgentConversationResult,\n\tSubmitAgentClarificationOptions,\n\tSubmitAgentClarificationResult,\n} from \"#framer-plugin/agent.ts\"\nimport { PluginOnlyError } from \"./pluginErrors.ts\"\n\nexport const agentConversationMaxEntries = 100\n\nasync function resolveScopeId(engine: VekterEngine, pagePath: string): Promise<string | undefined> {\n\tconst pageLookup = createPageRouteLookup(engine.tree)\n\tconst pageId = pageLookup.get(pagePath)\n\tif (!pageId) return undefined\n\n\tconst pageNode = engine.tree.getNode(pageId)\n\tif (!pageNode || !isWebPageNode(pageNode)) return undefined\n\n\tif (!pageNode.isLoaded()) await pageNode.load()\n\n\treturn pageId\n}\n\nexport function buildDeps(engine: VekterEngine): AgentContextDependencies {\n\treturn {\n\t\ttreeStore: engine.stores.treeStore,\n\t\tmodulesStore: engine.stores.modulesStore,\n\t\tvectorsStore: engine.stores.vectorsStore,\n\t\tformsStore: engine.stores.formsStore,\n\t\tsessionStore: engine.stores.sessionStore,\n\t\tcodeGenerationStore: engine.stores.codeGenerationStore,\n\t\tscheduler: engine.scheduler,\n\t\tcomponentLoader: engine.componentLoader,\n\t\thooks: { getEngine: () => engine },\n\t\tsource: { agent: \"api\", prompt: \"local\" },\n\t\tprojectId: engine.stores.projectStore.projectId,\n\t}\n}\n\ntype InvokeAgentDependencies = ConstructorParameters<typeof Agent>[3]\n\nfunction buildInvokeAgentDependencies(engine: VekterEngine): InvokeAgentDependencies {\n\treturn {\n\t\t...buildDeps(engine),\n\t\tsource: { agent: \"api\", prompt: \"in-app\" },\n\t\tisFollowModeEnabled: () => false,\n\t\tselectScopeByAgent: () => {\n\t\t\tthrow new Error(\n\t\t\t\t\"Headless agent conversations do not support selectScopeByAgent; this should not be called with isFollowModeEnabled() === false\",\n\t\t\t)\n\t\t},\n\t\tgetActiveScopeId: () => engine.stores.scopeStore.active.id,\n\t}\n}\n\ninterface ParsedCommand {\n\tcommand: Command\n\traw: string\n}\n\nexport type AgentContextCache = Map<string, AgentContext>\n\nexport async function resolveScope(engine: VekterEngine, pagePath?: string): Promise<LoadedScopeNode> {\n\tconst scopeId = pagePath ? await resolveScopeId(engine, pagePath) : engine.stores.scopeStore.active.id\n\tif (!scopeId) throw new PluginOnlyError(`Page not found: ${pagePath}`)\n\n\treturn resolveScopeById(engine, scopeId)\n}\n\nasync function resolveScopeById(engine: VekterEngine, scopeId: string): Promise<LoadedScopeNode> {\n\tconst scopeNode = engine.tree.getNodeWithTrait(scopeId, isScopeNode)\n\tif (!scopeNode) throw new Error(`Scope node not found: ${scopeId}`)\n\tif (!scopeNode.isLoaded()) await scopeNode.load()\n\tassert(scopeNode.isLoaded(), \"Scope node must be loaded\")\n\n\treturn scopeNode\n}\n\nexport async function runReadProject(\n\tengine: VekterEngine,\n\tctx: AgentContext,\n\tqueries: Record<string, unknown>[],\n\tsessionId: string,\n): Promise<{ results: unknown[] }> {\n\tconst parsed = parseInputForPlugin(ReadProjectInputSchema, { queries })\n\tconst response = await readProject(\n\t\tparsed.queries,\n\t\tengine.tree,\n\t\tctx,\n\t\t{\n\t\t\tfeatureName: \"server-api-agents\",\n\t\t\tsessionId,\n\t\t},\n\t\tundefined,\n\t)\n\n\treturn { results: response.queryResults }\n}\n\nexport async function runPublish(ctx: AgentContext, input: Record<string, unknown> | undefined): Promise<unknown> {\n\tconst parsed = parseInputForPlugin(PublishInputSchema, input ?? {})\n\treturn executePublish(ctx, parsed)\n}\n\nexport async function runQueryImages(ctx: AgentContext, input: Record<string, unknown>): Promise<unknown> {\n\tconst parsed = parseInputForPlugin(QueryImagesInputSchema, input)\n\treturn executeQueryImages(parsed, ctx.files)\n}\n\nfunction parseInputForPlugin<T>(schema: z.ZodType<T>, input: unknown): T {\n\tconst result = schema.safeParse(input)\n\tif (result.success) return result.data\n\n\tthrow new PluginOnlyError(result.error.message)\n}\n\nexport async function runFlattenComponentInstance(\n\tengine: VekterEngine,\n\tctx: AgentContext,\n\tinput: { id: string },\n): Promise<unknown> {\n\tconst changeset = engine.stores.treeStore.tree.changeset({\n\t\tname: \"agent.flattenComponentInstance\",\n\t})\n\tctx.updateTurnChangeset(changeset)\n\ttry {\n\t\treturn await executeFlattenComponentInstance(input, ctx)\n\t} finally {\n\t\tctx.updateTurnChangeset(undefined)\n\t}\n}\n\nexport async function runMakeExternalComponentLocal(\n\tengine: VekterEngine,\n\tctx: AgentContext,\n\tinput: { id: string; replaceAll?: boolean },\n): Promise<unknown> {\n\tconst changeset = engine.stores.treeStore.tree.changeset({\n\t\tname: \"agent.makeExternalComponentLocal\",\n\t})\n\tctx.updateTurnChangeset(changeset)\n\ttry {\n\t\tconst tool = createMakeExternalComponentLocalTool(ctx, async () => {})\n\t\tassert(tool.execute, \"Expected make_external_component_local tool to be executable\")\n\t\tconst executionOptions: ToolExecutionOptions = {\n\t\t\ttoolCallId: randomID(),\n\t\t\tmessages: [],\n\t\t\tabortSignal: new AbortController().signal,\n\t\t}\n\t\treturn await tool.execute(input, executionOptions)\n\t} finally {\n\t\tctx.updateTurnChangeset(undefined)\n\t}\n}\n\nexport async function runSerialize(\n\tctx: AgentContext,\n\tinput: { id: string; depth?: number; attributeFilter?: readonly string[]; ancestorPath?: boolean },\n): Promise<AIContextNode | AIContextNodeWithSpine | null> {\n\tconst taskScheduler = new TaskScheduler().fast()\n\n\tconst node = ctx.treeResolver.get(input.id)\n\tif (!node) return null\n\n\treturn serializeCanvasNodeWithOptions(ctx, node, input, taskScheduler)\n}\n\nexport async function runSerializeNodes(\n\tctx: AgentContext,\n\tinput: {\n\t\tids: readonly string[]\n\t\tdepth?: number\n\t\tattributeFilter?: readonly string[]\n\t\tancestorPath?: boolean\n\t},\n): Promise<(AIContextNode | AIContextNodeWithSpine)[]> {\n\tconst taskScheduler = new TaskScheduler().fast()\n\tconst serializedNodes: (AIContextNode | AIContextNodeWithSpine)[] = []\n\n\tfor (const node of collectCanvasNodes(ctx, input.ids)) {\n\t\tawait taskScheduler.yield()\n\t\tconst serialized = await serializeCanvasNodeWithOptions(ctx, node, input, taskScheduler)\n\t\tif (serialized) serializedNodes.push(serialized)\n\t}\n\n\treturn serializedNodes\n}\n\nexport async function runPaginate(\n\tctx: AgentContext,\n\tinput:\n\t\t| { items: readonly unknown[]; keyName?: never; cursor?: never }\n\t\t| { keyName: string; cursor: number; items?: never },\n): Promise<PaginateCursorResult> {\n\tif (input.items !== undefined) {\n\t\treturn paginate(ctx, input.items, undefined)\n\t}\n\n\treturn paginate(ctx, input.keyName, input.cursor)\n}\n\nexport async function runApplyAgentChanges(engine: VekterEngine, ctx: AgentContext, dsl: string): Promise<void> {\n\tconst changeset = engine.stores.treeStore.tree.changeset({\n\t\tname: \"agent.applyAgentChanges\",\n\t})\n\tctx.updateTurnChangeset(changeset)\n\n\tasync function synchronize() {\n\t\tawait ctx.deferred.flush(ctx)\n\n\t\tconst currentEngine = ctx.hooks.getEngine()\n\t\tassert(currentEngine, \"Engine is required\")\n\t\tawait ctx.deferred.flushTextFitUpdates(currentEngine, fn =>\n\t\t\tengine.scheduler.scheduleAgentChanges(() => changeset.append(fn)),\n\t\t)\n\n\t\tawait ctx.files.finalize()\n\t\tctx.issues.finalizeStep(ctx.treeResolver.getUninsertedNodes())\n\t\tawait ctx.forms.finalize()\n\t}\n\n\ttry {\n\t\tconst commands = parseDSLString(dsl, repairInfo =>\n\t\t\tctx.issues.warning(repairInfo.repairedRaw, { syntax: QUOTE_REPAIR_WARNING }),\n\t\t)\n\n\t\tconst processCommand = createProcessCommand(engine.stores.treeStore, ctx.scopeNode, ctx, (fn: VoidFunction) =>\n\t\t\tengine.scheduler.scheduleAgentChanges(() => {\n\t\t\t\tfn()\n\t\t\t\tctx.deferred.applyTraits(ctx)\n\t\t\t}),\n\t\t)\n\n\t\tfor (const { command, raw } of commands) {\n\t\t\ttry {\n\t\t\t\tawait processCommand(command, raw)\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof Error) {\n\t\t\t\t\tconst nodeIds = getCommandTouchedNodeIds(command, ctx)\n\t\t\t\t\tctx.issues.error(raw, error, { nodeIds })\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (ctx.deferred.hasPendingTraits()) {\n\t\t\tawait engine.scheduler.processWhenReadyAsync(() => ctx.deferred.applyTraits(ctx))\n\t\t}\n\n\t\tawait synchronize()\n\t} finally {\n\t\tctx.updateTurnChangeset(undefined)\n\t}\n\n\tawait ctx.deferred.flushAllPendingCodeGenerations()\n}\n\nfunction parseDSLString(dsl: string, onRepair?: (info: RepairInfo) => void): ParsedCommand[] {\n\tconst commands: ParsedCommand[] = []\n\tconst parseErrors: ErrorResult[] = []\n\tconst parser = new StreamingDSLParser(\n\t\tCOMMAND_SEPARATOR,\n\t\tparseDSLCommand,\n\t\t(command, raw) => commands.push({ command, raw }),\n\t\t{\n\t\t\tisCommandStart: isDSLCommandStart,\n\t\t\tonRepair,\n\t\t\tonError: (error, raw) => parseErrors.push({ statement: raw, error: error.message }),\n\t\t},\n\t)\n\tparser.addToken(dsl)\n\tparser.finalize()\n\n\tif (parseErrors.length > 0) {\n\t\tconst n = parseErrors.length\n\t\tconst details = parseErrors.map(e => `  ${e.statement} \u2014 ${e.error}`).join(\"\\n\")\n\t\tthrow new PluginOnlyError(`Failed to parse ${n} DSL command${n > 1 ? \"s\" : \"\"}:\\n${details}`)\n\t}\n\n\treturn commands\n}\n\nexport async function getAgentSystemPrompt(): Promise<string> {\n\treturn buildExternalSystemPrompt()\n}\n\nexport async function getAgentContext(engine: VekterEngine, ctx: AgentContext): Promise<string> {\n\tconst contextMessages = ctx.contextMessages()\n\n\tconst siteMap = getSitemap(engine.tree)\n\tcontextMessages.push(`<${metadataTags.siteMap}>${JSON.stringify(siteMap)}</${metadataTags.siteMap}>`)\n\n\treturn contextMessages.join(\"\\n\\n\")\n}\n\ninterface AgentConversation {\n\tmodel: VekterLanguageModel\n\tagent: Agent\n\t/** The response that\u2019s currently being generated. Could be paused without resolving if a model requests clarification. */\n\tinProgressResponse: Promise<{ responseMessages: readonly ModelMessage[] }> | null\n}\n\ninterface SerializedAgentResponseMessage {\n\trole: \"assistant\"\n\tcontent: readonly SerializedAgentResponseContentPart[]\n}\n\ntype SerializedAgentResponseContentPart =\n\t| { type: \"reasoning\" }\n\t| { type: \"text\"; text: string }\n\t| { type: \"tool-call\"; toolName: string; input: unknown }\n\nclass AgentConversationCache {\n\tprivate readonly conversations = new Map<string, AgentConversation>()\n\n\tconstructor(private readonly maxEntries: number) {}\n\n\tget(conversationId: string): AgentConversation | undefined {\n\t\tconst conversation = this.conversations.get(conversationId)\n\t\tif (!conversation) return undefined\n\n\t\tthis.conversations.delete(conversationId)\n\t\tthis.conversations.set(conversationId, conversation)\n\t\treturn conversation\n\t}\n\n\tset(conversationId: string, conversation: AgentConversation): void {\n\t\tif (this.conversations.has(conversationId)) {\n\t\t\tthis.conversations.delete(conversationId)\n\t\t}\n\n\t\tthis.conversations.set(conversationId, conversation)\n\t\tthis.evictLeastRecentlyUsedConversation()\n\t}\n\n\tdelete(conversationId: string): void {\n\t\tconst conversation = this.conversations.get(conversationId)\n\t\tif (!conversation) return\n\n\t\tvoid conversation.agent.stop()\n\t\tthis.conversations.delete(conversationId)\n\t}\n\n\tclear(): void {\n\t\tfor (const conversation of this.conversations.values()) {\n\t\t\tvoid conversation.agent.stop()\n\t\t}\n\n\t\tthis.conversations.clear()\n\t}\n\n\tprivate evictLeastRecentlyUsedConversation(): void {\n\t\twhile (this.conversations.size > this.maxEntries) {\n\t\t\t// FIXME: When shipping this to production, we must make sure convos waiting for clarification are not evicted.\n\t\t\tconst oldestConversationId = this.conversations.keys().next().value\n\t\t\tif (oldestConversationId === undefined) return\n\n\t\t\tthis.delete(oldestConversationId)\n\t\t}\n\t}\n}\n\nexport class AgentConversationManager {\n\tprivate readonly conversations = new AgentConversationCache(agentConversationMaxEntries)\n\n\tconstructor(private readonly engine: VekterEngine) {}\n\n\tasync startConversation(\n\t\tprompt: string,\n\t\toptions?: StartAgentConversationOptions,\n\t): Promise<StartAgentConversationResult> {\n\t\tconst conversationId = randomID()\n\t\tconst conversation = await createAgentConversation(this.engine, conversationId, options)\n\t\tthis.conversations.set(conversationId, conversation)\n\n\t\ttry {\n\t\t\tconst turnResult = await this.runTurn(prompt, conversationId, conversation, {\n\t\t\t\timageUrls: options?.imageUrls,\n\t\t\t\tselectionNodeIds: options?.selectionNodeIds,\n\t\t\t})\n\t\t\t// The clarification tool is disabled in API agents as of Apr 2026. We keep the implementation for now. https://framer-team.slack.com/archives/C0AB7T715QV/p1776767450851439?thread_ts=1776685390.852979&cid=C0AB7T715QV\n\t\t\tassert(\"responseMessages\" in turnResult, \"Expected an agent response but received clarification questions\")\n\t\t\treturn { conversationId, ...turnResult }\n\t\t} catch (error) {\n\t\t\tthis.conversations.delete(conversationId)\n\t\t\tthrow error\n\t\t}\n\t}\n\n\tasync continueConversation(\n\t\tprompt: string,\n\t\toptions: ContinueAgentConversationOptions,\n\t): Promise<ContinueAgentConversationResult> {\n\t\tconst conversation = this.conversations.get(options.conversationId)\n\t\tassert(conversation, `Unknown conversationId: ${options.conversationId}`)\n\n\t\treturn this.runTurn(prompt, options.conversationId, conversation, {\n\t\t\timageUrls: options.imageUrls,\n\t\t\tselectionNodeIds: options.selectionNodeIds,\n\t\t})\n\t}\n\n\tasync submitClarification(options: SubmitAgentClarificationOptions): Promise<SubmitAgentClarificationResult> {\n\t\tconst conversation = this.conversations.get(options.conversationId)\n\t\tassert(conversation, `Unknown conversationId: ${options.conversationId}`)\n\t\tassert(conversation.inProgressResponse, `Conversation \"${options.conversationId}\" has no pending clarification`)\n\t\tconst inProgressResponse = conversation.inProgressResponse\n\t\tassert(\n\t\t\tconversation.agent.state === \"waiting-for-clarification\",\n\t\t\t`Conversation \"${options.conversationId}\" is not waiting for clarification`,\n\t\t)\n\n\t\tconst clarificationQuestions = getPendingClarificationQuestions(conversation.agent.chatMessages)\n\t\tassert(clarificationQuestions, `Conversation \"${options.conversationId}\" has no pending clarification`)\n\n\t\tconversation.agent.submitClarification(options.answers)\n\n\t\ttry {\n\t\t\tconst { responseMessages } = await inProgressResponse\n\t\t\tif (conversation.inProgressResponse === inProgressResponse) {\n\t\t\t\tconversation.inProgressResponse = null\n\t\t\t}\n\t\t\treturn { responseMessages: serializeAgentResponseMessagesForApi(responseMessages) }\n\t\t} catch (error) {\n\t\t\tif (conversation.inProgressResponse === inProgressResponse) {\n\t\t\t\tconversation.inProgressResponse = null\n\t\t\t}\n\t\t\tthrow error\n\t\t}\n\t}\n\n\tstop(): void {\n\t\tthis.conversations.clear()\n\t}\n\n\tprivate async runTurn(\n\t\tprompt: string,\n\t\tconversationId: string,\n\t\tconversation: AgentConversation,\n\t\toptions?: Pick<ContinueAgentConversationOptions, \"imageUrls\" | \"selectionNodeIds\">,\n\t): Promise<ContinueAgentConversationResult> {\n\t\tassert(!conversation.inProgressResponse, `Conversation \"${conversationId}\" already has a running turn`)\n\n\t\tconst inProgressResponse = requestAgentResponse(this.engine, prompt, conversation, options)\n\t\tconversation.inProgressResponse = inProgressResponse\n\n\t\ttry {\n\t\t\tconst result = await waitForResponseOrClarificationNeeded(conversation, inProgressResponse)\n\t\t\tif (\"responseMessages\" in result) {\n\t\t\t\tconversation.inProgressResponse = null\n\t\t\t}\n\t\t\treturn result\n\t\t} catch (error) {\n\t\t\tif (conversation.inProgressResponse === inProgressResponse) {\n\t\t\t\tconversation.inProgressResponse = null\n\t\t\t}\n\t\t\tthrow error\n\t\t}\n\t}\n}\n\nasync function createAgentConversation(\n\tengine: VekterEngine,\n\tconversationId: string,\n\toptions?: StartAgentConversationOptions,\n): Promise<AgentConversation> {\n\tconst scopeNode = await resolveScope(engine, options?.pagePath)\n\n\treturn {\n\t\tmodel: VekterLanguageModel.ClaudeOpus46,\n\t\tagent: new Agent(conversationId, scopeNode.id, options?.selectionNodeIds, buildInvokeAgentDependencies(engine)),\n\t\tinProgressResponse: null,\n\t}\n}\n\nasync function requestAgentResponse(\n\tengine: VekterEngine,\n\tprompt: string,\n\tconversation: AgentConversation,\n\toptions?: Pick<ContinueAgentConversationOptions, \"imageUrls\" | \"selectionNodeIds\">,\n): Promise<{ responseMessages: readonly ModelMessage[] }> {\n\tawait resolveScopeById(engine, conversation.agent.scopeId)\n\n\tconst selectionNodeIds = validateSelectionNodeIds(engine, options?.selectionNodeIds ?? [])\n\tconst uploadedImages = await uploadImagesForAgent(options?.imageUrls ?? [])\n\tconst result = await conversation.agent.send(\n\t\t[prompt],\n\t\tselectionNodeIds,\n\t\tconversation.model,\n\t\tundefined,\n\t\tuploadedImages,\n\t\temptyArray(),\n\t\t{ propagateErrors: true, skipTitleGeneration: true },\n\t)\n\tif (!result) throw new PluginOnlyError(\"Agent turn was cancelled\")\n\n\treturn {\n\t\tresponseMessages: result.responseMessages,\n\t}\n}\n\nasync function waitForResponseOrClarificationNeeded(\n\tconversation: AgentConversation,\n\tinProgressResponse: Promise<{ responseMessages: readonly ModelMessage[] }>,\n): Promise<ContinueAgentConversationResult> {\n\tconst controller = new AbortController()\n\n\ttry {\n\t\treturn await Promise.race([\n\t\t\tinProgressResponse.then(({ responseMessages }) => ({\n\t\t\t\tresponseMessages: serializeAgentResponseMessagesForApi(responseMessages),\n\t\t\t})),\n\t\t\tcreatePendingClarificationRace(conversation.agent, controller.signal).then(clarificationQuestions => ({\n\t\t\t\tclarificationQuestions: serializeClarificationQuestionsForApi(clarificationQuestions),\n\t\t\t})),\n\t\t])\n\t} finally {\n\t\tcontroller.abort()\n\t}\n}\n\nfunction createPendingClarificationRace(agent: Agent, signal?: AbortSignal): Promise<readonly ClarificationQuestion[]> {\n\treturn new Promise<readonly ClarificationQuestion[]>(resolve => {\n\t\tlet done = false\n\t\tlet unsubscribe = () => {}\n\n\t\tconst resolveIfPending = () => {\n\t\t\tif (done) return\n\t\t\tconst clarificationQuestions = getPendingClarificationQuestions(agent.chatMessages)\n\t\t\tif (!clarificationQuestions) return\n\n\t\t\tdone = true\n\t\t\tunsubscribe()\n\t\t\tresolve(clarificationQuestions)\n\t\t}\n\n\t\tunsubscribe = agent.subscribe(resolveIfPending)\n\t\tresolveIfPending()\n\t\tsignal?.addEventListener(\n\t\t\t\"abort\",\n\t\t\t() => {\n\t\t\t\tdone = true\n\t\t\t\tunsubscribe()\n\t\t\t},\n\t\t\t{ once: true },\n\t\t)\n\t})\n}\n\nfunction serializeAgentResponseMessagesForApi(\n\tresponseMessages: readonly ModelMessage[],\n): readonly SerializedAgentResponseMessage[] {\n\tconst serializedMessages: SerializedAgentResponseMessage[] = []\n\n\tfor (const message of responseMessages) {\n\t\tif (message.role !== \"assistant\") continue\n\n\t\tconst serializedContent: SerializedAgentResponseContentPart[] = []\n\t\tif (typeof message.content === \"string\") {\n\t\t\tserializedContent.push({ type: \"text\", text: message.content })\n\t\t} else {\n\t\t\tfor (const part of message.content) {\n\t\t\t\tswitch (part.type) {\n\t\t\t\t\tcase \"reasoning\":\n\t\t\t\t\t\tserializedContent.push({ type: \"reasoning\" })\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tserializedContent.push({ type: \"text\", text: part.text })\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase \"tool-call\":\n\t\t\t\t\t\tserializedContent.push({ type: \"tool-call\", toolName: part.toolName, input: part.input })\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (serializedContent.length === 0) continue\n\n\t\tserializedMessages.push({\n\t\t\trole: \"assistant\",\n\t\t\tcontent: serializedContent,\n\t\t})\n\t}\n\n\treturn serializedMessages\n}\n\nfunction serializeClarificationQuestionsForApi(\n\tclarificationQuestions: readonly ClarificationQuestion[],\n): readonly AgentClarificationQuestion[] {\n\treturn clarificationQuestions.map(({ question, suggestedAnswers }) => ({\n\t\tquestion,\n\t\tsuggestedAnswers: suggestedAnswers.map(suggestedAnswer =>\n\t\t\ttypeof suggestedAnswer === \"string\"\n\t\t\t\t? suggestedAnswer\n\t\t\t\t: {\n\t\t\t\t\t\tanswer: suggestedAnswer.answer,\n\t\t\t\t\t\tdescription: suggestedAnswer.description,\n\t\t\t\t\t},\n\t\t),\n\t}))\n}\n\nfunction validateSelectionNodeIds(engine: VekterEngine, selectionNodeIds: readonly string[]): readonly string[] {\n\tif (selectionNodeIds.length === 0) return selectionNodeIds\n\n\tconst missing = selectionNodeIds.filter(nodeId => !engine.tree.get(nodeId))\n\tassert(missing.length === 0, `Invalid selectionNodeIds: these nodes do not exist: ${missing.join(\", \")}`)\n\n\treturn selectionNodeIds\n}\n\nasync function uploadImagesForAgent(imageUrls: readonly string[]): Promise<readonly AgentAttachmentImage[]> {\n\treturn Promise.all(\n\t\timageUrls.map(async url => {\n\t\t\tconst result = await uploadService.uploadAssetByURL(url, { silent: true })\n\t\t\tassert(isImageUploadResult(result), `Expected image URL, got non-image asset for: ${url}`)\n\n\t\t\treturn createAgentAttachmentImage(result)\n\t\t}),\n\t)\n}\n", "import type { AssetReference, AssetReferenceParseResult, AssetSize } from \"@framerjs/assets\"\nimport {\n\tcreateAbsoluteAssetURL,\n\tcreateAbsoluteImageAssetURL,\n\tcreateAssetReferenceFromParseResult,\n\tparseAssetReference,\n} from \"@framerjs/assets\"\nimport { assert, assertNever } from \"@framerjs/shared\"\nimport { Dictionary } from \"app/dictionary.ts\"\nimport type { AssetUploadResult } from \"web/pages/project/lib/UploadService.ts\"\nimport { uploadService } from \"web/pages/project/lib/UploadService.ts\"\nimport type { AssetId, FileAssetData, ImageAssetData, NamedAssetTransfer } from \"#framer-plugin/assets.ts\"\nimport { PluginOnlyError } from \"./pluginErrors.ts\"\n\n/**\n * The PluginAssetResolver acts as a proxy between Framer asset references and\n * plugins. Any framer asset reference that is encountered is stored in the\n * PluginAssetResolver and given a unique ID.\n *\n * Plugins work with this ID and are not exposed to framer asset references\n * which are strings that have a meaning and match a certain format.\n */\n\nexport class PluginAssetResolver {\n\tprivate readonly seenAssetReferences = new Map<AssetId, \"file\" | \"image\">()\n\t/**\n\t * Stores the full parsed asset reference for each asset ID.\n\t * This allows access to all original asset reference fields (e.g. originalFilename, fileExtension, etc)\n\t * for use in getVekterAssetReference and other consumers.\n\t */\n\tprivate readonly assetDetailsById = new Map<AssetId, AssetReferenceParseResult>()\n\n\taddFile(framerReference: AssetReference): FileAssetData {\n\t\tconst parsedReference = parseAssetReference(framerReference)\n\t\tassert(parsedReference, \"Failed to parse asset reference\")\n\n\t\tconst assetId = parsedReference.identifier\n\t\tthis.seenAssetReferences.set(assetId, \"file\")\n\t\tthis.assetDetailsById.set(assetId, parsedReference)\n\n\t\tconst url = createAbsoluteAssetURL(assetId)\n\n\t\tconst fileData: FileAssetData = {\n\t\t\t__class: \"FileAsset\",\n\t\t\tid: assetId,\n\t\t\turl,\n\t\t\textension: parsedReference.fileExtension,\n\t\t}\n\n\t\treturn fileData\n\t}\n\n\taddImage(framerReference: AssetReference, altText: string | undefined): ImageAssetData {\n\t\tconst parsedReference = parseAssetReference(framerReference)\n\t\tassert(parsedReference, \"Failed to parse asset reference\")\n\n\t\tconst assetId = parsedReference.identifier\n\t\tthis.seenAssetReferences.set(assetId, \"image\")\n\t\tthis.assetDetailsById.set(assetId, parsedReference)\n\n\t\tconst url = createAbsoluteImageAssetURL(assetId)\n\t\tconst thumbnailUrl = createAbsoluteImageAssetURL(assetId, 512)\n\n\t\tconst imageData: ImageAssetData = {\n\t\t\t__class: \"ImageAsset\",\n\t\t\tid: assetId,\n\t\t\tthumbnailUrl,\n\t\t\turl,\n\t\t\taltText,\n\t\t\tresolution: parsedReference.preferredSize ?? \"auto\",\n\t\t}\n\n\t\treturn imageData\n\t}\n\n\tgetUrl(assetId: AssetId, resolution: AssetSize): string | undefined {\n\t\tconst seenAssetReference = this.seenAssetReferences.get(assetId)\n\n\t\tif (!seenAssetReference) {\n\t\t\tthrow new PluginOnlyError(\"Asset ID not found\")\n\t\t}\n\n\t\tif (seenAssetReference === \"image\") {\n\t\t\treturn createAbsoluteImageAssetURL(assetId, undefined, resolution === \"lossless\")\n\t\t}\n\n\t\treturn createAbsoluteAssetURL(assetId)\n\t}\n\n\tgetVekterAssetReference(assetId: AssetId, assetSize: AssetSize | undefined): AssetReference {\n\t\tif (!this.seenAssetReferences.has(assetId)) {\n\t\t\tthrow new PluginOnlyError(\"Asset ID not found\")\n\t\t}\n\n\t\tconst assetDetails = this.assetDetailsById.get(assetId)\n\t\tassert(assetDetails, \"Expected to find asset details for the given pluginImageId\")\n\n\t\tconst reference = createAssetReferenceFromParseResult({\n\t\t\t...assetDetails,\n\t\t\tpreferredSize: assetSize ?? assetDetails.preferredSize,\n\t\t})\n\n\t\treturn reference\n\t}\n}\n\nexport async function uploadFileAssetFromDataTransfer(input: NamedAssetTransfer): Promise<AssetUploadResult> {\n\tif (input.type === \"bytes\") {\n\t\tconst blob = new Blob([input.bytes], { type: input.mimeType })\n\t\tconst file = new File([blob], input.name ?? Dictionary.Unknown, { type: input.mimeType })\n\n\t\tconst result = await uploadService.uploadFile(file)\n\t\tif (!result) throw new Error(\"Failed to upload file\")\n\n\t\treturn result\n\t}\n\n\tif (input.type === \"url\") {\n\t\tconst result = await uploadService.uploadAssetByURL(input.url)\n\t\tif (!result) throw new Error(\"Failed to upload file\")\n\n\t\treturn result\n\t}\n\n\tassertNever(input)\n}\n", "import type { User as FramerUser } from \"@framerjs/app-shared\"\nimport { murmurHash } from \"@framerjs/shared\"\nimport type { VekterEngine } from \"document/VekterEngine.ts\"\nimport { sha256 } from \"utils/sha256.ts\"\nimport { isDefined } from \"utils/typeChecks.ts\"\nimport { apiFetcher } from \"web/lib/apiFetcher.ts\"\nimport type { User as PluginUser } from \"#framer-plugin/user.ts\"\n\nexport async function framerUserToPluginUser({ id, name, avatar, initials }: FramerUser): Promise<PluginUser> {\n\treturn { id: await sha256(id), name, apiVersion1Id: murmurHash(id).toString(), avatarUrl: avatar, initials }\n}\n\nasync function framerUsersToPluginUserMap(framerUsers: FramerUser[]): Promise<Map<string, PluginUser>> {\n\tconst pluginUserMap = new Map<string, PluginUser>()\n\tconst promises: Promise<void>[] = []\n\tfor (const framerUser of framerUsers) {\n\t\tconst task = async () => {\n\t\t\tpluginUserMap.set(framerUser.id, await framerUserToPluginUser(framerUser))\n\t\t}\n\n\t\tpromises.push(task())\n\t}\n\n\tawait Promise.all(promises)\n\treturn pluginUserMap\n}\n\nexport async function framerUserIdsToPluginUserMap(\n\tengine: VekterEngine,\n\tnonDeduplicatedIds: string[],\n): Promise<Map<string, PluginUser>> {\n\tconst ids = [...new Set(nonDeduplicatedIds)]\n\n\tconst aclFramerUsers = ids.map(id => engine.stores.projectStore.aclById[id]?.user)\n\tif (aclFramerUsers.every(isDefined)) return framerUsersToPluginUserMap(aclFramerUsers)\n\n\t// `users/get-many` isn't exposed in web-api\n\tconst framerUsers = await Promise.all(\n\t\tids.map(async (id, index) => aclFramerUsers[index] ?? ((await apiFetcher.get(`/web/users/${id}`)) as FramerUser)),\n\t)\n\n\treturn framerUsersToPluginUserMap(framerUsers)\n}\n", "import { getServiceMap, parseModuleIdentifier } from \"@framerjs/shared\"\nimport type { VekterEngine } from \"document/VekterEngine.ts\"\nimport { isExternalModuleNode } from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport { moduleUrlWithExportSpecifierFragment } from \"modules/utils.ts\"\n\nexport function getComponentInsertURLFromIdentifier(engine: VekterEngine, componentIdentifier: string): string | null {\n\tconst moduleIdentifier = parseModuleIdentifier(componentIdentifier)\n\tif (!moduleIdentifier) return null\n\n\tif (moduleIdentifier.kind === \"localModuleExport\") {\n\t\tconst persistedModule = engine.stores.modulesStore.getPersistedModuleByLocalIdentifier(componentIdentifier)\n\t\tif (!persistedModule) return null\n\t\tif (!persistedModule.exports.includes(moduleIdentifier.exportSpecifier)) return null\n\n\t\tconst baseUrl = `${persistedModule.importURL}@${persistedModule.saveId}`\n\t\treturn moduleUrlWithExportSpecifierFragment(baseUrl, moduleIdentifier.exportSpecifier)\n\t}\n\n\tif (moduleIdentifier.kind === \"externalModuleExport\") {\n\t\tconst { modulesCDN } = getServiceMap()\n\t\tconst baseUrl = `${modulesCDN}/${moduleIdentifier.moduleId}/${moduleIdentifier.saveId}/${moduleIdentifier.file}`\n\t\treturn moduleUrlWithExportSpecifierFragment(baseUrl, moduleIdentifier.exportSpecifier)\n\t}\n\n\treturn null\n}\n\nexport function getComponentNameFromIdentifier(engine: VekterEngine, componentIdentifier: string): string | null {\n\tconst moduleIdentifier = parseModuleIdentifier(componentIdentifier)\n\tif (!moduleIdentifier) return null\n\n\tif (moduleIdentifier.kind === \"localModuleExport\") {\n\t\tconst component = engine.componentLoader.componentForIdentifier(componentIdentifier)\n\t\tif (!component) return null\n\n\t\treturn component.name\n\t}\n\n\tif (moduleIdentifier.kind === \"externalModuleExport\") {\n\t\tconst externalModuleNode = engine.tree.get(moduleIdentifier.moduleId)\n\t\tif (!externalModuleNode) return null\n\t\tif (!isExternalModuleNode(externalModuleNode)) return null\n\n\t\treturn externalModuleNode.title\n\t}\n\n\treturn null\n}\n", "import {\n\tassert,\n\ttype LocalModuleExportIdentifier,\n\ttype LocalModuleId,\n\tModuleType,\n\tasLocalId,\n\temptyArray,\n\tisDependenciesFileId,\n\tparseModuleIdentifier,\n} from \"@framerjs/shared\"\nimport { getLocalCodeComponentId } from \"app/ai/agents/context/components.ts\"\nimport { employeesOnlySettings } from \"app/employeesOnlySettings.ts\"\nimport { experiments } from \"app/experiments.ts\"\nimport { createCodeFileData, ensureCodeFileExtension, hasValidExtension, sanitizeFilePath } from \"code-editor/utils.ts\"\nimport type { VekterEngine } from \"document/VekterEngine.ts\"\nimport { CODE_FILE_ENTITY_TYPE_ROOT_ID } from \"document/models/CanvasTree/nodes/EntityTypeRootNode.ts\"\nimport {\n\ttype LocalModuleNode,\n\tLocalModulesListNode,\n\tisLocalModuleNode,\n} from \"document/models/CanvasTree/nodes/LocalModuleNode.ts\"\nimport { removeReferenceForNode } from \"document/models/CanvasTree/nodes/utils/entityReferenceNode.ts\"\nimport { compileModuleForPlugin } from \"modules/compiler.ts\"\nimport { splitTypeSlashName } from \"modules/utils.ts\"\nimport { waitForComponentLoaderToCatchUp } from \"modules/waitForComponentLoaderToCatchUp.ts\"\nimport {\n\tcreateCodeFileModule,\n\tdeleteCodeFileModule,\n\trenameCodeFileModule,\n\tupdateCodeFileModule,\n} from \"utils/codeFiles.ts\"\nimport { fetchSaveForModule, fetchSaves, getModuleContent } from \"utils/moduleVersions.ts\"\nimport {\n\tcreateShaderFile,\n\tcreateShaderModule,\n\tdeleteShaderModule,\n\tnormalizeShaderFilePath,\n\trenameShaderModule,\n} from \"utils/shaderFiles.ts\"\nimport { isString, isUndefined } from \"utils/typeChecks.ts\"\nimport type { CodeFileData, CodeFileExport, CodeFileVersionData } from \"#framer-plugin/codeFile.ts\"\nimport { setupFolderStructureForNodeNameById } from \"./entityReference.ts\"\nimport { PluginOnlyError } from \"./pluginErrors.ts\"\nimport { framerUserIdsToPluginUserMap } from \"./user.ts\"\nimport { getComponentInsertURLFromIdentifier } from \"./utils/getComponentURL.ts\"\n\nconst SHADER_FOLDER_PREFIX = \"Shaders/\"\n\nfunction shaderToolsEnabled(): boolean {\n\treturn employeesOnlySettings.isOn(\"showShaderTools\") && experiments.isOn(\"shaders\")\n}\n\nfunction validateShaderName(name: string): void {\n\tif (name.includes(\"/\")) {\n\t\tthrow new PluginOnlyError(`Shader files do not support nested folders`)\n\t}\n\tconst { extension } = sanitizeFilePath(name, false)\n\tif (extension && hasValidExtension(extension) && extension !== \".ts\") {\n\t\tthrow new PluginOnlyError(`Shader files must use the .ts extension, got: ${extension}`)\n\t}\n}\n\n/**\n * Removes the `ModuleType` prefix from a `LocalModuleId`.\n * This lets us handle Code Files and Shaders together.\n */\nfunction stripLocalModuleIdPrefix(id: LocalModuleId): string {\n\tconst [type, name] = splitTypeSlashName(id)\n\tif (type === ModuleType.Shader) return `${SHADER_FOLDER_PREFIX}${name}`\n\tif (type !== ModuleType.Code) {\n\t\tthrow new Error(`Expected module type ${ModuleType.Code} or ${ModuleType.Shader}, but got ${type}`)\n\t}\n\treturn name\n}\n\nfunction isShaderLocalId(localId: LocalModuleId): boolean {\n\treturn localId.startsWith(`${ModuleType.Shader}/`)\n}\n\n/**\n * Ensure that the id is a LocalModuleId with the correct module type prefix.\n * Handles both code files and shaders. Shaders are normalized under a /Shaders folder.\n */\nexport function ensureLocalModuleIdPrefix(id: string): LocalModuleId {\n\tconst parsedIdentifier = parseModuleIdentifier(id)\n\tif (parsedIdentifier?.kind === \"localModuleExport\") {\n\t\treturn parsedIdentifier.localId\n\t}\n\t// Map Plugin side \"Shaders/X\" \u2192 internal \"shader/X\" only when shader tools are enabled.\n\t// Otherwise treat \"Shaders/\" as a normal code file folder.\n\tif (shaderToolsEnabled()) {\n\t\tif (id.startsWith(SHADER_FOLDER_PREFIX)) {\n\t\t\treturn asLocalId(`${ModuleType.Shader}/${id.slice(SHADER_FOLDER_PREFIX.length)}`)\n\t\t}\n\t\tconst shaderPrefix = `${ModuleType.Shader}/`\n\t\tif (id.startsWith(shaderPrefix)) {\n\t\t\treturn asLocalId(id)\n\t\t}\n\t}\n\tconst codePrefix = `${ModuleType.Code}/`\n\tif (id.startsWith(codePrefix)) {\n\t\treturn asLocalId(id)\n\t}\n\treturn asLocalId(`${codePrefix}${id}`)\n}\n\nfunction getCodeFileData(engine: VekterEngine, fileId: LocalModuleId): CodeFileData {\n\t// Because getting details for a single code file requires iterating over the component loader\n\t// entities we'll just get all code files and return the one we need\n\tconst allCodeFiles = getAllCodeFilesByLocalId(engine)\n\n\tconst result = allCodeFiles[fileId]\n\tif (!result) throw new Error(\"Code File was not found.\")\n\n\treturn result\n}\n\nexport function getAllCodeFiles(engine: VekterEngine): readonly CodeFileData[]\nexport function getAllCodeFiles(engine: VekterEngine, idOrPath: string): CodeFileData | null\nexport function getAllCodeFiles(\n\tengine: VekterEngine,\n\tidOrPath?: string,\n): readonly CodeFileData[] | CodeFileData | null {\n\tconst allFiles = getAllCodeFilesByLocalId(engine)\n\n\tif (isUndefined(idOrPath)) {\n\t\treturn Object.values(allFiles)\n\t}\n\n\tconst localModuleId = ensureLocalModuleIdPrefix(idOrPath)\n\tfor (const [localId, codeFile] of Object.entries(allFiles)) {\n\t\tif (localId === localModuleId || codeFile.path === idOrPath) return codeFile\n\t}\n\n\treturn null\n}\n\nfunction isDefaultExport(identifier: LocalModuleExportIdentifier): boolean {\n\treturn identifier.exportSpecifier === \"default\"\n}\n\nfunction getAllCodeFilesByLocalId(engine: VekterEngine, id?: LocalModuleId): Record<LocalModuleId, CodeFileData> {\n\tconst localModuleNodes = LocalModulesListNode.getModuleNodes(engine.tree)\n\n\tconst exportsByModuleId = new Map<LocalModuleId, CodeFileExport[]>()\n\tconst definitions = engine.componentLoader.getAllLocalModules()\n\tfor (const definition of definitions) {\n\t\tconst parsedIdentifier = parseModuleIdentifier(definition.identifier)\n\t\tif (parsedIdentifier?.kind !== \"localModuleExport\") continue\n\t\tif (parsedIdentifier.type !== ModuleType.Code) continue\n\t\tif (!isUndefined(id) && id !== parsedIdentifier.localId) continue\n\n\t\tconst codeFileExports = exportsByModuleId.get(parsedIdentifier.localId) ?? []\n\t\texportsByModuleId.set(parsedIdentifier.localId, codeFileExports)\n\n\t\tif (definition.type === \"component\") {\n\t\t\tconst insertURL = getComponentInsertURLFromIdentifier(engine, definition.identifier)\n\t\t\tif (!insertURL) continue\n\t\t\tconst componentId = getLocalCodeComponentId(parsedIdentifier.value)\n\t\t\tassert(componentId, \"Expected local code component id\")\n\n\t\t\tcodeFileExports.push({\n\t\t\t\tname: definition.name,\n\t\t\t\tcomponentId,\n\t\t\t\tinsertURL,\n\t\t\t\tisDefaultExport: isDefaultExport(parsedIdentifier),\n\t\t\t\ttype: \"component\",\n\t\t\t})\n\t\t}\n\n\t\tif (definition.type === \"hoc\") {\n\t\t\tcodeFileExports.push({\n\t\t\t\ttype: \"override\",\n\t\t\t\tname: definition.name,\n\t\t\t\tisDefaultExport: isDefaultExport(parsedIdentifier),\n\t\t\t})\n\t\t}\n\t}\n\n\tconst includeShaders = shaderToolsEnabled()\n\tconst result: Record<LocalModuleId, CodeFileData> = {}\n\n\tfor (const node of localModuleNodes) {\n\t\tconst isShader = node.save.type === ModuleType.Shader\n\n\t\tif (isShader && !includeShaders) continue\n\t\tif (!isShader && node.save.type !== ModuleType.Code) continue\n\n\t\tconst localId = asLocalId(node.id)\n\t\tconst entry = engine.stores.modulesStore.getModuleEntryByLocalId(localId)\n\t\tif (!entry) continue\n\n\t\tassert(node.save.name, \"Code file LocalModuleNode should always have a valid save.name\")\n\n\t\tconst nodeName = node.save.name\n\t\tconst exportsForFile = exportsByModuleId.get(entry.localId) ?? []\n\n\t\tconst cleanId = stripLocalModuleIdPrefix(entry.localId)\n\t\tconst cleanName = nodeName.split(\"/\").pop() ?? nodeName\n\n\t\tconst normalizedPath =\n\t\t\tisShader && !entry.name.startsWith(SHADER_FOLDER_PREFIX) ? `${SHADER_FOLDER_PREFIX}${entry.name}` : entry.name\n\n\t\t// We use file.id (with ModuleType prefix) as the key instead of cleanId\n\t\t// because getCodeFileData and other functions expect the full prefixed ID for lookup\n\t\tresult[entry.localId] = {\n\t\t\tid: cleanId,\n\t\t\tpath: normalizedPath,\n\t\t\tname: cleanName,\n\t\t\tcontent: entry?.sourceContent ?? \"\",\n\t\t\texports: exportsForFile,\n\t\t\tversionId: node.save.saveId,\n\t\t}\n\t}\n\n\treturn result\n}\n\nfunction rewriteCompilationErrorMessage(error: string, codeFileName: string) {\n\t// The WASM Compiler throws \"AnonymousFile\" instead of the actual file name for some unknown reason.\n\t// We replace it with the name of the code file to improve the message.\n\treturn error.replaceAll(\"AnonymousFile\", codeFileName)\n}\n\nasync function validateCodeFile(name: string, code: string) {\n\ttry {\n\t\tawait compileModuleForPlugin(name, code)\n\t} catch (error) {\n\t\t// The WASM Compiler throws an Error string instead of an error instance when compilation fails.\n\t\tif (isString(error)) {\n\t\t\tthrow new PluginOnlyError(rewriteCompilationErrorMessage(error, name))\n\t\t}\n\n\t\tif (error instanceof Error) {\n\t\t\tthrow new PluginOnlyError(error.message)\n\t\t}\n\n\t\tthrow new Error(\"Failed to validate code file. Unknown error.\", { cause: error })\n\t}\n}\n\nexport async function createCodeFile(\n\tengine: VekterEngine,\n\tname: string,\n\tcode: string,\n\tpluginId: string,\n\teditViaPlugin: boolean = true,\n) {\n\tconst isShader = shaderToolsEnabled() && name.startsWith(SHADER_FOLDER_PREFIX)\n\n\tif (isShader) {\n\t\tconst shaderName = name.slice(SHADER_FOLDER_PREFIX.length)\n\t\tvalidateShaderName(shaderName)\n\t\tconst shaderFileData = createShaderFile(shaderName)\n\n\t\tawait validateCodeFile(shaderFileData.name, code || shaderFileData.content)\n\n\t\tconst moduleEntry = await createShaderModule(\n\t\t\tengine.stores.modulesStore,\n\t\t\tshaderFileData.name,\n\t\t\tcode || shaderFileData.content,\n\t\t)\n\n\t\tawait waitForComponentLoaderToCatchUp(engine.componentLoader, engine.stores.modulesStore)\n\n\t\treturn getCodeFileData(engine, moduleEntry.localId)\n\t}\n\n\tawait validateCodeFile(name, code)\n\n\tconst data = createCodeFileData(name, \"component\", false)\n\tif (!data) throw new PluginOnlyError(`Failed to create file \"${name}\"`)\n\n\tconst moduleEntry = await createCodeFileModule(\n\t\tengine.stores.modulesStore,\n\t\tdata.path,\n\t\tcode || data.content,\n\t\tpluginId,\n\t\teditViaPlugin,\n\t)\n\n\tawait waitForComponentLoaderToCatchUp(engine.componentLoader, engine.stores.modulesStore)\n\n\tengine.scheduler.processWhenReady(() => {\n\t\tsetupFolderStructureForNodeNameById(engine.tree, moduleEntry.localId, name, CODE_FILE_ENTITY_TYPE_ROOT_ID)\n\t})\n\n\treturn getCodeFileData(engine, moduleEntry.localId)\n}\n\nexport async function setCodeFileContent(engine: VekterEngine, id: string, code: string) {\n\tconst localId = ensureLocalModuleIdPrefix(id)\n\tconst entry = engine.stores.modulesStore.getModuleEntryByLocalId(localId)\n\tif (!entry) throw new PluginOnlyError(`File with id \"${id}\" not found`)\n\n\tconst codeFileData = getCodeFileData(engine, entry.localId)\n\tawait validateCodeFile(codeFileData.name, code)\n\n\t// ModuleType is inferred within, works for Shaders and Code Files\n\tawait updateCodeFileModule(engine.stores.modulesStore, entry.localId, code)\n\tawait waitForComponentLoaderToCatchUp(engine.componentLoader, engine.stores.modulesStore)\n\n\treturn getCodeFileData(engine, entry.localId)\n}\n\nexport async function removeCodeFile(engine: VekterEngine, id: string) {\n\tconst localId = ensureLocalModuleIdPrefix(id)\n\n\tengine.scheduler.process(() => {\n\t\t// INFO: the following lines come exactly from src/app/vekter/src/document/components/chrome/assets/actions/delete.ts:313\n\t\t// A code file might have two references, one in the code section and one in the\n\t\t// component section that represent the exported modules. We need to make sure we\n\t\t// remove all references to a code file\n\t\tremoveReferenceForNode(engine.tree, localId, { isCodeFile: true })\n\t\tremoveReferenceForNode(engine.tree, localId)\n\t})\n\n\tconst entry = engine.stores.modulesStore.getModuleEntryByLocalId(localId)\n\tif (!entry) throw new PluginOnlyError(`File \"${id}\" not found`)\n\n\tif (isShaderLocalId(localId)) {\n\t\tif (!shaderToolsEnabled()) throw new PluginOnlyError(`Shader tools are not enabled`)\n\t\tawait deleteShaderModule(engine.stores.modulesStore, localId)\n\t} else {\n\t\tawait deleteCodeFileModule(engine.stores.modulesStore, localId)\n\t}\n}\n\nexport async function renameCodeFile(engine: VekterEngine, id: string, newName: string) {\n\tconst localId = ensureLocalModuleIdPrefix(id)\n\tconst localModuleNode = getValidatedLocalModuleNode(engine, localId)\n\tconst localModuleNodeId = asLocalId(localModuleNode.id)\n\tconst isShader = isShaderLocalId(localModuleNodeId)\n\tif (isShader) {\n\t\tif (!shaderToolsEnabled()) throw new PluginOnlyError(`Shader tools are not enabled`)\n\t\tconst shaderName = newName.startsWith(SHADER_FOLDER_PREFIX) ? newName.slice(SHADER_FOLDER_PREFIX.length) : newName\n\t\tvalidateShaderName(shaderName)\n\t}\n\tconst normalizedName = isShader ? normalizeShaderFilePath(newName) : ensureCodeFileExtension(newName)\n\tif (normalizedName === localModuleNode.save.name) return getCodeFileData(engine, localModuleNodeId)\n\n\tconst moduleEntry = engine.stores.modulesStore.getModuleEntryByLocalId(localModuleNodeId)\n\tassert(moduleEntry, \"Module entry for file not found\", localModuleNodeId)\n\n\tif (isShader) {\n\t\tawait renameShaderModule(engine.stores.modulesStore, localModuleNodeId, normalizedName)\n\t} else {\n\t\tawait renameCodeFileModule(engine.stores.modulesStore, localModuleNodeId, normalizedName)\n\t}\n\tawait waitForComponentLoaderToCatchUp(engine.componentLoader, engine.stores.modulesStore)\n\n\tif (!isShader) {\n\t\tengine.scheduler.processWhenReady(() => {\n\t\t\tsetupFolderStructureForNodeNameById(engine.tree, localModuleNodeId, normalizedName, CODE_FILE_ENTITY_TYPE_ROOT_ID)\n\t\t})\n\t}\n\n\treturn getCodeFileData(engine, localModuleNodeId)\n}\n\nexport async function getCodeFileVersions(\n\tengine: VekterEngine,\n\tfileId: string,\n): Promise<readonly CodeFileVersionData[]> {\n\tconst normalizedFileId = ensureLocalModuleIdPrefix(fileId)\n\n\tconst node = getValidatedLocalModuleNode(engine, normalizedFileId)\n\tconst moduleId = node.save.moduleId\n\tconst entry = engine.stores.modulesStore.getModuleEntryByLocalId(normalizedFileId)\n\tassert(entry, `File \"${fileId}\" not found`)\n\n\tconst saves = await fetchSaves(moduleId)\n\tif (!saves) return emptyArray()\n\n\tconst pluginUserMap = await framerUserIdsToPluginUserMap(\n\t\tengine,\n\t\tsaves.map(save => save.userId),\n\t)\n\n\tconst versions = saves.map(save => {\n\t\tconst filename = isDependenciesFileId(fileId) ? normalizedFileId : null\n\t\tconst name = filename ?? save.files.source\n\t\tassert(name, \"Failed to get code file name\")\n\n\t\tconst createdBy = pluginUserMap.get(save.userId)\n\t\tassert(createdBy, `Failed to resolve user \"${save.userId}\" in save \"${save.id}\"`)\n\n\t\treturn {\n\t\t\tid: save.id,\n\t\t\tname: save.name,\n\t\t\tfileId: fileId,\n\t\t\tcreatedAt: save.savedAt,\n\t\t\tcreatedBy,\n\t\t}\n\t})\n\n\treturn versions\n}\n\n/**\n * Get the content of a specific version of a code file.\n */\nexport async function getCodeFileVersionContent(\n\tengine: VekterEngine,\n\tfileId: string,\n\tversionId: string,\n): Promise<string> {\n\tconst normalizedFileId = ensureLocalModuleIdPrefix(fileId)\n\n\tconst localModuleNode = getValidatedLocalModuleNode(engine, normalizedFileId)\n\tconst moduleId = localModuleNode.save.moduleId\n\tconst moduleSaveData = await fetchSaveForModule(moduleId, versionId)\n\tif (!moduleSaveData) throw new Error(`Failed to fetch save with ID \"${versionId}\" for module \"${moduleId}\".`)\n\n\tconst filename = isDependenciesFileId(fileId) ? normalizedFileId : null\n\tconst name = filename ?? moduleSaveData.files.source\n\tassert(name, \"Failed to get code file name\")\n\n\treturn getModuleContent(moduleSaveData.baseURL, name)\n}\n\n/**\n * Retrieves and validates a LocalModuleNode from the engine tree using the given file ID.\n * Throws a PluginOnlyError if the node is not found or an assertion error if not a LocalModuleNode.\n *\n * @param engine The VekterEngine instance\n * @param fileId The normalized file ID with the required `codeFile/` prefix\n * @returns The validated LocalModuleNode\n * @throws {PluginOnlyError} When node isn't found. Can be caused by both plugins and vekter.\n * @throws {Error} When node is not a LocalModuleNode\n */\nfunction getValidatedLocalModuleNode(engine: VekterEngine, fileId: string): LocalModuleNode {\n\tconst node = engine.tree.get(fileId)\n\tif (!node) throw new PluginOnlyError(`Local module node for file \"${fileId}\" not found.`)\n\tassert(isLocalModuleNode(node), \"Expected node to be a local module node\")\n\treturn node\n}\n\nexport function getOpenCodeFile(engine: VekterEngine): CodeFileData | null {\n\tconst currentFileId = engine.stores.codeEditorStore.currentCodeFileId\n\tif (!currentFileId) return null\n\treturn getCodeFileData(engine, currentFileId)\n}\n", "import { assert, assertNever } from \"@framerjs/shared\"\nimport type { CustomCodePlacement } from \"@framerjs/shared/src/custom-code/types.ts\"\nimport type { VekterEngine } from \"document/VekterEngine.ts\"\nimport { CustomCodeNode, CustomCodeScopeNode } from \"document/models/CanvasTree/index.ts\"\nimport type { CustomCodeLocation, SetCustomCodeOptions } from \"#framer-plugin/customCode.ts\"\nimport type { ActivePlugin } from \"./ActivePlugin.ts\"\nimport type { PluginManifestId } from \"./plugins.ts\"\nimport { showCustomCodeDisplayedToast } from \"./toast.ts\"\n\ninterface PluginCustomHTMLValue {\n\tdisabled: boolean\n\thtml: string | null\n}\n\nexport type PluginCustomHTMLValues = Record<CustomCodeLocation, PluginCustomHTMLValue>\n\nconst defaultCustomHTMLValue: PluginCustomHTMLValue = {\n\tdisabled: false,\n\thtml: null,\n}\n\n/**\n * The default values contains all the keys for custom code rather than partials\n * to ensure that we can set custom code locations \"disabled\" status without\n * having to clear the value.\n *\n * This ensures we can persist disabled status for a plugin even if a plugin\n * clears and re-sets custom code.\n */\nconst defaultPluginCustomHTMLValues: PluginCustomHTMLValues = {\n\tbodyEnd: defaultCustomHTMLValue,\n\tbodyStart: defaultCustomHTMLValue,\n\theadEnd: defaultCustomHTMLValue,\n\theadStart: defaultCustomHTMLValue,\n}\n\nexport async function getCustomCode(engine: VekterEngine, pluginManifestId: PluginManifestId) {\n\tconst scope = CustomCodeScopeNode.get(engine.tree)\n\tconst customCodeScope = await scope?.load()\n\tif (!customCodeScope) return defaultPluginCustomHTMLValues\n\n\tconst result: PluginCustomHTMLValues = { ...defaultPluginCustomHTMLValues }\n\tfor (const node of customCodeScope.children) {\n\t\tif (node.managedByPlugin !== pluginManifestId) continue\n\n\t\tresult[node.placement] = {\n\t\t\tdisabled: node.disabled,\n\t\t\thtml: node.code,\n\t\t}\n\t}\n\n\treturn result\n}\n\nexport function setCustomCode(\n\tactivePlugin: ActivePlugin,\n\toptions: SetCustomCodeOptions,\n\tcustomCodeScope: CustomCodeScopeNode | null,\n) {\n\tassert(customCodeScope?.isLoaded(), \"CustomCodeScopeNode should be loaded\")\n\n\tconst customCode = customCodeScope.children.find(\n\t\tnode => node.managedByPlugin === activePlugin.manifestId && node.placement === options.location,\n\t)\n\tconst isDisabled = customCode?.disabled ?? false\n\n\tconst actionTaken = updateCustomCodeNode(activePlugin, options)\n\treturn showCustomCodeDisplayedToast(isDisabled, actionTaken, activePlugin)\n}\n\n/**\n * Finds an existing custom code node that is managed by the plugin, and updates it with the new code, otherwise creates a new node.\n */\nfunction updateCustomCodeNode(\n\tactivePlugin: ActivePlugin,\n\toptions: SetCustomCodeOptions,\n): \"new\" | \"updated\" | \"deleted\" {\n\tconst { engine } = activePlugin.context\n\tconst customCodeScope = CustomCodeScopeNode.ensure(engine.tree)\n\tassert(customCodeScope.isLoaded(), \"CustomCodeScopeNode should be loaded\")\n\n\tconst customCode = customCodeScope.children.find(\n\t\tnode => node.managedByPlugin === activePlugin.manifestId && node.placement === options.location,\n\t)\n\n\t// If there's no html code, it means the plugin wants to remove the custom code\n\tif (!options.html) {\n\t\tif (customCode) {\n\t\t\tengine.tree.remove(customCode.id)\n\t\t}\n\n\t\treturn \"deleted\"\n\t}\n\n\tconst update: Partial<CustomCodeNode> = {\n\t\tname: activePlugin.name,\n\t\tcode: options.html || \"\",\n\t\tmanagedByPlugin: activePlugin.manifestId,\n\t\tplacement: getCustomCodePlacement(options.location),\n\t}\n\n\tif (customCode) {\n\t\tcustomCode.set(update)\n\t\treturn \"updated\"\n\t} else {\n\t\tconst newCustomCode = CustomCodeNode.create(update)\n\t\tengine.tree.insertNode(newCustomCode, customCodeScope.id)\n\t\treturn \"new\"\n\t}\n}\n\nfunction getCustomCodePlacement(location: CustomCodeLocation): CustomCodePlacement {\n\tswitch (location) {\n\t\tcase \"headStart\":\n\t\t\treturn \"headStart\"\n\t\tcase \"headEnd\":\n\t\t\treturn \"headEnd\"\n\t\tcase \"bodyStart\":\n\t\t\treturn \"bodyStart\"\n\t\tcase \"bodyEnd\":\n\t\t\treturn \"bodyEnd\"\n\t\tdefault:\n\t\t\tassertNever(location)\n\t}\n}\n", "import { isDefined } from \"utils/typeChecks.ts\"\nimport type { ReleaseChannel } from \"#framer-plugin/messages.ts\"\n\nconst allReleaseChannels: Record<ReleaseChannel, true> = {\n\talpha: true,\n\tbeta: true,\n\tstable: true,\n}\n\nexport function isSupportedReleaseChannel(value: string | undefined): value is ReleaseChannel {\n\treturn isDefined(value) && value in allReleaseChannels\n}\n", "import type { VekterEngine } from \"document/VekterEngine.ts\"\nimport type { CanvasNode } from \"document/models/CanvasTree/index.ts\"\nimport { isColorStyleTokenNode } from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport { isDynamicValue } from \"document/models/CanvasTree/traits/DynamicValue.ts\"\nimport { type BorderValues, borderStyles, withBorder } from \"document/models/CanvasTree/traits/WithBorder.ts\"\nimport { isStylableNode } from \"document/models/CanvasTree/traits/utils/hardCodedCodeComponentIdentifierChecks.ts\"\nimport { tokenToCSSVariable } from \"document/models/CanvasTree/utils/tokens.ts\"\nimport {\n\tborderValueDefaults,\n\tfromBorderReactCSSProperties,\n\tisBorderValues,\n\tisValidBorderReactCSSProperties,\n} from \"document/models/controlProps/BorderControlPropValue.ts\"\nimport { type BorderStyle, Color } from \"library/index.ts\"\nimport { isObject, isString } from \"utils/typeChecks.ts\"\nimport { CSSUnit as PluginCSSUnit } from \"#framer-plugin/css.ts\"\nimport type { Marshaled } from \"#framer-plugin/marshal.ts\"\nimport { isColorStyleData } from \"#framer-plugin/styles.ts\"\nimport type { Border, BorderWidth } from \"#framer-plugin/traits.ts\"\nimport { parsePluginCSSDimensions } from \"./css.ts\"\nimport { getColorValueFromSerializedColor } from \"./styles.ts\"\n\nexport function getResolvedBorderValues(node: CanvasNode): Partial<BorderValues> | undefined {\n\tif (!withBorder(node)) return\n\tif (!isStylableNode(node)) return\n\tif (!node.borderEnabled) return\n\tif (!isDynamicValue(node.borderEnabled)) return node\n\n\tconst resolvedValue = node.resolveValue(\"borderEnabled\") as unknown\n\tif (isBorderValues(resolvedValue)) {\n\t\treturn resolvedValue\n\t} else if (isValidBorderReactCSSProperties(resolvedValue)) {\n\t\treturn fromBorderReactCSSProperties(resolvedValue)\n\t}\n}\n\nexport function getPluginBorderFromVekterBorderValues(\n\tengine: VekterEngine,\n\tborderValues: Partial<BorderValues>,\n): Marshaled<Border> | undefined {\n\tlet width: BorderWidth\n\tif (borderValues.borderPerSide ?? borderValueDefaults.borderPerSide) {\n\t\tconst { borderTop, borderRight, borderBottom, borderLeft } = borderValues\n\t\tconst top = borderTop ?? borderValueDefaults.borderTop\n\t\tconst right = borderRight ?? borderValueDefaults.borderRight\n\t\tconst bottom = borderBottom ?? borderValueDefaults.borderBottom\n\t\tconst left = borderLeft ?? borderValueDefaults.borderLeft\n\t\twidth = `${top}px ${right}px ${bottom}px ${left}px`\n\t} else {\n\t\tconst borderWidth = borderValues.borderWidth ?? borderValueDefaults.borderWidth\n\t\twidth = `${borderWidth}px`\n\t}\n\n\tconst color = getColorValueFromSerializedColor(engine, borderValues.borderColor ?? borderValueDefaults.borderColor)\n\tconst style = borderValues.borderStyle ?? borderValueDefaults.borderStyle\n\n\treturn { width, color, style }\n}\n\nconst borderWidthKey = \"width\" satisfies keyof Border\nconst borderColorKey = \"color\" satisfies keyof Border\nconst borderStyleKey = \"style\" satisfies keyof Border\n\nexport function getVekterBorderValuesFromPluginBorder(\n\tengine: VekterEngine,\n\tborder: unknown,\n): Partial<BorderValues> | undefined {\n\tif (!isObject(border)) return\n\n\tconst result: Partial<BorderValues> = {}\n\tif (borderWidthKey in border) {\n\t\tconst dimensions = parsePluginCSSDimensions(border.width)\n\t\tif (dimensions?.length === 1) {\n\t\t\tconst [width] = dimensions\n\t\t\tif (width?.unit === PluginCSSUnit.Pixel) {\n\t\t\t\tresult.borderPerSide = false\n\t\t\t\tresult.borderWidth = width.value\n\t\t\t}\n\t\t} else if (dimensions?.length === 4) {\n\t\t\tconst [top, right, bottom, left] = dimensions\n\t\t\tif (\n\t\t\t\ttop?.unit === PluginCSSUnit.Pixel &&\n\t\t\t\tright?.unit === PluginCSSUnit.Pixel &&\n\t\t\t\tbottom?.unit === PluginCSSUnit.Pixel &&\n\t\t\t\tleft?.unit === PluginCSSUnit.Pixel\n\t\t\t) {\n\t\t\t\tresult.borderPerSide = true\n\t\t\t\tresult.borderTop = top.value\n\t\t\t\tresult.borderRight = right.value\n\t\t\t\tresult.borderBottom = bottom.value\n\t\t\t\tresult.borderLeft = left.value\n\t\t\t}\n\t\t}\n\t}\n\n\tif (borderColorKey in border) {\n\t\tif (isString(border.color)) {\n\t\t\tif (Color.isColorString(border.color)) {\n\t\t\t\tresult.borderColor = border.color\n\t\t\t}\n\t\t} else if (isColorStyleData(border.color)) {\n\t\t\tconst token = engine.tree.getNode(border.color.id)\n\t\t\tif (isColorStyleTokenNode(token) && !token.softDeleted) {\n\t\t\t\tresult.borderColor = tokenToCSSVariable(token)\n\t\t\t}\n\t\t}\n\t}\n\n\tif (borderStyleKey in border && isString(border.style) && borderStyles.includes(border.style as BorderStyle)) {\n\t\tresult.borderStyle = border.style as BorderStyle\n\t}\n\n\treturn result\n}\n", "import type { CanvasTree } from \"document/models/CanvasTree/index.ts\"\nimport { findTokenNode } from \"document/models/CanvasTree/utils/findTokenNode.ts\"\nimport {\n\tfallbackValueFromCSSVariable,\n\tisTokenCSSVariable,\n\ttokenIdFromCSSVariable,\n} from \"document/models/CanvasTree/utils/tokens.ts\"\n\nexport function resolveTokenColor(tree: CanvasTree, color: string): string | null {\n\tif (!isTokenCSSVariable(color)) return color\n\tconst tokenId = tokenIdFromCSSVariable(color)\n\tconst token = tokenId ? findTokenNode(tokenId, tree) : null\n\tif (token) return token.light\n\treturn fallbackValueFromCSSVariable(color)\n}\n", "import { ConvertColor } from \"library/render/types/Color/index.ts\"\nimport { resolveTokenColor } from \"utils/resolveTokenColor.ts\"\nimport { isString } from \"utils/typeChecks.ts\"\nimport type { ActivePluginContext } from \"./ActivePlugin.ts\"\n\n/**\n * Resolves color tokens and converts colors to rgb format, so colors always have the same format.\n */\nexport function normalizeColorForPlugin(value: string | undefined, context: ActivePluginContext): string | undefined {\n\tif (!isString(value)) return\n\n\tconst resolvedTokenColor = resolveTokenColor(context.engine.tree, value)\n\tif (!isString(resolvedTokenColor)) return\n\n\treturn ConvertColor.toRgbString(resolvedTokenColor)\n}\n", "import { ControlType } from \"library/index.ts\"\n\n// List of unsupported control types to ensure exhaustiveness of all ControlTypes.\nconst controlTypeSupported = {\n\t// Unsupported control types\n\t[ControlType.CollectionReference]: false,\n\t[ControlType.ComponentInstance]: false,\n\t[ControlType.Slot]: false,\n\t[ControlType.CustomCursor]: false,\n\t[ControlType.EventHandler]: false,\n\t[ControlType.ChangeHandler]: false,\n\t[ControlType.FusedNumber]: false,\n\t[ControlType.MultiCollectionReference]: false,\n\t[ControlType.PageScope]: false,\n\t[ControlType.ScrollSectionRef]: false,\n\t[ControlType.Transition]: false,\n\t[ControlType.TrackingId]: false,\n\t[ControlType.VectorSetItem]: false,\n\t[ControlType.Gap]: false,\n\t[ControlType.LinkRelValues]: false,\n\n\t// Supported control types\n\t[ControlType.Array]: true,\n\t[ControlType.Boolean]: true,\n\t[ControlType.Border]: true,\n\t[ControlType.BorderRadius]: true,\n\t[ControlType.BoxShadow]: true,\n\t[ControlType.Color]: true,\n\t[ControlType.Location]: true,\n\t[ControlType.Cursor]: true,\n\t[ControlType.Date]: true,\n\t[ControlType.Enum]: true,\n\t[ControlType.File]: true,\n\t[ControlType.Font]: true,\n\t[ControlType.Image]: true,\n\t[ControlType.Link]: true,\n\t[ControlType.Number]: true,\n\t[ControlType.Object]: true,\n\t[ControlType.Padding]: true,\n\t[ControlType.ResponsiveImage]: true,\n\t[ControlType.RichText]: true,\n\t[ControlType.SegmentedEnum]: true,\n\t[ControlType.String]: true,\n} as const satisfies Record<ControlType, boolean>\n\ntype SupportedPluginType = {\n\t[K in ControlType]: (typeof controlTypeSupported)[K] extends true ? K : never\n}[ControlType]\n\nexport function isPluginSupportedControlPropType(controlType: ControlType): controlType is SupportedPluginType {\n\treturn controlTypeSupported[controlType] === true\n}\n", "import { isAssetReference } from \"@framerjs/assets\"\nimport type { ReactComponentDefinition } from \"@framerjs/framer-runtime\"\nimport { assert, assertNever, shouldBeNever } from \"@framerjs/shared\"\nimport type { SerializableValue } from \"code-generation/js/SerializableValue.ts\"\nimport type { CodeComponentNode } from \"document/models/CanvasTree/index.ts\"\nimport { isComputedValue, isComputedValueFromFetchData } from \"document/models/CanvasTree/traits/ComputedValue.ts\"\nimport { isVariableReference } from \"document/models/CanvasTree/traits/VariableReference.ts\"\nimport { isLink } from \"document/models/CanvasTree/traits/utils/Link.ts\"\nimport { computeValue } from \"document/models/CanvasTree/traits/utils/computeValue.ts\"\nimport { isTokenCSSVariable, stripMetadataFromCSSVariable } from \"document/models/CanvasTree/utils/tokens.ts\"\nimport type { FileControlProp, ImageControlProp } from \"document/models/controlProps/ControlProp.ts\"\nimport { isFontValue, styleForFontValue } from \"document/models/controlProps/FontControlPropValue.ts\"\nimport type { ControlPropResolvers } from \"document/models/controlProps/getResolvedControlPropValues.ts\"\nimport { getResolvedControlPropValues } from \"document/models/controlProps/getResolvedControlPropValues.ts\"\nimport { assertRichTextTreeValueIsHTML } from \"document/models/richText/richTextStorage.ts\"\nimport { ConvertColor } from \"library/index.ts\"\nimport type {\n\tFileControlDescription,\n\tImageControlDescription,\n\tResponsiveImageControlDescription,\n} from \"library/render/types/PropertyControls.ts\"\nimport { ControlType } from \"library/render/types/PropertyControls.ts\"\nimport { resolveLinkToURL } from \"utils/resolveLink.ts\"\nimport { isString } from \"utils/typeChecks.ts\"\nimport type { FileAssetData, ImageAssetData } from \"#framer-plugin/assets.ts\"\nimport type { ControlAttributes } from \"#framer-plugin/traits.ts\"\nimport type { ActivePluginContext } from \"./ActivePlugin.ts\"\nimport { normalizeColorForPlugin } from \"./normalizeColor.ts\"\nimport { isPluginSupportedControlPropType } from \"./supportedControlProps.ts\"\nimport { convertVekterHTMLToPluginHTML } from \"./utils/convertVekterHTMLToPluginHTML.ts\"\n\ntype PluginControlPropCanvasRenderingResolvers = ControlPropResolvers<ImageAssetData | FileAssetData, ImageAssetData>\n\nfunction mapControlPropsToHumanReadable(\n\tcontrolPropValues: Record<string, unknown>,\n\tcomponentDefinition: ReactComponentDefinition,\n): Record<string, unknown> {\n\tconst result: Record<string, unknown> = {}\n\n\tfor (const controlPropKey in controlPropValues) {\n\t\tconst value = controlPropValues[controlPropKey]\n\t\tconst control = componentDefinition.properties[controlPropKey]\n\n\t\tif (!control || !isPluginSupportedControlPropType(control.type)) continue\n\n\t\t// For the plugin API, we use the property key directly, not code-safe names.\n\t\t// The FramerVariables annotation contains code-safe names for code generation,\n\t\t// which can differ from the property keys (e.g., \"width\" becomes \"width1\" if\n\t\t// \"width\" is a reserved word). The plugin API should use consistent keys for\n\t\t// both reading and writing.\n\t\tresult[controlPropKey] = value\n\t}\n\n\treturn result\n}\n\nfunction getResolvers(\n\tnode: CodeComponentNode,\n\tcontext: ActivePluginContext,\n): PluginControlPropCanvasRenderingResolvers {\n\treturn {\n\t\tresolveDynamicValue: (value, control) => {\n\t\t\tif (isVariableReference(value)) {\n\t\t\t\treturn node.cache.getVariableReferenceValue(value)\n\t\t\t}\n\n\t\t\tif (isComputedValueFromFetchData(value)) {\n\t\t\t\t// TODO: Fetch support in plugins\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tif (isComputedValue(value)) {\n\t\t\t\treturn computeValue(\n\t\t\t\t\tvalue,\n\t\t\t\t\tnode.cache,\n\t\t\t\t\tundefined,\n\t\t\t\t\tnode.cache.getVariableControlByReference(value.startValue),\n\t\t\t\t\tcontrol,\n\t\t\t\t\tundefined,\n\t\t\t\t)\n\t\t\t}\n\t\t\tshouldBeNever(value)\n\t\t\treturn undefined\n\t\t},\n\t\tresolveRichText: value => {\n\t\t\tassertRichTextTreeValueIsHTML(value, \"controlAttributesFromControlProps.resolveRichText\")\n\t\t\treturn convertVekterHTMLToPluginHTML(context.engine, value, node)\n\t\t},\n\t\tresolveAsset: (\n\t\t\tvalue: string | undefined,\n\t\t\tcontrol: ImageControlDescription | FileControlDescription,\n\t\t\tcontrolProp: ImageControlProp | FileControlProp,\n\t\t) => {\n\t\t\tif (control.type === ControlType.File) {\n\t\t\t\tif (!isString(value) || !isAssetReference(value)) return\n\n\t\t\t\treturn context.assetResolver.addFile(value)\n\t\t\t}\n\n\t\t\tif (control.type === ControlType.Image) {\n\t\t\t\tif (!isString(value) || !isAssetReference(value)) return\n\t\t\t\tassert(controlProp.type === ControlType.Image, `Expected control prop type to be Image`)\n\n\t\t\t\treturn context.assetResolver.addImage(value, controlProp.alt)\n\t\t\t}\n\t\t\tassertNever(control)\n\t\t},\n\t\tresolveTokenCSSVariable: value => {\n\t\t\treturn normalizeColorForPlugin(value, context)\n\t\t},\n\t\tresolveResponsiveImage: (\n\t\t\tvalue: string | undefined,\n\t\t\t_control: ResponsiveImageControlDescription,\n\t\t\tcontrolProp: ImageControlProp,\n\t\t) => {\n\t\t\tif (!isString(value) || !isAssetReference(value)) return\n\n\t\t\treturn context.assetResolver.addImage(value, controlProp.alt)\n\t\t},\n\t\tresolveLink: (_key, controlProp) => {\n\t\t\tif (!isLink(controlProp.value)) return\n\n\t\t\treturn resolveLinkToURL(context.engine.tree, controlProp.value)\n\t\t},\n\t\tresolvePageScope: () => {\n\t\t\treturn undefined\n\t\t},\n\t\tresolveFont: (_controlKey: string, value: unknown) => {\n\t\t\tif (!isFontValue(value)) return {}\n\t\t\treturn styleForFontValue(value)\n\t\t},\n\t\tresolveLocalizedValue: (value: SerializableValue) => {\n\t\t\treturn value\n\t\t},\n\t\tresolveScrollSectionRef: () => {\n\t\t\treturn undefined\n\t\t},\n\t\tresolveCustomCursor: () => {\n\t\t\treturn undefined\n\t\t},\n\t\tresolveVectorSetItem: () => {\n\t\t\treturn undefined\n\t\t},\n\t\tresolveColor: value => {\n\t\t\treturn isTokenCSSVariable(value) ? stripMetadataFromCSSVariable(value) : ConvertColor.toFormatString(value)\n\t\t},\n\t}\n}\n\nexport function controlAttributesFromControlProps(\n\tnode: CodeComponentNode,\n\tcontext: ActivePluginContext,\n): ControlAttributes {\n\tconst component = context.engine.componentLoader.reactComponentForIdentifier(node.codeComponentIdentifier)\n\tif (!component) return {}\n\n\tconst controlProps = node.getControlProps(component.properties)\n\tconst resolvedControlPropValues = getResolvedControlPropValues(\n\t\tcomponent.properties,\n\t\tcontrolProps,\n\t\tgetResolvers(node, context),\n\t)\n\n\treturn mapControlPropsToHumanReadable(resolvedControlPropValues, component)\n}\n", "import type { VekterEngine } from \"document/VekterEngine.ts\"\nimport type { CanvasNode } from \"document/models/CanvasTree/index.ts\"\nimport type { VariableReference } from \"document/models/CanvasTree/traits/VariableReference.ts\"\nimport { withCollectionDataSource } from \"document/models/CanvasTree/traits/WithCollectionDataSource.ts\"\nimport { hasDataRepeaterArray } from \"document/models/CanvasTree/traits/WithRepeaterDataSource.ts\"\nimport { withVariableProvider } from \"document/models/CanvasTree/traits/WithVariableProvider.ts\"\nimport {\n\ttype VariableDefinition,\n\ttype WithVariables,\n\twithVariables,\n} from \"document/models/CanvasTree/traits/WithVariables.ts\"\nimport { localeProviderId } from \"document/utils/LocaleVariable.ts\"\nimport { getCollectionForIdentifier } from \"utils/getCollectionForIdentifier.ts\"\nimport { isUndefined } from \"utils/typeChecks.ts\"\n\n// Inspired by getVariableFromAncestor in createSmartComponent.ts\nexport function getVariableAndSource(\n\tengine: VekterEngine,\n\tnode: CanvasNode,\n\treference: VariableReference,\n): { source: CanvasNode & WithVariables; variable: VariableDefinition } | undefined {\n\tif (reference.providerId === localeProviderId) return\n\n\tconst source = getSource(engine, node, reference)\n\tif (!source) return\n\n\tconst variable = source.getVariable(reference.id)\n\tif (!variable) return\n\n\treturn { source, variable }\n}\n\nfunction getSource(\n\tengine: VekterEngine,\n\tnode: CanvasNode,\n\treference: VariableReference,\n): (CanvasNode & WithVariables) | undefined {\n\tconst provider = engine.tree.getNodeWithTrait(reference.providerId, withVariableProvider)\n\tif (!provider) return\n\n\tif (withCollectionDataSource(provider) && !isUndefined(provider.dataIdentifier)) {\n\t\treturn getCollectionForIdentifier(engine.tree, provider.dataIdentifier) ?? undefined\n\t}\n\n\tif (hasDataRepeaterArray(provider)) return getSource(engine, node, provider.dataRepeaterArray)\n\n\tif (withVariables(provider)) return provider\n}\n", "import { isAssetReference } from \"@framerjs/assets\"\nimport { isValidDate } from \"@framerjs/fresco/components/dateUtils.ts\"\nimport { assert, arrayToMap, assertNever } from \"@framerjs/shared\"\nimport type { VekterEngine } from \"document/VekterEngine.ts\"\nimport { createVariable } from \"document/components/chrome/properties/utils/createVariable.ts\"\nimport type { CanvasNode } from \"document/models/CanvasTree/index.ts\"\nimport { randomID } from \"document/models/CanvasTree/nodes/NodeID.ts\"\nimport { isSmartComponentNode } from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport type {\n\tEnumVariableDefinition,\n\tVariableDefinition,\n\tVariableOrDivider,\n\tWithVariables,\n} from \"document/models/CanvasTree/traits/WithVariables.ts\"\nimport { getFallbackValue } from \"document/models/CanvasTree/traits/utils/codeComponentProps.ts\"\nimport { borderValueDefaults } from \"document/models/controlProps/BorderControlPropValue.ts\"\nimport { uniqueVariableName } from \"document/utils/uniqueName.ts\"\nimport { produce } from \"immer\"\nimport type { Draft, WritableDraft } from \"immer/dist/internal.d.ts\"\nimport { ControlType } from \"library/render/types/PropertyControls.ts\"\nimport { invert } from \"utils/invert.ts\"\nimport { isString, isUndefined } from \"utils/typeChecks.ts\"\nimport type { Marshaled } from \"#framer-plugin/marshal.ts\"\nimport {\n\ttype CreateEnumCase,\n\ttype CreateVariable,\n\ttype EnumCaseData,\n\ttype NodeType,\n\ttype TypeToClass,\n\ttype UpdateEnumCase,\n\ttype UpdateVariable,\n\ttype VariableData,\n\tclassToType,\n} from \"#framer-plugin/variables.ts\"\nimport type { ActivePluginContext } from \"./ActivePlugin.ts\"\nimport { getPluginBorderFromVekterBorderValues, getVekterBorderValuesFromPluginBorder } from \"./borders.ts\"\nimport {\n\tenumVariableCaseToEnumCaseData,\n\tfieldFileTypesToVariableFileTypes,\n\tgetEnumCaseNameLocalized,\n\tisUnmanagedCollection,\n} from \"./collections.ts\"\nimport { PluginOnlyError, verifyForPlugin } from \"./pluginErrors.ts\"\nimport { getColorValueFromSerializedColor, getSerializedColorFromColorValue } from \"./styles.ts\"\n\n// The sole reason for this map to exist is so that we don't forget to update the switch-case in\n// variableToVariableData when the VariableData union is expanded. Without isSupportedVekterType it\n// would be forced to return \"unsupported\" in the default case, so only tests/QA would reveal that\n// there's a problem here.\n\nconst pluginClassToSupportedVekterType = {\n\tBooleanVariable: ControlType.Boolean,\n\tNumberVariable: ControlType.Number,\n\tStringVariable: ControlType.String,\n\tFormattedTextVariable: ControlType.RichText,\n\tEnumVariable: ControlType.Enum,\n\tColorVariable: ControlType.Color,\n\tImageVariable: ControlType.Image,\n\tFileVariable: ControlType.File,\n\tLinkVariable: ControlType.Link,\n\tDateVariable: ControlType.Date,\n\tBorderVariable: ControlType.Border,\n} as const satisfies Record<Exclude<VariableData[\"__class\"], \"UnsupportedVariable\">, VariableOrDivider[\"type\"]>\n\nconst supportedVekterTypeToPluginClass = invert(pluginClassToSupportedVekterType)\n\nconst supportedVekterTypes = new Set(Object.values(pluginClassToSupportedVekterType))\ntype SupportedVekterType = typeof supportedVekterTypes extends Set<infer T> ? T : never\n\nfunction isSupportedVekterType(type: VariableOrDivider[\"type\"]): type is SupportedVekterType {\n\treturn supportedVekterTypes.has(type as SupportedVekterType)\n}\n\nfunction getNodeType(node: CanvasNode & WithVariables): NodeType {\n\tif (isSmartComponentNode(node)) return \"component\"\n\tif (isUnmanagedCollection(node)) return \"collection\"\n\tthrow new PluginOnlyError(\"Node not component or collection\")\n}\n\nexport type VekterTypeToPluginClass<T extends VariableOrDivider[\"type\"]> = T extends SupportedVekterType\n\t? (typeof supportedVekterTypeToPluginClass)[T]\n\t: \"UnsupportedVariable\"\n\nexport function variableToVariableData<T extends VariableOrDivider>(\n\t{ engine, assetResolver }: ActivePluginContext,\n\tnode: CanvasNode & WithVariables,\n\tvariable: T,\n): Extract<VariableData, { __class: VekterTypeToPluginClass<T[\"type\"]> }> {\n\ttype R = ReturnType<typeof variableToVariableData<T>>\n\n\tconst base = {\n\t\tnodeId: node.id,\n\t\tnodeType: getNodeType(node),\n\t\tid: variable.id,\n\t\tname: variable.name,\n\t\tdescription: variable.description,\n\t}\n\n\tif (!isSupportedVekterType(variable.type)) {\n\t\treturn { ...base, __class: \"UnsupportedVariable\" } satisfies VariableData as R\n\t}\n\n\tswitch (variable.type) {\n\t\tcase ControlType.Boolean:\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\t__class: \"BooleanVariable\",\n\t\t\t\t// FIXME: support optional booleans\n\t\t\t\tdefaultValue: variable.initialValue ?? false,\n\t\t\t} satisfies VariableData as R\n\n\t\tcase ControlType.Number:\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\t__class: \"NumberVariable\",\n\t\t\t\t// FIXME: support optional numbers\n\t\t\t\tdefaultValue: variable.initialValue ?? 0,\n\t\t\t} satisfies VariableData as R\n\n\t\tcase ControlType.String:\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\t__class: \"StringVariable\",\n\t\t\t\t// FIXME: support optional strings\n\t\t\t\tdefaultValue: variable.initialValue ?? \"\",\n\t\t\t} satisfies VariableData as R\n\n\t\tcase ControlType.RichText:\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\t__class: \"FormattedTextVariable\",\n\t\t\t\tdefaultValue: variable.initialValue,\n\t\t\t} satisfies VariableData as R\n\n\t\tcase ControlType.Enum:\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\t__class: \"EnumVariable\",\n\t\t\t\tdefaultValue: variable.initialValue,\n\t\t\t\tcases: variable.cases.map(enumCase => enumVariableCaseToEnumCaseData(engine, node, variable, enumCase)),\n\t\t\t} satisfies VariableData as R\n\n\t\tcase ControlType.Color:\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\t__class: \"ColorVariable\",\n\t\t\t\tdefaultValue: getColorValueFromSerializedColor(engine, variable.initialValue),\n\t\t\t} satisfies VariableData as R\n\n\t\tcase ControlType.Image:\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\t__class: \"ImageVariable\",\n\t\t\t\tdefaultValue:\n\t\t\t\t\tisString(variable.initialValue) && isAssetReference(variable.initialValue)\n\t\t\t\t\t\t? assetResolver.addImage(variable.initialValue, undefined)\n\t\t\t\t\t\t: undefined,\n\t\t\t} satisfies VariableData as R\n\n\t\tcase ControlType.File:\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\t__class: \"FileVariable\",\n\t\t\t\tdefaultValue:\n\t\t\t\t\tisString(variable.initialValue) && isAssetReference(variable.initialValue)\n\t\t\t\t\t\t? assetResolver.addFile(variable.initialValue)\n\t\t\t\t\t\t: undefined,\n\t\t\t\tallowedFileTypes: variable.allowedFileTypes.map(type => type.extension),\n\t\t\t} satisfies VariableData as R\n\n\t\tcase ControlType.Link:\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\t__class: \"LinkVariable\",\n\t\t\t} satisfies VariableData as R\n\n\t\tcase ControlType.Date:\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\t__class: \"DateVariable\",\n\t\t\t\tdefaultValue: variable.initialValue,\n\t\t\t} satisfies VariableData as R\n\n\t\tcase ControlType.Border:\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\t__class: \"BorderVariable\",\n\t\t\t\tdefaultValue: variable.initialValue && getPluginBorderFromVekterBorderValues(engine, variable.initialValue),\n\t\t\t} satisfies VariableData as R\n\n\t\tdefault:\n\t\t\tassertNever(variable.type)\n\t}\n}\n\nexport function getVariableDataArray(\n\tcontext: ActivePluginContext,\n\tnode: CanvasNode & WithVariables,\n\tvariables = node.variables,\n): VariableData[] {\n\treturn variables.map(variable => variableToVariableData(context, node, variable))\n}\n\nexport function getVekterVariableFromPluginCreateVariable(\n\t{ engine, manifest, modeHandlers, assetResolver }: ActivePluginContext,\n\tpluginCreateVariable: Marshaled<CreateVariable>,\n\texistingVariableNames: Set<string>,\n): VariableDefinition {\n\tconst base = {\n\t\tname: uniqueVariableName(pluginCreateVariable.name, existingVariableNames, { isDivider: false }),\n\t\tdescription: pluginCreateVariable.description,\n\t}\n\n\tswitch (pluginCreateVariable.type) {\n\t\tcase \"boolean\": {\n\t\t\treturn createVariable(\n\t\t\t\t{\n\t\t\t\t\t...base,\n\t\t\t\t\ttype: ControlType.Boolean,\n\t\t\t\t\tinitialValue: pluginCreateVariable.defaultValue ?? getFallbackValue(ControlType.Boolean),\n\t\t\t\t},\n\t\t\t\t\"canvas_component\",\n\t\t\t)\n\t\t}\n\n\t\tcase \"number\": {\n\t\t\treturn createVariable(\n\t\t\t\t{\n\t\t\t\t\t...base,\n\t\t\t\t\ttype: ControlType.Number,\n\t\t\t\t\tinitialValue: pluginCreateVariable.defaultValue ?? getFallbackValue(ControlType.Number),\n\t\t\t\t},\n\t\t\t\t\"canvas_component\",\n\t\t\t)\n\t\t}\n\n\t\tcase \"string\": {\n\t\t\treturn createVariable(\n\t\t\t\t{\n\t\t\t\t\t...base,\n\t\t\t\t\ttype: ControlType.String,\n\t\t\t\t\tinitialValue: pluginCreateVariable.defaultValue ?? getFallbackValue(ControlType.String),\n\t\t\t\t},\n\t\t\t\t\"canvas_component\",\n\t\t\t)\n\t\t}\n\n\t\tcase \"formattedText\": {\n\t\t\treturn createVariable(\n\t\t\t\t{\n\t\t\t\t\t...base,\n\t\t\t\t\ttype: ControlType.RichText,\n\t\t\t\t\tinitialValue: pluginCreateVariable.defaultValue ?? getFallbackValue(ControlType.RichText),\n\t\t\t\t},\n\t\t\t\t\"canvas_component\",\n\t\t\t)\n\t\t}\n\n\t\tcase \"enum\": {\n\t\t\tverifyForPlugin(pluginCreateVariable.cases.length > 0, \"Enums must have at least 1 case\")\n\n\t\t\tconst cases = pluginCreateVariable.cases.map(caseOption => {\n\t\t\t\tconst nameLocalized = getEnumCaseNameLocalized(\n\t\t\t\t\tengine.tree,\n\t\t\t\t\tmanifest.id,\n\t\t\t\t\tmodeHandlers.mode,\n\t\t\t\t\tcaseOption.name,\n\t\t\t\t\tundefined,\n\t\t\t\t\tcaseOption.nameByLocale,\n\t\t\t\t)\n\n\t\t\t\treturn {\n\t\t\t\t\tid: randomID(),\n\t\t\t\t\tname: caseOption.name,\n\t\t\t\t\tnameLocalized,\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tconst defaultCase =\n\t\t\t\tpluginCreateVariable.defaultCaseIndex === undefined ? undefined : cases[pluginCreateVariable.defaultCaseIndex]\n\n\t\t\tverifyForPlugin(\n\t\t\t\tpluginCreateVariable.defaultCaseIndex === undefined || defaultCase,\n\t\t\t\t\"Default case index is out of bounds\",\n\t\t\t)\n\n\t\t\treturn createVariable(\n\t\t\t\t{\n\t\t\t\t\t...base,\n\t\t\t\t\ttype: ControlType.Enum,\n\t\t\t\t\tinitialValue: defaultCase?.id ?? getFallbackValue(ControlType.Enum),\n\t\t\t\t\tcases,\n\t\t\t\t},\n\t\t\t\t\"canvas_component\",\n\t\t\t)\n\t\t}\n\n\t\tcase \"color\": {\n\t\t\tconst initialValue =\n\t\t\t\tpluginCreateVariable.defaultValue === undefined\n\t\t\t\t\t? getFallbackValue(ControlType.Color)\n\t\t\t\t\t: getSerializedColorFromColorValue(engine, pluginCreateVariable.defaultValue)\n\n\t\t\treturn createVariable(\n\t\t\t\t{\n\t\t\t\t\t...base,\n\t\t\t\t\ttype: ControlType.Color,\n\t\t\t\t\tinitialValue,\n\t\t\t\t},\n\t\t\t\t\"canvas_component\",\n\t\t\t)\n\t\t}\n\n\t\tcase \"image\": {\n\t\t\tconst initialValue = pluginCreateVariable.defaultValue\n\t\t\t\t? assetResolver.getVekterAssetReference(\n\t\t\t\t\t\tpluginCreateVariable.defaultValue.id,\n\t\t\t\t\t\tpluginCreateVariable.defaultValue.resolution,\n\t\t\t\t\t)\n\t\t\t\t: getFallbackValue(ControlType.Image)\n\n\t\t\treturn createVariable(\n\t\t\t\t{\n\t\t\t\t\t...base,\n\t\t\t\t\ttype: ControlType.Image,\n\t\t\t\t\tinitialValue,\n\t\t\t\t},\n\t\t\t\t\"canvas_component\",\n\t\t\t)\n\t\t}\n\n\t\tcase \"file\": {\n\t\t\tconst initialValue = pluginCreateVariable.defaultValue\n\t\t\t\t? assetResolver.getVekterAssetReference(pluginCreateVariable.defaultValue.id, undefined)\n\t\t\t\t: getFallbackValue(ControlType.File)\n\n\t\t\treturn createVariable(\n\t\t\t\t{\n\t\t\t\t\t...base,\n\t\t\t\t\ttype: ControlType.File,\n\t\t\t\t\tinitialValue,\n\t\t\t\t\tallowedFileTypes: fieldFileTypesToVariableFileTypes(pluginCreateVariable.allowedFileTypes),\n\t\t\t\t},\n\t\t\t\t\"canvas_component\",\n\t\t\t)\n\t\t}\n\n\t\tcase \"link\": {\n\t\t\treturn createVariable(\n\t\t\t\t{\n\t\t\t\t\t...base,\n\t\t\t\t\ttype: ControlType.Link,\n\t\t\t\t\tinitialValue: getFallbackValue(ControlType.Link),\n\t\t\t\t},\n\t\t\t\t\"canvas_component\",\n\t\t\t)\n\t\t}\n\n\t\tcase \"date\": {\n\t\t\tif (!isUndefined(pluginCreateVariable.defaultValue)) {\n\t\t\t\tconst date = new Date(pluginCreateVariable.defaultValue)\n\t\t\t\tverifyForPlugin(isValidDate(date), \"Invalid default date\")\n\n\t\t\t\treturn createVariable(\n\t\t\t\t\t{\n\t\t\t\t\t\t...base,\n\t\t\t\t\t\ttype: ControlType.Date,\n\t\t\t\t\t\tinitialValue: date.toJSON(),\n\t\t\t\t\t},\n\t\t\t\t\t\"canvas_component\",\n\t\t\t\t)\n\t\t\t}\n\n\t\t\treturn createVariable(\n\t\t\t\t{\n\t\t\t\t\t...base,\n\t\t\t\t\ttype: ControlType.Date,\n\t\t\t\t\tinitialValue: getFallbackValue(ControlType.Date),\n\t\t\t\t},\n\t\t\t\t\"canvas_component\",\n\t\t\t)\n\t\t}\n\n\t\tcase \"border\": {\n\t\t\tconst initialValue = pluginCreateVariable.defaultValue\n\t\t\t\t? {\n\t\t\t\t\t\t...borderValueDefaults,\n\t\t\t\t\t\t...getVekterBorderValuesFromPluginBorder(engine, pluginCreateVariable.defaultValue),\n\t\t\t\t\t}\n\t\t\t\t: getFallbackValue(ControlType.Border)\n\n\t\t\treturn createVariable(\n\t\t\t\t{\n\t\t\t\t\t...base,\n\t\t\t\t\ttype: ControlType.Border,\n\t\t\t\t\tinitialValue,\n\t\t\t\t},\n\t\t\t\t\"canvas_component\",\n\t\t\t)\n\t\t}\n\n\t\tdefault: {\n\t\t\tassertNever(pluginCreateVariable)\n\t\t}\n\t}\n}\n\ntype PluginTypeToVekterVariable<T extends UpdateVariable[\"type\"]> = T extends \"unsupported\"\n\t? Exclude<VariableOrDivider, { type: SupportedVekterType }>\n\t: Extract<\n\t\t\tVariableOrDivider,\n\t\t\t{ type: (typeof pluginClassToSupportedVekterType)[TypeToClass<Exclude<T, \"unsupported\">>] }\n\t\t>\n\nfunction assertVariableTypesMatch<T extends UpdateVariable[\"type\"]>(\n\tvariable: Omit<VariableOrDivider, \"name\">,\n\tpluginType: T,\n): asserts variable is PluginTypeToVekterVariable<T> {\n\tif (!isSupportedVekterType(variable.type)) {\n\t\tif (pluginType === \"unsupported\") return\n\t\tthrow new PluginOnlyError(`Variable is unsupported, but received ${pluginType}`)\n\t}\n\n\tconst expectedVariableType = classToType(supportedVekterTypeToPluginClass[variable.type])\n\tif (expectedVariableType === pluginType) return\n\tthrow new PluginOnlyError(`Variable is ${expectedVariableType}, but received ${pluginType}`)\n}\n\nasync function updateVariables<T>(\n\tengine: VekterEngine,\n\tnode: CanvasNode & { variables: T },\n\trecipe: (x: Draft<T>) => void,\n): Promise<T> {\n\tconst variables = produce(node.variables, recipe)\n\tif (variables === node.variables) return variables\n\n\tawait engine.scheduler.processWhenReadyAsync(() => {\n\t\tnode.set({ variables })\n\t})\n\n\treturn variables\n}\n\nexport async function updateVariablesWithPluginUpdateVariable<T extends VariableOrDivider>(\n\tcontext: ActivePluginContext,\n\tnode: CanvasNode & { variables: readonly T[] },\n\tvariableIndex: number,\n\tpluginUpdateVariable: Marshaled<UpdateVariable>,\n): Promise<readonly T[]> {\n\treturn updateVariables(context.engine, node, draftVariables => {\n\t\t// To make sure that every case calls assertVariableTypesMatch, we omit the name from the\n\t\t// type and move its modification to the end. This way if any case forgets to call\n\t\t// assertVariableTypesMatch, then draftVariable won't have the name property on it and\n\t\t// TypeScript will error.\n\t\t//\n\t\t// Could have an additional top-level call to assertVariableTypesMatch instead, but we still\n\t\t// want additional safety within the cases, because the \"unionized\" initialValue resolves to\n\t\t// \"unknown\", allowing any default value on any variable.\n\n\t\tconst draftVariable: WritableDraft<Omit<VariableOrDivider, \"name\">> | undefined = draftVariables[variableIndex]\n\t\tassert(draftVariable)\n\n\t\tif (!isUndefined(pluginUpdateVariable.description)) {\n\t\t\tdraftVariable.description = pluginUpdateVariable.description ?? undefined // null = unset\n\t\t}\n\n\t\tswitch (pluginUpdateVariable.type) {\n\t\t\tcase \"boolean\": {\n\t\t\t\tassertVariableTypesMatch(draftVariable, pluginUpdateVariable.type)\n\n\t\t\t\tif (!isUndefined(pluginUpdateVariable.defaultValue)) {\n\t\t\t\t\tdraftVariable.initialValue = pluginUpdateVariable.defaultValue\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tcase \"number\": {\n\t\t\t\tassertVariableTypesMatch(draftVariable, pluginUpdateVariable.type)\n\n\t\t\t\tif (!isUndefined(pluginUpdateVariable.defaultValue)) {\n\t\t\t\t\tdraftVariable.initialValue = pluginUpdateVariable.defaultValue\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tcase \"string\": {\n\t\t\t\tassertVariableTypesMatch(draftVariable, pluginUpdateVariable.type)\n\n\t\t\t\tif (!isUndefined(pluginUpdateVariable.defaultValue)) {\n\t\t\t\t\tdraftVariable.initialValue = pluginUpdateVariable.defaultValue\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tcase \"formattedText\": {\n\t\t\t\tassertVariableTypesMatch(draftVariable, pluginUpdateVariable.type)\n\n\t\t\t\tif (!isUndefined(pluginUpdateVariable.defaultValue)) {\n\t\t\t\t\tdraftVariable.initialValue = pluginUpdateVariable.defaultValue\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tcase \"enum\": {\n\t\t\t\tassertVariableTypesMatch(draftVariable, pluginUpdateVariable.type)\n\n\t\t\t\tif (!isUndefined(pluginUpdateVariable.defaultValue)) {\n\t\t\t\t\tverifyForPlugin(\n\t\t\t\t\t\tdraftVariable.cases.find(enumCase => enumCase.id === pluginUpdateVariable.defaultValue),\n\t\t\t\t\t\t\"Invalid default enum value\",\n\t\t\t\t\t)\n\n\t\t\t\t\tdraftVariable.initialValue = pluginUpdateVariable.defaultValue\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tcase \"color\": {\n\t\t\t\tassertVariableTypesMatch(draftVariable, pluginUpdateVariable.type)\n\n\t\t\t\tif (!isUndefined(pluginUpdateVariable.defaultValue)) {\n\t\t\t\t\tdraftVariable.initialValue = getSerializedColorFromColorValue(\n\t\t\t\t\t\tcontext.engine,\n\t\t\t\t\t\tpluginUpdateVariable.defaultValue,\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tcase \"image\": {\n\t\t\t\tassertVariableTypesMatch(draftVariable, pluginUpdateVariable.type)\n\n\t\t\t\tif (!isUndefined(pluginUpdateVariable.defaultValue)) {\n\t\t\t\t\tdraftVariable.initialValue = context.assetResolver.getVekterAssetReference(\n\t\t\t\t\t\tpluginUpdateVariable.defaultValue.id,\n\t\t\t\t\t\tpluginUpdateVariable.defaultValue.resolution,\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tcase \"file\": {\n\t\t\t\tassertVariableTypesMatch(draftVariable, pluginUpdateVariable.type)\n\n\t\t\t\tif (!isUndefined(pluginUpdateVariable.defaultValue)) {\n\t\t\t\t\tdraftVariable.initialValue = context.assetResolver.getVekterAssetReference(\n\t\t\t\t\t\tpluginUpdateVariable.defaultValue.id,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tif (!isUndefined(pluginUpdateVariable.allowedFileTypes)) {\n\t\t\t\t\tdraftVariable.allowedFileTypes = fieldFileTypesToVariableFileTypes(pluginUpdateVariable.allowedFileTypes)\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tcase \"link\": {\n\t\t\t\tassertVariableTypesMatch(draftVariable, pluginUpdateVariable.type)\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tcase \"date\": {\n\t\t\t\tassertVariableTypesMatch(draftVariable, pluginUpdateVariable.type)\n\n\t\t\t\tif (!isUndefined(pluginUpdateVariable.defaultValue)) {\n\t\t\t\t\tconst date = new Date(pluginUpdateVariable.defaultValue)\n\t\t\t\t\tverifyForPlugin(isValidDate(date), \"Invalid default date\")\n\t\t\t\t\tdraftVariable.initialValue = date.toJSON()\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tcase \"border\": {\n\t\t\t\tassertVariableTypesMatch(draftVariable, pluginUpdateVariable.type)\n\n\t\t\t\tif (!isUndefined(pluginUpdateVariable.defaultValue)) {\n\t\t\t\t\tdraftVariable.initialValue = {\n\t\t\t\t\t\t...borderValueDefaults,\n\t\t\t\t\t\t...getVekterBorderValuesFromPluginBorder(context.engine, pluginUpdateVariable.defaultValue),\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tcase \"unsupported\": {\n\t\t\t\tassertVariableTypesMatch(draftVariable, pluginUpdateVariable.type)\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\tassertNever(pluginUpdateVariable)\n\t\t\t}\n\t\t}\n\n\t\tif (!isUndefined(pluginUpdateVariable.name)) {\n\t\t\tconst existingVariableNames = new Set(\n\t\t\t\tdraftVariables.filter((_, index) => index !== variableIndex).map(variable => variable.name),\n\t\t\t)\n\n\t\t\tdraftVariable.name = uniqueVariableName(pluginUpdateVariable.name, existingVariableNames, {\n\t\t\t\tisDivider: draftVariable.type === \"divider\",\n\t\t\t})\n\t\t}\n\t})\n}\n\nfunction getNodeAndEnumVariable(\n\tengine: VekterEngine,\n\tnodeId: string,\n\tvariableId: string,\n): { node: CanvasNode & WithVariables; variableIndex: number; variable: EnumVariableDefinition | null } {\n\tconst node = engine.tree.get(nodeId)\n\n\tverifyForPlugin(\n\t\tisUnmanagedCollection(node) || isSmartComponentNode(node),\n\t\t\"Node not unmanaged collection or smart component\",\n\t)\n\n\tconst variableIndex = node.variables.findIndex(candidateVariable => candidateVariable.id === variableId)\n\tif (variableIndex === -1) return { node, variableIndex, variable: null } // Could be deleted\n\n\tconst variable = node.variables[variableIndex]\n\tverifyForPlugin(variable?.type === ControlType.Enum, \"Variable not enum\")\n\n\treturn { node, variableIndex, variable }\n}\n\nexport async function addEnumCase(\n\t{ engine, manifest, modeHandlers }: ActivePluginContext,\n\tnodeId: string,\n\tvariableId: string,\n\tattributes: CreateEnumCase,\n): Promise<EnumCaseData | null> {\n\tconst { node, variableIndex, variable } = getNodeAndEnumVariable(engine, nodeId, variableId)\n\tif (!variable) return null // Could be deleted\n\n\tconst newCase = {\n\t\tid: randomID(),\n\t\tname: attributes.name,\n\t\tnameLocalized: getEnumCaseNameLocalized(\n\t\t\tengine.tree,\n\t\t\tmanifest.id,\n\t\t\tmodeHandlers.mode,\n\t\t\tattributes.name,\n\t\t\tundefined,\n\t\t\tattributes.nameByLocale,\n\t\t),\n\t}\n\n\tconst newVariables = await updateVariables(engine, node, draftVariables => {\n\t\tconst draftVariable = draftVariables[variableIndex]\n\t\tassert(draftVariable?.type === ControlType.Enum)\n\t\tdraftVariable.cases.push(newCase)\n\t})\n\n\tconst newVariable = newVariables[variableIndex]\n\tassert(newVariable?.type === ControlType.Enum)\n\n\treturn enumVariableCaseToEnumCaseData(engine, node, newVariable, newCase)\n}\n\nexport async function updateEnumCase(\n\t{ engine, manifest, modeHandlers }: ActivePluginContext,\n\tnodeId: string,\n\tvariableId: string,\n\tcaseId: string,\n\tattributes: UpdateEnumCase,\n): Promise<EnumCaseData | null> {\n\tconst { node, variableIndex, variable } = getNodeAndEnumVariable(engine, nodeId, variableId)\n\tif (!variable) return null // Could be deleted\n\n\tconst caseIndex = variable.cases.findIndex(candidateCase => candidateCase.id === caseId)\n\tif (caseIndex === -1) return null // Could be deleted\n\n\tconst variables = await updateVariables(engine, node, draftVariables => {\n\t\tconst draftVariable = draftVariables[variableIndex]\n\t\tassert(draftVariable?.type === ControlType.Enum)\n\n\t\tconst draftCase = draftVariable.cases[caseIndex]\n\t\tassert(draftCase)\n\n\t\tif (!isUndefined(attributes.name)) {\n\t\t\tdraftCase.name = attributes.name\n\t\t}\n\n\t\tif (!isUndefined(attributes.name) || !isUndefined(attributes.nameByLocale)) {\n\t\t\tdraftCase.nameLocalized = getEnumCaseNameLocalized(\n\t\t\t\tengine.tree,\n\t\t\t\tmanifest.id,\n\t\t\t\tmodeHandlers.mode,\n\t\t\t\tdraftCase.name,\n\t\t\t\tdraftCase.nameLocalized,\n\t\t\t\tattributes.nameByLocale,\n\t\t\t)\n\t\t}\n\t})\n\n\tconst newVariable = variables[variableIndex]\n\tassert(newVariable?.type === ControlType.Enum)\n\n\tconst newCase = newVariable.cases[caseIndex]\n\tassert(newCase)\n\n\treturn enumVariableCaseToEnumCaseData(engine, node, newVariable, newCase)\n}\n\nexport async function removeEnumCase(\n\t{ engine }: ActivePluginContext,\n\tnodeId: string,\n\tvariableId: string,\n\tcaseId: string,\n): Promise<void> {\n\tconst { node, variableIndex, variable } = getNodeAndEnumVariable(engine, nodeId, variableId)\n\tif (!variable) return // Could be deleted\n\n\tconst caseIndex = variable.cases.findIndex(candidateCase => candidateCase.id === caseId)\n\tif (caseIndex === -1) return // Could be deleted\n\n\tawait updateVariables(engine, node, draftVariables => {\n\t\tconst draftVariable = draftVariables[variableIndex]\n\t\tassert(draftVariable?.type === ControlType.Enum)\n\n\t\tdraftVariable.cases.splice(caseIndex, 1)\n\t\tverifyForPlugin(draftVariable.cases.length > 0, \"Enum variables must have at least one case\")\n\t})\n}\n\nexport async function setEnumCaseOrder(\n\t{ engine }: ActivePluginContext,\n\tnodeId: string,\n\tvariableId: string,\n\tcaseIds: string[],\n): Promise<void> {\n\tconst { node, variableIndex, variable } = getNodeAndEnumVariable(engine, nodeId, variableId)\n\tif (!variable) return // Could be deleted\n\n\tconst caseIdToIndex = arrayToMap(caseIds, (caseId, index) => [caseId, index])\n\n\tawait updateVariables(engine, node, draftVariables => {\n\t\tconst draftVariable = draftVariables[variableIndex]\n\t\tassert(draftVariable?.type === ControlType.Enum)\n\n\t\tdraftVariable.cases.sort((a, b) => {\n\t\t\tconst indexA = caseIdToIndex.get(a.id) ?? Number.POSITIVE_INFINITY\n\t\t\tconst indexB = caseIdToIndex.get(b.id) ?? Number.POSITIVE_INFINITY\n\t\t\treturn indexA - indexB\n\t\t})\n\t})\n}\n\nexport async function setVariableOrder(\n\t{ engine }: ActivePluginContext,\n\tnodeId: string,\n\tvariableIds: string[],\n): Promise<void> {\n\tconst component = engine.tree.getNode(nodeId)\n\tverifyForPlugin(isSmartComponentNode(component), \"Node is not a ComponentNode\")\n\n\tconst variableIdToIndex = arrayToMap(variableIds, (variableId, index) => [variableId, index])\n\n\tawait updateVariables(engine, component, draftVariables => {\n\t\tdraftVariables.sort((a, b) => {\n\t\t\tconst indexA = variableIdToIndex.get(a.id) ?? Number.POSITIVE_INFINITY\n\t\t\tconst indexB = variableIdToIndex.get(b.id) ?? Number.POSITIVE_INFINITY\n\t\t\treturn indexA - indexB\n\t\t})\n\t})\n}\n", "import { isAssetReference } from \"@framerjs/assets\"\nimport type {\n\tVerifiedArrayControlDescription,\n\tVerifiedControlDescription,\n\tVerifiedObjectControlDescription,\n} from \"@framerjs/framer-runtime\"\nimport { assert } from \"@framerjs/shared\"\nimport {\n\ttype ControlTypeThatTakesVariableReference,\n\tsupportedVariableTypesByControlType,\n} from \"document/components/chrome/properties/codeComponentRows/utils/supportedVariableTypesByControlType.ts\"\nimport type { CanvasNode, CodeComponentNode } from \"document/models/CanvasTree/index.ts\"\nimport { isComputedValue } from \"document/models/CanvasTree/traits/ComputedValue.ts\"\nimport { isDynamicValue } from \"document/models/CanvasTree/traits/DynamicValue.ts\"\nimport { type VariableReference, isVariableReference } from \"document/models/CanvasTree/traits/VariableReference.ts\"\nimport type { LinkVariables } from \"document/models/CanvasTree/traits/utils/Link.ts\"\nimport type { ControlProp } from \"document/models/controlProps/ControlProp.ts\"\nimport { styleForFontValue } from \"document/models/controlProps/FontControlPropValue.ts\"\nimport { assertRichTextTreeValueIsHTML } from \"document/models/richText/richTextStorage.ts\"\nimport {\n\ttype BooleanControlDescription,\n\ttype BorderControlDescription,\n\ttype BorderRadiusControlDescription,\n\ttype BoxShadowControlDescription,\n\ttype ChangeHandlerControlDescription,\n\ttype CollectionReferenceControlDescription,\n\ttype ColorControlDescription,\n\tControlType,\n\ttype CursorControlDescription,\n\ttype CustomCursorControlDescription,\n\ttype DateControlDescription,\n\ttype EnumControlDescription,\n\ttype EventHandlerControlDescription,\n\ttype FileControlDescription,\n\ttype FontControlDescription,\n\ttype FusedNumberControlDescription,\n\ttype GapControlDescription,\n\ttype ImageControlDescription,\n\ttype LinkControlDescription,\n\ttype LinkRelValuesControlDescription,\n\ttype Location,\n\ttype LocationControlDescription,\n\ttype MultiCollectionReferenceControlDescription,\n\ttype NumberControlDescription,\n\ttype PaddingControlDescription,\n\ttype PageScopeControlDescription,\n\ttype ResponsiveImageControlDescription,\n\ttype RichTextControlDescription,\n\ttype ScrollSectionRefControlDescription,\n\ttype SlotControlDescription,\n\ttype StringControlDescription,\n\ttype TrackingIdControlDescription,\n\ttype TransitionControlDescription,\n\ttype VectorSetItemControlDescription,\n} from \"library/render/types/PropertyControls.ts\"\nimport { fallbackTitleForOption } from \"utils/enumControlUtils.ts\"\nimport { getVariableAndSource } from \"utils/getVariableAndSource.ts\"\nimport { isNull, isUndefined } from \"utils/typeChecks.ts\"\nimport type { UnsupportedComputedValueData } from \"#framer-plugin/computedValues.ts\"\nimport type {\n\tArrayControl,\n\tArrayItem,\n\tArrayItemControl,\n\tBooleanControl,\n\tBorderControl,\n\tBorderRadiusControl,\n\tCollectionReferenceControl,\n\tColorControl,\n\tControl,\n\tCursorControl,\n\tCustomCursorControl,\n\tDateControl,\n\tEnumControl,\n\tEventHandlerControl,\n\tFileControl,\n\tFontControl,\n\tFormattedTextControl,\n\tFusedNumberControl,\n\tGapControl,\n\tImageControl,\n\tLinkControl,\n\tLinkRelControl,\n\tLocationControl,\n\tMultiCollectionReferenceControl,\n\tNumberControl,\n\tObjectControl,\n\tPaddingControl,\n\tPageScopeControl,\n\tScrollSectionControl,\n\tShadowControl,\n\tSlotControl,\n\tStringControl,\n\tTrackingIdControl,\n\tTransitionControl,\n\tVectorSetItemControl,\n} from \"#framer-plugin/controls.ts\"\nimport type { Marshaled } from \"#framer-plugin/marshal.ts\"\nimport type { VariableData } from \"#framer-plugin/variables.ts\"\nimport type { ActivePluginContext } from \"./ActivePlugin.ts\"\nimport { getPluginBorderFromVekterBorderValues } from \"./borders.ts\"\nimport { getColorValueFromSerializedColor } from \"./styles.ts\"\nimport { type VekterTypeToPluginClass, variableToVariableData } from \"./variables.ts\"\n\nexport function getPluginControlsFromVekter(\n\tnode: CodeComponentNode,\n\tcontext: ActivePluginContext,\n): Marshaled<Record<string, Control>> | undefined {\n\tconst component = context.engine.componentLoader.reactComponentForIdentifier(node.codeComponentIdentifier)\n\tif (!component) return\n\n\tconst controlProps = node.getControlProps(component.properties)\n\tconst result: Marshaled<Record<string, Control>> = {}\n\n\tfor (const key of Object.keys(component.properties)) {\n\t\tconst control = component.properties[key]\n\t\tassert(control)\n\t\tconst resultItem = getPluginControlFromVekter(node, context, key, control, controlProps[key])\n\t\tif (!resultItem) continue\n\t\tresult[key] = resultItem\n\t}\n\n\treturn result\n}\n\n// Inspired by collectControlPropValue in getControlPropValues.ts and resolveControlPropValue in\n// getResolvedControlPropValues.ts. Not using directly because:\n//\n// 1. They aren't really built for having a resolveDynamicValue that returns some representation of\n//    a variable, rather than its value. Solvable, but tedious.\n//\n// 2. Control descriptions would still be on us.\n//\n// 3. The typing is `unknown` throughout, making missteps easier.\n//\n// Generic as to make item typing in array controls easier (because arrays support only a subset of\n// control types), that's the only reason.\nfunction getPluginControlFromVekter<T extends VerifiedControlDescription>(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: T,\n\tcontrolProp: ControlProp | undefined,\n): ReturnType<VekterControlTypeToConverter[T[\"type\"]]> {\n\t// Explicit type because otherwise the \"control\" parameter is an intersection that resolves to\n\t// never (as there's no overlap). We already verified that the function is typed correctly in\n\t// the \"satisfies\" on vekterControlTypeToConverter, so there's no need in specificity.\n\tconst converter: (\n\t\tnode: CanvasNode,\n\t\tcontext: ActivePluginContext,\n\t\tkey: string,\n\t\tcontrol: VerifiedControlDescription,\n\t\tcontrolProp: ControlProp | undefined,\n\t) => Marshaled<Control> | undefined = vekterControlTypeToConverter[control.type]\n\n\t// Inevitable cast, since we threw away the type of \"control\" above, and even if we didn't,\n\t// TypeScript still doesn't do correlated unions.\n\treturn converter(node, context, key, control, controlProp) as ReturnType<typeof getPluginControlFromVekter<T>>\n}\n\ntype VekterControlTypeToConverter = typeof vekterControlTypeToConverter\n\nconst vekterControlTypeToConverter = {\n\t[ControlType.Enum]: getPluginEnumControlFromVekter,\n\t[ControlType.Boolean]: getPluginBooleanControlFromVekter,\n\t[ControlType.Border]: getPluginBorderControlFromVekter,\n\t[ControlType.BoxShadow]: getPluginShadowControlFromVekter,\n\t[ControlType.Date]: getPluginDateControlFromVekter,\n\t[ControlType.Number]: getPluginNumberControlFromVekter,\n\t[ControlType.Transition]: getPluginTransitionControlFromVekter,\n\t[ControlType.String]: getPluginStringControlFromVekter,\n\t[ControlType.Color]: getPluginColorControlFromVekter,\n\t[ControlType.RichText]: getPluginFormattedTextControlFromVekter,\n\t[ControlType.Link]: getPluginLinkControlFromVekter,\n\t[ControlType.LinkRelValues]: getPluginLinkRelControlFromVekter,\n\t[ControlType.Font]: getPluginFontControlFromVekter,\n\t[ControlType.PageScope]: getPluginPageScopeControlFromVekter,\n\t[ControlType.ScrollSectionRef]: getPluginScrollSectionControlFromVekter,\n\t[ControlType.CustomCursor]: getPluginCustomCursorControlFromVekter,\n\t[ControlType.Cursor]: getPluginCursorControlFromVekter,\n\t[ControlType.File]: getPluginFileControlFromVekter,\n\t[ControlType.Gap]: getPluginGapControlFromVekter,\n\t[ControlType.Padding]: getPluginPaddingControlFromVekter,\n\t[ControlType.BorderRadius]: getPluginBorderRadiusControlFromVekter,\n\t[ControlType.CollectionReference]: getPluginCollectionReferenceControlFromVekter,\n\t[ControlType.MultiCollectionReference]: getPluginMultiCollectionReferenceControlFromVekter,\n\t[ControlType.VectorSetItem]: getPluginVectorSetItemControlFromVekter,\n\t[ControlType.TrackingId]: getPluginTrackingIdControlFromVekter,\n\t[ControlType.ResponsiveImage]: getPluginImageControlFromVekter,\n\t[ControlType.Image]: getPluginImageControlFromVekter,\n\t[ControlType.FusedNumber]: getPluginFusedNumberControlFromVekter,\n\t[ControlType.Object]: getPluginObjectControlFromVekter,\n\t[ControlType.Array]: getPluginArrayControlFromVekter,\n\t[ControlType.EventHandler]: getPluginEventHandlerControlFromVekter,\n\t[ControlType.ChangeHandler]: getPluginChangeHandlerControlFromVekter,\n\t[ControlType.Slot]: getPluginSlotControlFromVekter,\n\t[ControlType.Location]: getPluginLocationControlFromVekter,\n} as const satisfies {\n\t[K in VerifiedControlDescription[\"type\"]]:\n\t\t| ((\n\t\t\t\tnode: CanvasNode,\n\t\t\t\tcontext: ActivePluginContext,\n\t\t\t\tkey: string,\n\t\t\t\tcontrol: Extract<VerifiedControlDescription, { type: K }>,\n\t\t\t\tcontrolProp: ControlProp | undefined,\n\t\t  ) => Marshaled<Control> | undefined)\n\t\t| undefined\n}\n\nfunction getPluginEnumControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: EnumControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<EnumControl> {\n\tconst options = control.options.map((id, index) => ({\n\t\tid,\n\t\ttitle: control.optionTitles?.[index] ?? fallbackTitleForOption(id),\n\t}))\n\tconst base = { type: \"enum\", key, title: control.title, description: control.description, options } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isComputedValue(value)) return withComputedValue(base)\n\treturn { ...base, value }\n}\n\nfunction getPluginBooleanControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: BooleanControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<BooleanControl> {\n\tconst base = { type: \"boolean\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isComputedValue(value)) return withComputedValue(base)\n\tif (isNull(value)) return base\n\treturn { ...base, value }\n}\n\nfunction getPluginBorderControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: BorderControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<BorderControl> {\n\tconst base = { type: \"border\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isNull(value)) return base\n\treturn { ...base, value: getPluginBorderFromVekterBorderValues(context.engine, value) }\n}\n\nfunction getPluginShadowControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: BoxShadowControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<ShadowControl> {\n\tconst base = { type: \"shadow\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isComputedValue(value)) return withComputedValue(base)\n\treturn { ...base, value }\n}\n\nfunction getPluginDateControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: DateControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<DateControl> {\n\tconst base = { type: \"date\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isComputedValue(value)) return withComputedValue(base)\n\treturn { ...base, value }\n}\n\nfunction getPluginLocationControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: LocationControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<LocationControl> {\n\tconst base = { type: \"location\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (!value) return { ...base, value: undefined }\n\tconst location: Location = { coordinate: value }\n\tif (controlProp.title) location.title = controlProp.title\n\tif (controlProp.address) location.address = controlProp.address\n\treturn { ...base, value: location }\n}\n\nfunction getPluginNumberControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: NumberControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<NumberControl> {\n\tconst base = { type: \"number\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isComputedValue(value)) return withComputedValue(base)\n\tif (isNull(value)) return base\n\treturn { ...base, value }\n}\n\nfunction getPluginTransitionControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: TransitionControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<TransitionControl> {\n\tconst base = { type: \"transition\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\treturn { ...base, value }\n}\n\nfunction getPluginStringControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: StringControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<StringControl> {\n\tconst base = { type: \"string\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isComputedValue(value)) return withComputedValue(base)\n\tif (isNull(value)) return base\n\treturn { ...base, value }\n}\n\nfunction getPluginColorControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: ColorControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<ColorControl> {\n\tconst base = { type: \"color\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isComputedValue(value)) return withComputedValue(base)\n\tif (isNull(value)) return base\n\treturn { ...base, value: getColorValueFromSerializedColor(context.engine, value) }\n}\n\nfunction getPluginFormattedTextControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: RichTextControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<FormattedTextControl> {\n\tconst base = { type: \"formattedText\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isComputedValue(value)) return withComputedValue(base)\n\tassertRichTextTreeValueIsHTML(value, \"getPluginControlsFromVekter\")\n\treturn { ...base, value }\n}\n\nfunction collectionItemIdFromLinkVariables(linkVariables: LinkVariables | undefined): string | undefined {\n\tif (!linkVariables) return undefined\n\tconst linkVariable = Object.values(linkVariables)[0]\n\tif (!linkVariable || isVariableReference(linkVariable)) return undefined\n\treturn linkVariable.collectionItemId\n}\n\nfunction getPluginLinkControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: LinkControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<LinkControl> {\n\tconst base = { type: \"link\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isComputedValue(value)) return withComputedValue(base)\n\tif (isUndefined(value)) return base\n\tif (value.type === \"url\") return { ...base, value }\n\n\tconst scrollSection = value.hash\n\t\t? {\n\t\t\t\ttargetNodeId: value.hash,\n\t\t\t\tcollectionItemId: collectionItemIdFromLinkVariables(value.hashVariables),\n\t\t\t}\n\t\t: undefined\n\n\treturn {\n\t\t...base,\n\t\tvalue: {\n\t\t\ttype: \"webPage\",\n\t\t\twebPageId: value.webPageId,\n\t\t\tcollectionItemId: collectionItemIdFromLinkVariables(value.pathVariables),\n\t\t\tscrollSection,\n\t\t},\n\t}\n}\n\nfunction getPluginLinkRelControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: LinkRelValuesControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<LinkRelControl> {\n\tconst base = { type: \"linkRel\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\treturn { ...base, value }\n}\n\nfunction getPluginFontControlFromVekter(\n\t_: CanvasNode,\n\t__: ActivePluginContext,\n\tkey: string,\n\tcontrol: FontControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<FontControl> {\n\tconst base = { type: \"font\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isUndefined(value)) return base\n\treturn { ...base, value: styleForFontValue(value) }\n}\n\nfunction getPluginPageScopeControlFromVekter(\n\t_: CanvasNode,\n\t__: ActivePluginContext,\n\tkey: string,\n\tcontrol: PageScopeControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<PageScopeControl> {\n\tconst base = { type: \"pageScope\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\treturn { ...base, value }\n}\n\nfunction getPluginScrollSectionControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: ScrollSectionRefControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<ScrollSectionControl> {\n\tconst base = { type: \"scrollSection\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isUndefined(value)) return base\n\tconst { target, collectionItem } = value\n\tif (isUndefined(target) || isVariableReference(target) || isVariableReference(collectionItem)) return base\n\treturn { ...base, value: { targetNodeId: target, collectionItemId: collectionItem?.collectionItemId } }\n}\n\nfunction getPluginCustomCursorControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: CustomCursorControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<CustomCursorControl> {\n\tconst base = { type: \"customCursor\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isUndefined(value)) return base\n\n\treturn {\n\t\t...base,\n\t\tvalue: {\n\t\t\tsmartComponentId: value.customCursorSmartComponentId,\n\t\t\tvariant: value.customCursorVariant,\n\t\t\tfollow: value.customCursorFollow,\n\t\t\toffsetX: value.customCursorOffsetX,\n\t\t\toffsetY: value.customCursorOffsetY,\n\t\t\tplacement: value.customCursorPlacement,\n\t\t\talignment: value.customCursorAlignment,\n\t\t\ttransitionEnabled: value.customCursorTransitionEnabled,\n\t\t\ttransition: value.customCursorTransition,\n\t\t},\n\t}\n}\n\nfunction getPluginCursorControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: CursorControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<CursorControl> {\n\tconst base = { type: \"cursor\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\treturn { ...base, value }\n}\n\nfunction getPluginFileControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: FileControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<FileControl> {\n\tconst base = { type: \"file\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isComputedValue(value)) return withComputedValue(base)\n\tif (isUndefined(value) || !isAssetReference(value)) return base\n\treturn { ...base, value: context.assetResolver.addFile(value) }\n}\n\nfunction getPluginGapControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: GapControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<GapControl> {\n\tconst base = { type: \"gap\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isComputedValue(value)) return withComputedValue(base)\n\treturn { ...base, value }\n}\n\nfunction getPluginPaddingControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: PaddingControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<PaddingControl> {\n\tconst base = { type: \"padding\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isComputedValue(value)) return withComputedValue(base)\n\treturn { ...base, value }\n}\n\nfunction getPluginBorderRadiusControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: BorderRadiusControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<BorderRadiusControl> {\n\tconst base = { type: \"borderRadius\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isComputedValue(value)) return withComputedValue(base)\n\treturn { ...base, value }\n}\n\nfunction getPluginCollectionReferenceControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: CollectionReferenceControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<CollectionReferenceControl> {\n\tconst base = { type: \"collectionReference\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isDynamicValue(value)) return withVariable(node, context, value, base, controlProp.type)\n\treturn { ...base, value }\n}\n\nfunction getPluginMultiCollectionReferenceControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: MultiCollectionReferenceControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<MultiCollectionReferenceControl> {\n\tconst base = {\n\t\ttype: \"multiCollectionReference\",\n\t\tkey,\n\t\ttitle: control.title,\n\t\tdescription: control.description,\n\t} as const\n\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isComputedValue(value)) return withComputedValue(base)\n\treturn { ...base, value }\n}\n\nfunction getPluginVectorSetItemControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: VectorSetItemControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<VectorSetItemControl> {\n\tconst base = { type: \"vectorSetItem\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\treturn { ...base, value }\n}\n\nfunction getPluginTrackingIdControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: TrackingIdControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<TrackingIdControl> {\n\tconst base = { type: \"trackingId\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\treturn { ...base, value }\n}\n\nfunction getPluginImageControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: ImageControlDescription | ResponsiveImageControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<ImageControl> {\n\tconst base = { type: \"image\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === ControlType.Image) // Image covers both\n\tconst { value } = controlProp\n\tif (isVariableReference(value)) return withVariable(node, context, value, base, controlProp.type)\n\tif (isComputedValue(value)) return withComputedValue(base)\n\tif (isUndefined(value) || !isAssetReference(value)) return base\n\treturn { ...base, value: context.assetResolver.addImage(value, controlProp.alt) }\n}\n\nfunction getPluginFusedNumberControlFromVekter(\n\t_: CanvasNode,\n\t__: ActivePluginContext,\n\tkey: string,\n\tcontrol: FusedNumberControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<FusedNumberControl> {\n\tconst base = { type: \"fusedNumber\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value, isFused } = controlProp\n\treturn { ...base, value: { ...value, isFused } }\n}\n\nfunction getPluginObjectControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: VerifiedObjectControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<ObjectControl> {\n\tconst base = { type: \"object\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\n\tif (isNull(value)) return base\n\n\tconst typedValue: Marshaled<Record<string, Control>> = {}\n\n\tfor (const subKey of Object.keys(control.controls)) {\n\t\tconst subControl = control.controls[subKey]\n\t\tassert(subControl)\n\t\tconst item = getPluginControlFromVekter(node, context, subKey, subControl, value[subKey])\n\t\tif (!item) continue\n\t\ttypedValue[subKey] = item\n\t}\n\n\treturn { ...base, value: typedValue }\n}\n\nfunction getPluginArrayControlFromVekter(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tkey: string,\n\tcontrol: VerifiedArrayControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<ArrayControl> {\n\tconst itemControl = getPluginControlFromVekter(\n\t\tnode,\n\t\tcontext,\n\t\tkey,\n\t\tcontrol.control,\n\t\tundefined,\n\t\t// If you get a type error below, make sure ArrayItemControl is in-sync with\n\t\t// ArrayItemControlDescription.\n\t) satisfies Marshaled<ArrayItemControl>\n\n\tconst base = {\n\t\ttype: \"array\",\n\t\tkey,\n\t\ttitle: control.title,\n\t\tdescription: control.description,\n\t\titemType: itemControl.type,\n\t\titemControl,\n\t} as const\n\n\t// The casts here are unfortunate, but the generics to get this right(er) just aren't worth it,\n\t// and will require casts anyway (since TypeScript doesn't do correlated unions).\n\n\tif (!controlProp) return base as Marshaled<ArrayControl>\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\n\tif (isComputedValue(value)) return withComputedValue(base) as Marshaled<ArrayControl>\n\n\tconst items: Marshaled<ArrayItem<ArrayItemControl>[]> = []\n\n\tfor (const rawItem of value) {\n\t\tconst { value: itemValue } = getPluginControlFromVekter(node, context, rawItem.id, control.control, rawItem)\n\t\titems.push({ id: rawItem.id, value: itemValue })\n\t}\n\n\treturn { ...base, value: items } as Marshaled<ArrayControl>\n}\n\nfunction getPluginEventHandlerControlFromVekter(\n\t_: CanvasNode,\n\t__: ActivePluginContext,\n\tkey: string,\n\tcontrol: EventHandlerControlDescription,\n\t___: ControlProp | undefined,\n): Marshaled<EventHandlerControl> {\n\treturn { type: \"eventHandler\", key, title: control.title, description: control.description } as const\n}\n\nfunction getPluginChangeHandlerControlFromVekter(\n\t_: CanvasNode,\n\t__: ActivePluginContext,\n\t___: string,\n\t____: ChangeHandlerControlDescription,\n\t_____: ControlProp | undefined,\n): undefined {\n\treturn undefined\n}\n\nfunction getPluginSlotControlFromVekter(\n\t_: CanvasNode,\n\t__: ActivePluginContext,\n\tkey: string,\n\tcontrol: SlotControlDescription,\n\tcontrolProp: ControlProp | undefined,\n): Marshaled<SlotControl> {\n\tconst base = { type: \"slot\", key, title: control.title, description: control.description } as const\n\tif (!controlProp) return base\n\tassert(controlProp.type === control.type)\n\tconst { value } = controlProp\n\treturn { ...base, value: value.map(item => ({ id: item.id, nodeId: item.reference })) }\n}\n\n// Tried fusing withVariable and withComputedValue together before, but the generic type complexity\n// overhead just wasn't worth it (and this is before computed values are actually implemented).\n\nfunction withVariable<Base extends { type: string }, Type extends ControlTypeThatTakesVariableReference>(\n\tnode: CanvasNode,\n\tcontext: ActivePluginContext,\n\tvalue: VariableReference,\n\tbase: Base,\n\tcontrolType: Type,\n): Base & { value?: ControlTypeToVariableData<Type> } {\n\tconst variableAndSource = getVariableAndSource(context.engine, node, value)\n\tif (!variableAndSource) return base\n\tconst { source, variable } = variableAndSource\n\t// Not required, but we do some ambitious casts here, so best sanity-check\n\tassert(supportedVariableTypesByControlTypePatched[controlType].includes(variable.type as never))\n\n\t// in the time where not all NodeTypes are implemented (like, Fields), try/catch is an escape hatch\n\ttry {\n\t\treturn { ...base, value: variableToVariableData(context, source, variable) as ControlTypeToVariableData<Type> }\n\t} catch {\n\t\treturn base\n\t}\n}\n\ntype ControlTypeToVariableData<T extends ControlTypeThatTakesVariableReference> = Extract<\n\tVariableData,\n\t{ __class: VekterTypeToPluginClass<(typeof supportedVariableTypesByControlTypePatched)[T][number]> }\n>\n\n// https://framer-team.slack.com/archives/C06L5H5ADK2/p1762436024573759?thread_ts=1762216475.325089&cid=C06L5H5ADK2\nconst supportedVariableTypesByControlTypePatched = {\n\t...supportedVariableTypesByControlType,\n\t[ControlType.Enum]: [\"controlReference\"],\n} as const\n\nfunction withComputedValue<Base extends { type: string }>(base: Base): Base & { value: UnsupportedComputedValueData } {\n\treturn { ...base, value: { __class: \"UnsupportedComputedValue\" } }\n}\n", "import { isAssetReference } from \"@framerjs/assets\"\nimport { AnnotationKey } from \"@framerjs/framer-runtime/crossorigin\"\nimport { assert, assertNever, shouldBeNever } from \"@framerjs/shared\"\nimport { getWebPagePath } from \"document/components/utils/getWebPagePath.ts\"\nimport { getDefaultName } from \"document/components/utils/nodes.ts\"\nimport type { CanvasNode } from \"document/models/CanvasTree/index.ts\"\nimport {\n\tisCodeComponentNode,\n\tisDesignPageNode,\n\tisFrameNode,\n\tisRichTextNode,\n\tisSVGNode,\n\tisSmartComponentNode,\n\tisTextStylePresetPrimaryNode,\n\tisVectorSetNode,\n\tisWebPageNode,\n} from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport { isDynamicValue } from \"document/models/CanvasTree/traits/DynamicValue.ts\"\nimport { isVariableReference } from \"document/models/CanvasTree/traits/VariableReference.ts\"\nimport { withAltText } from \"document/models/CanvasTree/traits/WithAltText.ts\"\nimport { withAspectRatio } from \"document/models/CanvasTree/traits/WithAspectRatio.ts\"\nimport type { WithFill } from \"document/models/CanvasTree/traits/WithFill.ts\"\nimport { withFill, withOptionalFill } from \"document/models/CanvasTree/traits/WithFill.ts\"\nimport { withGridItemLayout } from \"document/models/CanvasTree/traits/WithGridItemLayout.ts\"\nimport { withGridItemSize } from \"document/models/CanvasTree/traits/WithGridItemSize.ts\"\nimport { withImageRendering } from \"document/models/CanvasTree/traits/WithImageRendering.ts\"\nimport { hasGridLayout, hasStackLayout, withLayout } from \"document/models/CanvasTree/traits/WithLayout.ts\"\nimport { withLink } from \"document/models/CanvasTree/traits/WithLink.ts\"\nimport { withLock } from \"document/models/CanvasTree/traits/WithLock.ts\"\nimport { withOpacity } from \"document/models/CanvasTree/traits/WithOpacity.ts\"\nimport { withOverflow } from \"document/models/CanvasTree/traits/WithOverflow.ts\"\nimport { withPadding } from \"document/models/CanvasTree/traits/WithPadding.ts\"\nimport { isPinnable } from \"document/models/CanvasTree/traits/WithPins.ts\"\nimport type { WithPositionType } from \"document/models/CanvasTree/traits/WithPositionType.ts\"\nimport { withPositionType } from \"document/models/CanvasTree/traits/WithPositionType.ts\"\nimport { withRadius, withRelativeRadius } from \"document/models/CanvasTree/traits/WithRadius.ts\"\nimport { withRadiusPerCorner } from \"document/models/CanvasTree/traits/WithRadiusPerCorner.ts\"\nimport { withRotation } from \"document/models/CanvasTree/traits/WithRotation.ts\"\nimport { withShape } from \"document/models/CanvasTree/traits/WithShape.ts\"\nimport { supportsSizeConstraints } from \"document/models/CanvasTree/traits/WithSizeConstraints.ts\"\nimport { withTextTruncation } from \"document/models/CanvasTree/traits/WithTextTruncation.ts\"\nimport {\n\tisGestureVariant,\n\tisPrimaryVariant,\n\tisVariant,\n\twithBreakpoint,\n} from \"document/models/CanvasTree/traits/WithVariant.ts\"\nimport { isVectorSetItem } from \"document/models/CanvasTree/traits/WithVectorSetItem.ts\"\nimport { withZIndex } from \"document/models/CanvasTree/traits/WithZIndex.ts\"\nimport { getLink, isLink } from \"document/models/CanvasTree/traits/utils/Link.ts\"\nimport { isStylableNode } from \"document/models/CanvasTree/traits/utils/hardCodedCodeComponentIdentifierChecks.ts\"\nimport { aspectRatioForNode } from \"document/models/CanvasTree/traits/utils/layoutSupportsAspectRatio.ts\"\nimport {\n\tcanBePositionAbsolute,\n\tcanBePositionFixed,\n\tcanBePositionSticky,\n} from \"document/models/CanvasTree/traits/utils/positionTypeHelpers.ts\"\nimport type { GradientColorStop } from \"document/models/GradientColorStop.ts\"\nimport { isSupportedLinkRelValueArray } from \"document/models/SupportedRelValue.ts\"\nimport type { ConstraintValues } from \"library/render/types/Constraints.ts\"\nimport { DimensionType } from \"library/render/types/Constraints.ts\"\nimport { roundedNumber, roundedNumberString } from \"library/render/utils/roundedNumber.ts\"\nimport type { Mutable } from \"utils/Mutable.ts\"\nimport { resolveLinkToURL } from \"utils/resolveLink.ts\"\nimport { isBoolean, isNull, isNumber, isString, isUndefined } from \"utils/typeChecks.ts\"\nimport type { ImageAssetData } from \"#framer-plugin/assets.ts\"\nimport type { CSSDimension, CSSUnit as PluginCSSUnit } from \"#framer-plugin/css.ts\"\nimport type { ColorStopData } from \"#framer-plugin/gradients.ts\"\nimport type { AnyNodeData, PluginNodeClass, SomeNodeData } from \"#framer-plugin/nodes.ts\"\nimport type { HeightLength, Position, WidthLength } from \"#framer-plugin/traits.ts\"\nimport type { ActivePluginContext } from \"./ActivePlugin.ts\"\nimport { getPluginBorderFromVekterBorderValues, getResolvedBorderValues } from \"./borders.ts\"\nimport { controlAttributesFromControlProps } from \"./controlAttributesFromControlProps.ts\"\nimport { getFontDataFromReadonlyFont } from \"./fonts.ts\"\nimport { getPluginControlsFromVekter } from \"./getPluginControlsFromVekter.ts\"\nimport { normalizeColorForPlugin } from \"./normalizeColor.ts\"\nimport { getColorValueFromSerializedColor, getTextStyleDataFromPreset } from \"./styles.ts\"\nimport { getComponentInsertURLFromIdentifier, getComponentNameFromIdentifier } from \"./utils/getComponentURL.ts\"\n\ntype MutableAnyNodeData = Mutable<Partial<AnyNodeData>>\n\nexport function getPluginClassFromVekterNode(node: CanvasNode): PluginNodeClass {\n\tif (isFrameNode(node)) return \"FrameNode\"\n\tif (isRichTextNode(node)) return \"TextNode\"\n\tif (isSVGNode(node)) return \"SVGNode\"\n\tif (isCodeComponentNode(node)) return \"ComponentInstanceNode\"\n\tif (isSmartComponentNode(node)) return \"ComponentNode\"\n\tif (isDesignPageNode(node)) return \"DesignPageNode\"\n\tif (isWebPageNode(node)) return \"WebPageNode\"\n\tif (isVectorSetNode(node)) return \"VectorSetNode\"\n\tif (isVectorSetItem(node)) return \"VectorSetItemNode\"\n\treturn \"UnknownNode\"\n}\n\nexport function isUnknownNode(node: CanvasNode | null | undefined): node is null | undefined {\n\tif (!node) return true\n\treturn getPluginClassFromVekterNode(node) === \"UnknownNode\"\n}\n\nexport function getPluginNodeDataFromVekter(node: CanvasNode, context: ActivePluginContext): SomeNodeData {\n\tconst __class = getPluginClassFromVekterNode(node)\n\tconst attributes: MutableAnyNodeData = {\n\t\tid: node.id,\n\t\t__class,\n\t\toriginalId: node.originalid,\n\t}\n\tif (isUnknownNode(node)) return attributes as SomeNodeData\n\n\t// Layout\n\tconst position = getAndCollectPosition(node, attributes, context)\n\tif (isPinnable(node)) {\n\t\tconst constraintValues = node.constraintValues()\n\t\tcollectPins(node, position, constraintValues, attributes)\n\t\tcollectSize(node, position, constraintValues, attributes)\n\t\tcollectSizeConstraints(node, attributes)\n\t\tcollectAspectRatio(node, constraintValues, attributes)\n\t}\n\n\t// Other\n\tcollectName(node, attributes, context)\n\tcollectVisible(node, attributes)\n\tcollectLocked(node, attributes)\n\tcollectOpacity(node, attributes)\n\tcollectOverflow(node, attributes)\n\tcollectZIndex(node, attributes)\n\tcollectTextTruncation(node, attributes)\n\tcollectRotation(node, attributes)\n\tcollectRadius(node, attributes)\n\tcollectBorder(node, attributes, context)\n\tcollectBackground(node, attributes, context)\n\tcollectComponentInstanceControls(node, attributes, context)\n\tcollectComponentInfo(node, attributes, context)\n\tcollectSVG(node, attributes)\n\tcollectFont(node, attributes, context)\n\tcollectTextStyle(node, attributes, context)\n\tcollectWebPageInfo(node, attributes, context)\n\tcollectLink(node, attributes, context)\n\tcollectImageRendering(node, attributes)\n\tcollectLayout(node, attributes)\n\tcollectPadding(node, attributes)\n\tcollectGridItemLayout(node, attributes)\n\tcollectGridItemSize(node, attributes)\n\tcollectComponentVariant(node, attributes)\n\tcollectBreakpoint(node, attributes)\n\n\treturn attributes as SomeNodeData\n}\n\nfunction collectName(node: CanvasNode, attributes: MutableAnyNodeData, context: ActivePluginContext) {\n\tif (isString(node.name)) {\n\t\tattributes.name = node.name\n\t\treturn\n\t}\n\n\tattributes.name = getDefaultName(context.engine.componentLoader, node)\n}\n\nexport function getPositionFromPositionType(\n\tnode: CanvasNode & WithPositionType,\n\tcontext: ActivePluginContext,\n): Position {\n\tif (node.__unsafeIsSlotPropertyChildNode()) return \"relative\"\n\tconst defaultPosition: Position = node.cache.parentDirected ? \"relative\" : \"absolute\"\n\n\tswitch (node.position) {\n\t\tcase \"sticky\":\n\t\t\tif (canBePositionSticky(node)) return \"sticky\"\n\t\t\treturn defaultPosition\n\t\tcase \"absolute\":\n\t\t\tif (canBePositionAbsolute(node)) return \"absolute\"\n\t\t\treturn defaultPosition\n\t\tcase \"fixed\":\n\t\t\tif (canBePositionFixed(context.engine.tree, node)) return \"fixed\"\n\t\t\treturn defaultPosition\n\t\tcase undefined:\n\t\t\treturn defaultPosition\n\t\tdefault:\n\t\t\tshouldBeNever(node.position)\n\t\t\treturn defaultPosition\n\t}\n}\n\nfunction getAndCollectPosition(\n\tnode: CanvasNode,\n\tattributes: MutableAnyNodeData,\n\tcontext: ActivePluginContext,\n): Position {\n\t// Nodes can still be positioned relative to their parent without a position type.\n\tif (!withPositionType(node)) {\n\t\tif (node.__unsafeIsSlotPropertyChildNode()) return \"relative\"\n\t\treturn node.cache.parentDirected ? \"relative\" : \"absolute\"\n\t}\n\n\tconst position = getPositionFromPositionType(node, context)\n\tattributes.position = position\n\treturn position\n}\n\nfunction collectPins(\n\tnode: CanvasNode,\n\tnodePosition: Position,\n\tconstraints: ConstraintValues,\n\tattributes: MutableAnyNodeData,\n) {\n\tif (!isPinnable(node)) return\n\n\tif (nodePosition === \"relative\") {\n\t\treturn\n\t}\n\n\tif (nodePosition === \"sticky\") {\n\t\tassert(withPositionType(node))\n\t\tif (isNumber(node.positionStickyTop)) attributes.top = `${node.positionStickyTop}px`\n\t\tif (isNumber(node.positionStickyRight)) attributes.right = `${node.positionStickyRight}px`\n\t\tif (isNumber(node.positionStickyBottom)) attributes.bottom = `${node.positionStickyBottom}px`\n\t\tif (isNumber(node.positionStickyLeft)) attributes.left = `${node.positionStickyLeft}px`\n\t\treturn\n\t}\n\n\tconst { top, right, bottom, left, centerAnchorY, centerAnchorX } = constraints\n\tif (isNumber(top)) attributes.top = `${top}px`\n\tif (isNumber(right)) attributes.right = `${right}px`\n\tif (isNumber(bottom)) attributes.bottom = `${bottom}px`\n\tif (isNumber(left)) attributes.left = `${left}px`\n\n\tif (!isNumber(top) && !isNumber(bottom)) {\n\t\tconst percentage = Math.round(centerAnchorY * 100)\n\t\tattributes.centerY = `${percentage}%`\n\t}\n\n\tif (!isNumber(left) && !isNumber(right)) {\n\t\tconst percentage = Math.round(centerAnchorX * 100)\n\t\tattributes.centerX = `${percentage}%`\n\t}\n}\n\nfunction getFractionalLength(value: number): CSSDimension<PluginCSSUnit.Fraction> {\n\treturn `${roundedNumberString(value, 2)}fr` as CSSDimension<PluginCSSUnit.Fraction>\n}\n\nfunction getDimensionLength(value: number, dimensionType: DimensionType, dimensionAxis: \"width\"): WidthLength | null\nfunction getDimensionLength(value: number, dimensionType: DimensionType, dimensionAxis: \"height\"): HeightLength | null\nfunction getDimensionLength(\n\tvalue: number,\n\tdimensionType: DimensionType,\n\tdimensionAxis: \"width\" | \"height\",\n): WidthLength | HeightLength | null {\n\tswitch (dimensionType) {\n\t\tcase DimensionType.Auto:\n\t\t\treturn \"fit-content\"\n\t\tcase DimensionType.FixedNumber:\n\t\t\treturn `${value}px`\n\t\tcase DimensionType.Percentage:\n\t\t\treturn `${Math.round(value * 100)}%`\n\t\tcase DimensionType.FractionOfFreeSpace:\n\t\t\treturn getFractionalLength(value)\n\t\tcase DimensionType.Viewport:\n\t\t\tif (dimensionAxis === \"width\") return null\n\t\t\treturn `${Math.round(value * 100)}vh`\n\t\tcase DimensionType.FitImage:\n\t\t\treturn \"fit-image\"\n\t\tdefault:\n\t\t\tassertNever(dimensionType)\n\t}\n}\n\nfunction collectSize(\n\tnode: CanvasNode,\n\tnodePosition: Position,\n\tconstraints: ConstraintValues,\n\tattributes: MutableAnyNodeData,\n) {\n\tif (!isPinnable(node)) return\n\n\tconst { top, right, bottom, left } = constraints\n\tconst isFixedOrAbsolute = nodePosition === \"fixed\" || nodePosition === \"absolute\"\n\tconst isPinnedHorizontally = isFixedOrAbsolute && isNumber(left) && isNumber(right)\n\tconst isPinnedVertically = isFixedOrAbsolute && isNumber(top) && isNumber(bottom)\n\n\tconst isGridItem = node.cache.parentDirected === \"grid\"\n\n\t// For grid items with fill cell width, use \"100%\" only if there's no explicit width\n\tif (isGridItem && withGridItemSize(node) && node.gridItemFillCellWidth) {\n\t\tconst explicitWidth = getDimensionLength(node.width, node.widthType, \"width\")\n\t\tif (!isNull(explicitWidth)) {\n\t\t\t// Explicit width takes precedence over fill cell width\n\t\t\tattributes.width = explicitWidth\n\t\t} else {\n\t\t\tattributes.width = \"100%\"\n\t\t}\n\t} else if (!isPinnedHorizontally) {\n\t\tattributes.width = getDimensionLength(node.width, node.widthType, \"width\")\n\t}\n\n\t// For grid items with fill cell height, use \"100%\" only if there's no explicit height\n\tif (isGridItem && withGridItemSize(node) && node.gridItemFillCellHeight) {\n\t\tconst explicitHeight = getDimensionLength(node.height, node.heightType, \"height\")\n\t\tif (!isNull(explicitHeight)) {\n\t\t\t// Explicit height takes precedence over fill cell height\n\t\t\tattributes.height = explicitHeight\n\t\t} else {\n\t\t\tattributes.height = \"100%\"\n\t\t}\n\t} else if (!isPinnedVertically) {\n\t\tattributes.height = getDimensionLength(node.height, node.heightType, \"height\")\n\t}\n}\n\nfunction numberToPixelLength<T>(value: T | number): T | CSSDimension<PluginCSSUnit.Pixel> {\n\tif (isNumber(value)) return `${value}px`\n\treturn value\n}\n\nfunction collectSizeConstraints(node: CanvasNode, attributes: MutableAnyNodeData) {\n\tif (!supportsSizeConstraints(node)) return\n\n\t// SVG nodes have the size constraints trait but don't use them\n\tif (isSVGNode(node)) return\n\n\tconst { maxWidth, minWidth, maxHeight, minHeight } = node\n\n\tif (!isUndefined(maxWidth)) attributes.maxWidth = numberToPixelLength(maxWidth)\n\tif (!isUndefined(minWidth)) attributes.minWidth = numberToPixelLength(minWidth)\n\tif (!isUndefined(maxHeight)) attributes.maxHeight = numberToPixelLength(maxHeight)\n\tif (!isUndefined(minHeight)) attributes.minHeight = numberToPixelLength(minHeight)\n}\n\nfunction collectAspectRatio(node: CanvasNode, constraints: ConstraintValues, attributes: MutableAnyNodeData) {\n\tif (!withAspectRatio(node)) return\n\tif (!isNumber(constraints.aspectRatio)) return\n\n\t// While text and SVG nodes have an aspect ratio, they don't use the actual number, they use it\n\t// as a (weird) boolean to change the behavior when resizing.\n\tif (isRichTextNode(node)) return\n\tif (isSVGNode(node)) return\n\n\tconst aspectRatio = aspectRatioForNode(node)\n\tif (!isNumber(aspectRatio)) return\n\n\tconst roundedAspectRatio = roundedNumber(aspectRatio, 3)\n\tattributes.aspectRatio = roundedAspectRatio\n}\n\nfunction collectVisible(node: CanvasNode, attributes: MutableAnyNodeData) {\n\tconst resolvedVisible = node.resolveValue(\"visible\")\n\tif (!isBoolean(resolvedVisible)) return\n\tattributes.visible = resolvedVisible\n}\n\nfunction collectLocked(node: CanvasNode, attributes: MutableAnyNodeData) {\n\tif (!withLock(node)) return\n\n\tif (isBoolean(node.locked)) {\n\t\tattributes.locked = node.locked\n\t} else if (isBoolean(node.cache.lockedByParent)) {\n\t\tattributes.locked = node.cache.lockedByParent\n\t}\n}\n\nfunction collectOpacity(node: CanvasNode, attributes: MutableAnyNodeData) {\n\tif (!withOpacity(node)) return\n\tconst resolvedOpacity = node.resolveValue(\"opacity\")\n\tif (!isNumber(resolvedOpacity)) return\n\tattributes.opacity = roundedNumber(resolvedOpacity, 2)\n}\n\nfunction collectOverflow(node: CanvasNode, attributes: MutableAnyNodeData) {\n\tif (!withOverflow(node)) return\n\tconst overflow = node.resolveValue(\"overflow\")\n\tif (isString(overflow)) {\n\t\tattributes.overflow = overflow\n\t}\n\tconst overflowX = node.resolveValue(\"overflowX\")\n\tif (isString(overflowX)) {\n\t\tattributes.overflowX = overflowX\n\t}\n\tconst overflowY = node.resolveValue(\"overflowY\")\n\tif (isString(overflowY)) {\n\t\tattributes.overflowY = overflowY\n\t}\n}\n\nfunction collectZIndex(node: CanvasNode, attributes: MutableAnyNodeData) {\n\tif (!withZIndex(node)) return\n\tconst value = node.resolveValue(\"zIndex\")\n\tif (isNumber(value)) {\n\t\tattributes.zIndex = value\n\t}\n}\n\nfunction collectTextTruncation(node: CanvasNode, attributes: MutableAnyNodeData) {\n\tif (!withTextTruncation(node)) return\n\tconst value = node.resolveValue(\"textTruncation\")\n\tif (isNumber(value)) {\n\t\tattributes.textTruncation = value\n\t}\n}\n\nfunction collectRotation(node: CanvasNode, attributes: MutableAnyNodeData) {\n\tif (!withRotation(node)) return\n\tconst resolvedRotation = node.resolveValue(\"rotation\")\n\tif (!isNumber(resolvedRotation)) return\n\tattributes.rotation = resolvedRotation\n}\n\nfunction getColorStops(stops: readonly GradientColorStop[], context: ActivePluginContext): readonly ColorStopData[] {\n\treturn stops.map(({ value, position }) => ({\n\t\tcolor: normalizeColorForPlugin(value, context) ?? value,\n\t\tposition,\n\t}))\n}\n\nfunction collectBackground(node: CanvasNode, attributes: MutableAnyNodeData, context: ActivePluginContext) {\n\tif (!withFill(node)) return\n\tif (!isStylableNode(node)) return\n\tif (!node.fillType) return\n\tif (withOptionalFill(node) && !node.fillEnabled) return\n\n\tif (node.fillType === \"color\") {\n\t\tconst resolvedColor = node.resolveValue(\"fillColor\")\n\t\tif (!resolvedColor) return\n\n\t\tattributes.backgroundColor = getColorValueFromSerializedColor(context.engine, resolvedColor)\n\t\treturn\n\t}\n\n\tif (node.fillType === \"image\") {\n\t\tconst backgroundImage = getImageAssetDataForImageFill(node, context)\n\t\tif (backgroundImage) attributes.backgroundImage = backgroundImage\n\t\treturn\n\t}\n\n\tif (node.fillType === \"linear-gradient\") {\n\t\tif (node.fillLinearGradient) {\n\t\t\tattributes.backgroundGradient = {\n\t\t\t\t__class: \"LinearGradient\",\n\t\t\t\tangle: node.fillLinearGradient.angle,\n\t\t\t\tstops: getColorStops(node.fillLinearGradient.stops, context),\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tif (node.fillType === \"radial-gradient\") {\n\t\tif (node.fillRadialGradient) {\n\t\t\tattributes.backgroundGradient = {\n\t\t\t\t__class: \"RadialGradient\",\n\t\t\t\twidth: `${node.fillRadialGradient.widthFactor * 100}%`,\n\t\t\t\theight: `${node.fillRadialGradient.heightFactor * 100}%`,\n\t\t\t\tx: `${node.fillRadialGradient.centerAnchorX * 100}%`,\n\t\t\t\ty: `${node.fillRadialGradient.centerAnchorY * 100}%`,\n\t\t\t\tstops: getColorStops(node.fillRadialGradient.stops, context),\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tif (node.fillType === \"conic-gradient\") {\n\t\tif (node.fillConicGradient) {\n\t\t\tattributes.backgroundGradient = {\n\t\t\t\t__class: \"ConicGradient\",\n\t\t\t\tx: `${node.fillConicGradient.centerAnchorX * 100}%`,\n\t\t\t\ty: `${node.fillConicGradient.centerAnchorY * 100}%`,\n\t\t\t\tangle: node.fillConicGradient.angle,\n\t\t\t\tstops: getColorStops(node.fillConicGradient.stops, context),\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\tshouldBeNever(node.fillType)\n}\n\nexport function getImageAssetDataForImageFill(\n\tnode: CanvasNode & WithFill,\n\tcontext: ActivePluginContext,\n): ImageAssetData | null {\n\tif (node.fillType !== \"image\") return null\n\n\tconst imageReference = node.resolveValue(\"fillImage\")\n\tif (!isString(imageReference)) return null\n\tif (!isAssetReference(imageReference)) return null\n\n\tconst altText = withAltText(node) ? node.resolveValue(\"altAttribute\") : undefined\n\n\treturn context.assetResolver.addImage(imageReference, altText)\n}\n\nfunction collectRadius(node: CanvasNode, attributes: MutableAnyNodeData) {\n\tif (!withRadius(node)) return\n\tif (withShape(node)) return\n\tif (!isStylableNode(node)) return\n\n\tif (isDynamicValue(node.radius)) {\n\t\tconst radius = node.resolveValue(\"radius\")\n\t\tif (!isNumber(radius)) return\n\t\tattributes.borderRadius = `${radius}px`\n\t\treturn\n\t}\n\n\tif (withRelativeRadius(node) && node.radiusIsRelative) {\n\t\tif (!isNumber(node.radius)) return\n\t\tattributes.borderRadius = `${node.radius}%`\n\t\treturn\n\t}\n\n\tif (withRadiusPerCorner(node) && node.radiusPerCorner) {\n\t\tconst { radiusTopLeft, radiusTopRight, radiusBottomRight, radiusBottomLeft } = node\n\t\tif (\n\t\t\t!isNumber(radiusTopLeft) ||\n\t\t\t!isNumber(radiusTopRight) ||\n\t\t\t!isNumber(radiusBottomRight) ||\n\t\t\t!isNumber(radiusBottomLeft)\n\t\t) {\n\t\t\treturn\n\t\t}\n\t\tattributes.borderRadius = `${radiusTopLeft}px ${radiusTopRight}px ${radiusBottomRight}px ${radiusBottomLeft}px`\n\t\treturn\n\t}\n\n\tif (isNumber(node.radius)) {\n\t\tif (!isNumber(node.radius)) return\n\t\tattributes.borderRadius = `${node.radius}px`\n\t\treturn\n\t}\n}\n\nfunction collectBorder(node: CanvasNode, attributes: MutableAnyNodeData, context: ActivePluginContext) {\n\tconst resolvedBorderValues = getResolvedBorderValues(node)\n\tif (!resolvedBorderValues) return\n\tattributes.border = getPluginBorderFromVekterBorderValues(context.engine, resolvedBorderValues)\n}\n\nfunction collectComponentInfo(node: CanvasNode, attributes: MutableAnyNodeData, context: ActivePluginContext) {\n\tif (isSmartComponentNode(node)) {\n\t\tattributes.componentIdentifier = node.instanceIdentifier\n\t\tconst url = getComponentInsertURLFromIdentifier(context.engine, node.instanceIdentifier)\n\t\tif (url) attributes.insertURL = url\n\n\t\t// For Smart Components the name of the Component always matches the node name.\n\t\tattributes.componentName = node.resolveValue(\"name\")\n\n\t\treturn\n\t}\n\n\tif (isCodeComponentNode(node)) {\n\t\tattributes.componentIdentifier = node.codeComponentIdentifier\n\t\tconst url = getComponentInsertURLFromIdentifier(context.engine, node.codeComponentIdentifier)\n\t\tif (url) attributes.insertURL = url\n\n\t\tconst name = getComponentNameFromIdentifier(context.engine, node.codeComponentIdentifier)\n\t\tif (name) attributes.componentName = name\n\t\treturn\n\t}\n}\n\nfunction collectComponentInstanceControls(\n\tnode: CanvasNode,\n\tattributes: MutableAnyNodeData,\n\tcontext: ActivePluginContext,\n) {\n\tif (!isCodeComponentNode(node)) return\n\n\tattributes.controls = controlAttributesFromControlProps(node, context)\n\tattributes.typedControls = getPluginControlsFromVekter(node, context)\n}\n\nfunction collectSVG(node: CanvasNode, attributes: MutableAnyNodeData) {\n\tif (!isSVGNode(node)) return\n\tattributes.svg = node.svg\n}\n\nfunction collectFont(node: CanvasNode, attributes: MutableAnyNodeData, context: ActivePluginContext) {\n\tif (!isRichTextNode(node)) return\n\n\tconst fontSelectors = node.getFonts(false)\n\tif (fontSelectors.length !== 1) return\n\n\tconst [fontSelector] = fontSelectors\n\tif (!fontSelector) return\n\n\tconst font = context.fontStore.getFontBySelector(fontSelector)\n\tif (!font) return\n\n\tattributes.font = getFontDataFromReadonlyFont(font)\n}\n\nfunction collectTextStyle(node: CanvasNode, attributes: MutableAnyNodeData, context: ActivePluginContext) {\n\tif (!isRichTextNode(node)) return\n\n\tconst presetIds = node.getTextStylePresets(false)\n\tif (presetIds.length !== 1) return\n\n\tconst [presetId] = presetIds\n\tif (!presetId) return\n\n\tconst preset = context.engine.tree.getNode(presetId)\n\tif (!isTextStylePresetPrimaryNode(preset)) return\n\n\tattributes.inlineTextStyle = getTextStyleDataFromPreset(context, preset)\n}\n\nfunction collectWebPageInfo(node: CanvasNode, attributes: MutableAnyNodeData, context: ActivePluginContext) {\n\tif (!isWebPageNode(node)) return\n\n\tattributes.path = getWebPagePath(context.engine.tree, node)\n\n\tif (node.dataIdentifier) {\n\t\tconst data = context.engine.componentLoader.dataForIdentifier(node.dataIdentifier)\n\t\tif (!data) return\n\n\t\tconst collectionId = data.annotations?.[AnnotationKey.FramerCollectionId]\n\t\tif (!collectionId) return\n\n\t\tattributes.collectionId = collectionId\n\t}\n}\n\nfunction collectLink(node: CanvasNode, attributes: MutableAnyNodeData, context: ActivePluginContext) {\n\tif (isRichTextNode(node)) {\n\t\tconst links = node.getLinks(false)\n\t\tconst openInNewTabs = node.getLinkOpenInNewTabs(false)\n\t\tconst smoothScrolls = node.getLinkSmoothScroll(false)\n\t\tconst clickTrackingIds = node.getLinkClickTrackingId(false)\n\t\tconst relValuesList = node.getLinkRelValues(false)\n\t\tconst preserveParamsList = node.getLinkPreserveParams(false)\n\n\t\t// Only set the Link trait if the RichTextNode has a single link. This\n\t\t// is similar to how it behaves in the properties panel when there is no\n\t\t// selection\n\t\tif (\n\t\t\tlinks.length > 1 ||\n\t\t\topenInNewTabs.length > 1 ||\n\t\t\tsmoothScrolls.length > 1 ||\n\t\t\tclickTrackingIds.length > 1 ||\n\t\t\trelValuesList.length > 1 ||\n\t\t\tpreserveParamsList.length > 1\n\t\t) {\n\t\t\treturn\n\t\t}\n\n\t\tconst link = links[0]\n\t\tconst openInNewTab = openInNewTabs[0]\n\t\tconst smoothScroll = smoothScrolls[0]\n\t\tconst clickTrackingId = clickTrackingIds[0]\n\t\tconst relValues = relValuesList[0]\n\t\tconst preserveParams = preserveParamsList[0]\n\n\t\tconst resolvedLink = isVariableReference(link) ? getLink(node.cache.getVariableReferenceValue(link)) : link\n\t\tif (isLink(resolvedLink)) {\n\t\t\tattributes.link = resolveLinkToURL(context.engine.tree, resolvedLink)\n\t\t}\n\n\t\tconst resolvedOpenInNewTab = isVariableReference(openInNewTab)\n\t\t\t? node.cache.getVariableReferenceValue(openInNewTab)\n\t\t\t: openInNewTab\n\t\tif (isBoolean(resolvedOpenInNewTab)) {\n\t\t\tattributes.linkOpenInNewTab = resolvedOpenInNewTab\n\t\t}\n\n\t\tconst resolvedSmoothScroll = isVariableReference(smoothScroll)\n\t\t\t? node.cache.getVariableReferenceValue(smoothScroll)\n\t\t\t: smoothScroll\n\t\tif (isBoolean(resolvedSmoothScroll)) {\n\t\t\tattributes.linkSmoothScroll = resolvedSmoothScroll\n\t\t}\n\n\t\tconst resolvedClickTrackingId = isVariableReference(clickTrackingId)\n\t\t\t? node.cache.getVariableReferenceValue(clickTrackingId)\n\t\t\t: clickTrackingId\n\t\tif (isString(resolvedClickTrackingId)) {\n\t\t\tattributes.linkClickTrackingId = resolvedClickTrackingId\n\t\t}\n\n\t\tconst resolvedRelValues = isVariableReference(relValues)\n\t\t\t? node.cache.getVariableReferenceValue(relValues)\n\t\t\t: relValues\n\t\tif (isSupportedLinkRelValueArray(resolvedRelValues)) {\n\t\t\tattributes.linkRelValues = resolvedRelValues\n\t\t}\n\n\t\tconst resolvedPreserveParams = isVariableReference(preserveParams)\n\t\t\t? node.cache.getVariableReferenceValue(preserveParams)\n\t\t\t: preserveParams\n\t\tif (isBoolean(resolvedPreserveParams)) {\n\t\t\tattributes.linkPreserveParams = resolvedPreserveParams\n\t\t}\n\n\t\treturn\n\t}\n\n\tif (!withLink(node)) return\n\n\tconst link = getLink(node.resolveValue(\"link\"))\n\tif (isLink(link)) {\n\t\tattributes.link = resolveLinkToURL(context.engine.tree, link)\n\t}\n\n\tconst linkOpenInNewTab = node.resolveValue(\"linkOpenInNewTab\")\n\tif (isBoolean(linkOpenInNewTab)) {\n\t\tattributes.linkOpenInNewTab = linkOpenInNewTab\n\t}\n\n\tconst linkSmoothScroll = node.resolveValue(\"linkSmoothScroll\")\n\tif (isBoolean(linkSmoothScroll)) {\n\t\tattributes.linkSmoothScroll = linkSmoothScroll\n\t}\n\n\tconst linkClickTrackingId = node.resolveValue(\"linkClickTrackingId\")\n\tif (isString(linkClickTrackingId)) {\n\t\tattributes.linkClickTrackingId = linkClickTrackingId\n\t}\n\n\tconst linkRelValues = node.resolveValue(\"linkRelValues\")\n\tif (isSupportedLinkRelValueArray(linkRelValues)) {\n\t\tattributes.linkRelValues = linkRelValues\n\t}\n\n\tconst linkPreserveParams = node.resolveValue(\"linkPreserveParams\")\n\tif (isBoolean(linkPreserveParams)) {\n\t\tattributes.linkPreserveParams = linkPreserveParams\n\t}\n}\n\nfunction collectImageRendering(node: CanvasNode, attributes: MutableAnyNodeData) {\n\tif (!withImageRendering(node)) return\n\tif (!isString(node.imageRendering)) return\n\n\tattributes.imageRendering = node.imageRendering\n}\n\nfunction collectLayout(node: CanvasNode, attributes: MutableAnyNodeData) {\n\tif (!withLayout(node)) return\n\n\tconst layout = node.resolveValue(\"layout\")\n\tattributes.layout = isString(layout) ? layout : null\n\n\tconst gap = node.resolveValue(\"gap\")\n\tif (isNumber(gap)) {\n\t\tattributes.gap = `${gap}px`\n\t} else if (isString(gap)) {\n\t\tattributes.gap = gap\n\t}\n\n\tif (hasStackLayout(node)) {\n\t\tattributes.layout = \"stack\"\n\t\tattributes.stackAlignment = node.resolveValue(\"stackAlignment\")\n\t\tattributes.stackDistribution = node.resolveValue(\"stackDistribution\")\n\t\tattributes.stackDirection = node.resolveValue(\"stackDirection\")\n\t\tattributes.stackWrapEnabled = node.resolveValue(\"stackWrapEnabled\")\n\t\treturn\n\t}\n\n\tif (hasGridLayout(node)) {\n\t\tattributes.layout = \"grid\"\n\t\tattributes.gridColumnCount = node.resolveValue(\"gridColumnCount\")\n\t\tattributes.gridRowCount = node.resolveValue(\"gridRowCount\")\n\t\tattributes.gridAlignment = node.resolveValue(\"gridAlignment\")\n\t\tattributes.gridColumnWidthType = node.resolveValue(\"gridColumnWidthType\")\n\t\tattributes.gridColumnWidth = node.resolveValue(\"gridColumnWidth\")\n\t\tattributes.gridColumnMinWidth = node.resolveValue(\"gridColumnMinWidth\")\n\t\tattributes.gridRowHeightType = node.resolveValue(\"gridRowHeightType\")\n\t\tattributes.gridRowHeight = node.resolveValue(\"gridRowHeight\")\n\t\treturn\n\t}\n}\n\nfunction collectPadding(node: CanvasNode, attributes: MutableAnyNodeData) {\n\tif (!withPadding(node)) return\n\n\tconst paddingPerSide = node.resolveValue(\"paddingPerSide\")\n\tif (isBoolean(paddingPerSide) && paddingPerSide) {\n\t\tconst paddingTop = node.resolveValue(\"paddingTop\") ?? 0\n\t\tconst paddingRight = node.resolveValue(\"paddingRight\") ?? 0\n\t\tconst paddingBottom = node.resolveValue(\"paddingBottom\") ?? 0\n\t\tconst paddingLeft = node.resolveValue(\"paddingLeft\") ?? 0\n\n\t\tif (isNumber(paddingTop) && isNumber(paddingRight) && isNumber(paddingBottom) && isNumber(paddingLeft)) {\n\t\t\tattributes.padding = `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`\n\t\t}\n\t} else {\n\t\tconst padding = node.resolveValue(\"padding\")\n\t\tif (isNumber(padding)) {\n\t\t\tattributes.padding = `${padding}px`\n\t\t} else if (isString(padding)) {\n\t\t\tattributes.padding = padding\n\t\t}\n\t}\n}\n\nfunction collectGridItemSize(node: CanvasNode, attributes: MutableAnyNodeData) {\n\tif (!withGridItemSize(node)) return\n\n\tconst gridItemFillCellWidth = node.resolveValue(\"gridItemFillCellWidth\")\n\tif (isBoolean(gridItemFillCellWidth)) {\n\t\tattributes.gridItemFillCellWidth = gridItemFillCellWidth\n\t}\n\n\tconst gridItemFillCellHeight = node.resolveValue(\"gridItemFillCellHeight\")\n\tif (isBoolean(gridItemFillCellHeight)) {\n\t\tattributes.gridItemFillCellHeight = gridItemFillCellHeight\n\t}\n}\n\nfunction collectGridItemLayout(node: CanvasNode, attributes: MutableAnyNodeData) {\n\tif (!withGridItemLayout(node)) return\n\n\tconst gridItemHorizontalAlignment = node.resolveValue(\"gridItemHorizontalAlignment\")\n\tif (isString(gridItemHorizontalAlignment)) {\n\t\tattributes.gridItemHorizontalAlignment = gridItemHorizontalAlignment\n\t}\n\n\tconst gridItemVerticalAlignment = node.resolveValue(\"gridItemVerticalAlignment\")\n\tif (isString(gridItemVerticalAlignment)) {\n\t\tattributes.gridItemVerticalAlignment = gridItemVerticalAlignment\n\t}\n\n\tconst gridItemColumnSpan = node.resolveValue(\"gridItemColumnSpan\")\n\tif (isNumber(gridItemColumnSpan) || gridItemColumnSpan === \"all\") {\n\t\tattributes.gridItemColumnSpan = gridItemColumnSpan\n\t}\n\n\tconst gridItemRowSpan = node.resolveValue(\"gridItemRowSpan\")\n\tif (isNumber(gridItemRowSpan)) {\n\t\tattributes.gridItemRowSpan = gridItemRowSpan\n\t}\n}\n\nfunction collectComponentVariant(node: CanvasNode, attributes: MutableAnyNodeData) {\n\tif (!isVariant(node)) return\n\n\tattributes.isVariant = node.resolveValue(\"isVariant\")\n\tattributes.isPrimaryVariant = isPrimaryVariant(node)\n\tattributes.inheritsFromId = node.originalid\n\n\tif (isGestureVariant(node)) {\n\t\tattributes.gesture = node.gesture\n\t\tattributes.inheritsFromId = node.replicaInfo.inheritsFrom ?? node.replicaInfo.master\n\t}\n}\n\nfunction collectBreakpoint(node: CanvasNode, attributes: MutableAnyNodeData) {\n\tif (!withBreakpoint(node)) return\n\n\tattributes.isBreakpoint = node.resolveValue(\"isBreakpoint\") ?? false\n\tattributes.isPrimaryBreakpoint = isPrimaryVariant(node)\n}\n", "import type { Prettify } from \"./Prettify.ts\"\nimport { ImageAsset, type ImageAssetData, isImageAssetData } from \"./assets.ts\"\nimport type { WithTypedControlsTrait } from \"./controls.ts\"\nimport type { CSSDimension, CSSUnit } from \"./css.ts\"\nimport { type Font, type FontData, isFont, isFontData } from \"./fonts.ts\"\nimport { type Gradient, type GradientData, isGradient } from \"./gradients.ts\"\nimport type { Marshaled } from \"./marshal.ts\"\nimport type { AnyNode, AnyNodeData } from \"./nodes.ts\"\nimport {\n\ttype ColorStyle,\n\ttype ColorStyleData,\n\ttype TextStyle,\n\ttype TextStyleData,\n\tisColorStyle,\n\tisColorStyleData,\n\tisTextStyle,\n\tisTextStyleData,\n} from \"./styles.ts\"\nimport { isBoolean, isNull, isNumber, isObject, isString } from \"./utils.ts\"\n\nexport type NodeId = string\n\nexport interface WithIdTrait {\n\treadonly id: NodeId\n}\n\nexport type Gesture = \"hover\" | \"pressed\" | \"loading\" | \"error\"\n\nexport interface WithReplicaInfoTrait {\n\treadonly originalId: string | null\n}\n\nexport interface WithComponentVariantTrait {\n\t/** Whether this is a component variant. Supported by FrameNode. */\n\treadonly isVariant: boolean\n\t/** Whether this is the primary variant. Supported by FrameNode. */\n\treadonly isPrimaryVariant: boolean\n\t/** Gesture state for component variants: `\"hover\"`, `\"pressed\"`, `\"loading\"`, or `\"error\"`. Supported by FrameNode. */\n\treadonly gesture: Gesture | null\n\t/** ID of the node this variant inherits from. Supported by FrameNode. */\n\treadonly inheritsFromId: string | null\n}\n\nexport interface IsComponentVariant {\n\treadonly isVariant: true\n\treadonly isPrimaryVariant: boolean\n\treadonly inheritsFromId: string\n}\n\nexport interface IsComponentGestureVariant extends IsComponentVariant {\n\treadonly gesture: Gesture\n}\n\nexport interface WithNameTrait {\n\t/**\n\t * The name of the node displayed in the layers panel.\n\t *\n\t * Supported by FrameNode, TextNode, SVGNode, ComponentInstanceNode,\n\t * ComponentNode, VectorSetNode, VectorSetItemNode.\n\t */\n\treadonly name: string | null\n}\n\nexport interface WithVisibleTrait {\n\t/**\n\t * Whether the node is visible on the canvas.\n\t *\n\t * Defaults to `true`.\n\t * Supported by FrameNode, TextNode, SVGNode, ComponentInstanceNode, VectorSetItemNode.\n\t */\n\treadonly visible: boolean\n}\n\nexport interface WithLockedTrait {\n\t/**\n\t * Whether the node is locked for editing.\n\t *\n\t * Defaults to `false`.\n\t * Supported by FrameNode, TextNode, SVGNode, ComponentInstanceNode, VectorSetItemNode.\n\t */\n\treadonly locked: boolean\n}\n\nexport interface WithBreakpointTrait {\n\t/** Whether this is a breakpoint. Supported by FrameNode. */\n\treadonly isBreakpoint: boolean\n\t/** Whether this is the primary breakpoint. Supported by FrameNode. */\n\treadonly isPrimaryBreakpoint: boolean\n}\n\nexport interface IsBreakpoint {\n\treadonly isBreakpoint: true\n\treadonly isPrimaryBreakpoint: boolean\n}\n\nexport interface WithBackgroundColorTrait<T extends TraitVariant> {\n\t/**\n\t * Background color in RGBA format (e.g. `rgba(242, 59, 57, 1)`) or as a {@link ColorStyle} instance.\n\t *\n\t * Setting to `null` removes the background color. Supported by FrameNode.\n\t */\n\treadonly backgroundColor: (T extends TraitVariantData ? ColorStyleData : ColorStyle) | string | null\n}\n\nexport interface WithBackgroundImageTrait<T extends TraitVariant> {\n\t/** Background image asset. Supported by FrameNode. */\n\treadonly backgroundImage: (T extends TraitVariantData ? ImageAssetData : ImageAsset) | null\n}\n\nexport interface WithBackgroundGradientTrait<T extends TraitVariant> {\n\t/** Background gradient (linear, radial, or conic). Supported by FrameNode. */\n\treadonly backgroundGradient: (T extends TraitVariantData ? GradientData : Gradient) | null\n}\n\nexport interface WithRotationTrait {\n\t/**\n\t * Rotation angle in degrees.\n\t *\n\t * Defaults to `0`. Supported by FrameNode, TextNode, SVGNode, ComponentInstanceNode.\n\t */\n\treadonly rotation: number\n}\n\nexport interface WithOpacityTrait {\n\t/**\n\t * Opacity of the node, from `0` (fully transparent) to `1` (fully opaque).\n\t *\n\t * Defaults to `1`. Supported by FrameNode, TextNode, SVGNode, ComponentInstanceNode.\n\t */\n\treadonly opacity: number\n}\n\nexport type BorderRadius =\n\t| CSSDimension<CSSUnit.Percentage | CSSUnit.Pixel>\n\t| `${CSSDimension<CSSUnit.Pixel>} ${CSSDimension<CSSUnit.Pixel>} ${CSSDimension<CSSUnit.Pixel>} ${CSSDimension<CSSUnit.Pixel>}`\n\t| null\n\nexport interface WithBorderRadiusTrait {\n\t/**\n\t * Border radius for rounded corners.\n\t *\n\t * Single value (e.g. `\"10px\"` or `\"50%\"`)\n\t * or per-corner (e.g. `\"10px 20px 30px 40px\"` for top-left, top-right, bottom-right, bottom-left).\n\t * Setting to `null` removes the border radius. Supported by FrameNode.\n\t */\n\treadonly borderRadius: BorderRadius\n}\n\nexport type BorderWidth =\n\t| CSSDimension<CSSUnit.Pixel>\n\t| `${CSSDimension<CSSUnit.Pixel>} ${CSSDimension<CSSUnit.Pixel>} ${CSSDimension<CSSUnit.Pixel>} ${CSSDimension<CSSUnit.Pixel>}`\n\nexport type BorderStyle = \"solid\" | \"dashed\" | \"dotted\" | \"double\"\n\nexport interface Border {\n\twidth: BorderWidth\n\tcolor: ColorStyle | string\n\tstyle: BorderStyle\n}\n\nexport interface WithBorderTrait<T extends TraitVariant> {\n\t/**\n\t * Border properties including width, color, and style.\n\t *\n\t * Styles: `\"solid\"`, `\"dashed\"`, `\"dotted\"`, `\"double\"`.\n\t * Width can be per-side (e.g. `\"1px 2px 3px 4px\"`).\n\t * Setting to `null` removes the border. Supported by FrameNode.\n\t */\n\treadonly border: (T extends TraitVariantData ? Marshaled<Border> : Border) | null\n}\n\n/** Controls how images are rendered. Use `\"pixelated\"` for pixel art. */\nexport type ImageRendering = \"auto\" | \"pixelated\"\n\nexport interface WithImageRenderingTrait {\n\t/**\n\t * How images should be rendered when scaled: `\"auto\"` or `\"pixelated\"`.\n\t *\n\t * Only applies to frames with image backgrounds.\n\t * Setting to `null` uses default rendering. Supported by FrameNode.\n\t */\n\treadonly imageRendering: ImageRendering | null\n}\n\n/** Controls whether content that overflows the frame is clipped. */\nexport type Overflow = \"visible\" | \"hidden\" | \"auto\" | \"clip\"\nexport type AxisOverflow = Overflow\n\nexport interface WithOverflowTrait {\n\t/**\n\t * Controls how content that exceeds the element's box is handled.\n\t *\n\t * Setting to `null` removes the overflow property. Will overwrite `overflowX` or `overflowY`.\n\t * Supported by FrameNode, TextNode.\n\t */\n\treadonly overflow: Overflow | null\n\t/**\n\t * Controls horizontal overflow behavior.\n\t *\n\t * Setting to `null` removes the overflow X property. Supported by FrameNode, TextNode.\n\t */\n\treadonly overflowX: AxisOverflow | null\n\t/**\n\t * Controls vertical overflow behavior.\n\t *\n\t * Setting to `null` removes the overflow Y property. Supported by FrameNode, TextNode.\n\t */\n\treadonly overflowY: AxisOverflow | null\n}\n\nexport interface WithTextTruncationTrait {\n\t/**\n\t * Maximum number of lines before text is truncated with an ellipsis.\n\t *\n\t * Must be used alongside `overflow`. Setting to `null` removes the text truncation property.\n\t * Supported by TextNode.\n\t */\n\treadonly textTruncation: number | null\n}\n\nexport interface WithZIndexTrait {\n\t/**\n\t * Stacking order of positioned elements.\n\t *\n\t * Higher values appear on top of lower values.\n\t * Setting to `null` removes the z-index property. Supported by FrameNode, TextNode.\n\t */\n\treadonly zIndex: number | null\n}\n\nexport interface WithRequiredComponentInfoTrait {\n\t/** Identifier of the component. Supported by ComponentInstanceNode, ComponentNode. */\n\treadonly componentIdentifier: string\n}\n\nexport interface WithNullableComponentInfoTrait {\n\treadonly insertURL: string | null\n\t/** Name of the component. Supported by ComponentInstanceNode, ComponentNode. */\n\treadonly componentName: string | null\n}\n\nexport interface WithComponentInfoTrait extends WithRequiredComponentInfoTrait, WithNullableComponentInfoTrait {}\n\nexport interface WithWebPageInfoTrait {\n\t/** URL path for the web page. Supported by WebPageNode. */\n\treadonly path: string | null\n\t/** Collection ID for the web page. Supported by WebPageNode. */\n\treadonly collectionId: string | null\n}\n\n/** Supported rel values for links. See https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/rel */\nexport type SupportedLinkRelValue = \"nofollow\" | \"noreferrer\" | \"me\" | \"ugc\" | \"sponsored\"\n\nexport interface WithLinkTrait {\n\t/**\n\t * URL or internal page link.\n\t *\n\t * External: `\"https://example.com\"`, internal: `\"/about\"`,\n\t * email: `\"mailto:user@example.com\"`. Setting to `null` removes the link.\n\t * Supported by FrameNode, TextNode.\n\t */\n\treadonly link: string | null\n\t/**\n\t * Whether to open the link in a new tab.\n\t *\n\t * Default is automatically determined based on link type.\n\t * Supported by FrameNode, TextNode.\n\t */\n\treadonly linkOpenInNewTab: boolean | null\n\t/**\n\t * Whether to use smooth scrolling for scroll-to-section links.\n\t * Supported by FrameNode, TextNode.\n\t */\n\treadonly linkSmoothScroll: boolean | null\n\t/**\n\t * Click tracking identifier for analytics.\n\t * Supported by FrameNode, TextNode.\n\t */\n\treadonly linkClickTrackingId: string | null\n\t/**\n\t * Array of rel attribute values for the link.\n\t * Supported by FrameNode, TextNode.\n\t */\n\treadonly linkRelValues: readonly SupportedLinkRelValue[] | null\n\t/**\n\t * Whether to preserve URL query parameters when navigating.\n\t * Supported by FrameNode, TextNode.\n\t */\n\treadonly linkPreserveParams: boolean | null\n}\n\nexport type ControlAttributes = Record<string, unknown>\n\nexport interface WithControlAttributesTrait {\n\t/** Property control values for code components. Supported by ComponentInstanceNode. */\n\treadonly controls: ControlAttributes\n}\n\nexport interface WithSVGTrait {\n\t/** SVG markup content. Supported by SVGNode. */\n\treadonly svg: string\n}\n\n/** The CSS position property for a node. */\nexport type Position = \"relative\" | \"absolute\" | \"fixed\" | \"sticky\"\n\nexport interface WithPositionTrait {\n\t/**\n\t * Positioning behavior of the node.\n\t * - `\"relative\"`: Default for nodes in stack/grid layouts\n\t * - `\"absolute\"`: Positioned relative to parent\n\t * - `\"fixed\"`: Positioned relative to viewport\n\t * - `\"sticky\"`: Sticks to viewport edges when scrolling\n\t *\n\t * Supported by FrameNode, TextNode, SVGNode, ComponentInstanceNode.\n\t */\n\tposition: Position\n}\n\nexport type FitContent = \"fit-content\"\nexport type FitImage = \"fit-image\"\n\nexport interface WithPinsTrait {\n\t/**\n\t * Distance from top edge when using absolute/fixed positioning.\n\t *\n\t * Only applies when position is not `\"relative\"`.\n\t * Supported by FrameNode, TextNode, SVGNode, ComponentInstanceNode, VectorSetItemNode.\n\t */\n\ttop: CSSDimension<CSSUnit.Pixel> | null\n\t/**\n\t * Distance from right edge when using absolute/fixed positioning.\n\t *\n\t * Only applies when position is not `\"relative\"`.\n\t * Supported by FrameNode, TextNode, SVGNode, ComponentInstanceNode, VectorSetItemNode.\n\t */\n\tright: CSSDimension<CSSUnit.Pixel> | null\n\t/**\n\t * Distance from bottom edge when using absolute/fixed positioning.\n\t *\n\t * Only applies when position is not `\"relative\"`.\n\t * Supported by FrameNode, TextNode, SVGNode, ComponentInstanceNode, VectorSetItemNode.\n\t */\n\tbottom: CSSDimension<CSSUnit.Pixel> | null\n\t/**\n\t * Distance from left edge when using absolute/fixed positioning.\n\t *\n\t * Only applies when position is not `\"relative\"`.\n\t * Supported by FrameNode, TextNode, SVGNode, ComponentInstanceNode, VectorSetItemNode.\n\t */\n\tleft: CSSDimension<CSSUnit.Pixel> | null\n\t/**\n\t * Center anchor horizontal position as percentage (e.g. `\"50%\"`).\n\t *\n\t * Used when pins are not set.\n\t * Supported by FrameNode, TextNode, SVGNode, ComponentInstanceNode, VectorSetItemNode.\n\t */\n\tcenterX: CSSDimension<CSSUnit.Percentage> | null\n\t/**\n\t * Center anchor vertical position as percentage (e.g. `\"50%\"`).\n\t *\n\t * Used when pins are not set.\n\t * Supported by FrameNode, TextNode, SVGNode, ComponentInstanceNode, VectorSetItemNode.\n\t */\n\tcenterY: CSSDimension<CSSUnit.Percentage> | null\n}\n\nexport type Length = CSSDimension<CSSUnit.Pixel | CSSUnit.Percentage | CSSUnit.Fraction>\nexport type WidthLength = Length | FitContent | FitImage\nexport type HeightLength = Length | FitContent | CSSDimension<CSSUnit.ViewportHeight> | FitImage\n\nexport interface WithSizeTrait {\n\t/**\n\t * Width of the node.\n\t *\n\t * Accepts pixel, percentage, fraction values, or `\"fit-content\"`.\n\t * Supported by FrameNode, TextNode, SVGNode, ComponentInstanceNode, VectorSetItemNode.\n\t */\n\twidth: WidthLength | null\n\t/**\n\t * Height of the node.\n\t *\n\t * Accepts pixel, percentage, fraction, viewport-height values, or `\"fit-content\"`.\n\t * Supported by FrameNode, TextNode, SVGNode, ComponentInstanceNode, VectorSetItemNode.\n\t */\n\theight: HeightLength | null\n}\n\nexport interface WithAspectRatioTrait {\n\t/**\n\t * Width-to-height ratio (e.g. `1.5` for 3:2).\n\t *\n\t * Setting to `null` removes the aspect ratio constraint.\n\t * Supported by FrameNode, ComponentInstanceNode.\n\t */\n\taspectRatio: number | null\n}\n\nexport type WidthConstraint = CSSDimension<CSSUnit.Pixel | CSSUnit.Percentage>\nexport type HeightConstraint = CSSDimension<CSSUnit.Pixel | CSSUnit.Percentage | CSSUnit.ViewportHeight>\n\nexport interface WithSizeConstraintsTrait {\n\t/** Maximum width constraint. Supported by FrameNode, TextNode, ComponentInstanceNode. */\n\tmaxWidth: WidthConstraint | null\n\t/** Minimum width constraint. Supported by FrameNode, TextNode, ComponentInstanceNode. */\n\tminWidth: WidthConstraint | null\n\t/** Maximum height constraint. Supported by FrameNode, TextNode, ComponentInstanceNode. */\n\tmaxHeight: HeightConstraint | null\n\t/** Minimum height constraint. Supported by FrameNode, TextNode, ComponentInstanceNode. */\n\tminHeight: HeightConstraint | null\n}\n\nexport interface WithInlineTextStyleTrait<T extends TraitVariant> {\n\t/**\n\t * Apply a text style preset.\n\t *\n\t * Setting to `null` removes the text style. Supported by TextNode.\n\t */\n\treadonly inlineTextStyle: (T extends TraitVariantData ? TextStyleData : TextStyle) | null\n}\n\nexport interface WithFontTrait<T extends TraitVariant> {\n\t/** Font selection for text. Supported by TextNode. */\n\treadonly font: (T extends TraitVariantData ? FontData : Font) | null\n}\n\nexport type TraitVariantData = \"data\"\nexport type TraitVariantNode = \"node\"\n\n/** The direction children are laid out in a stack. */\nexport type StackDirection = \"horizontal\" | \"vertical\"\n/** How children are distributed along the main axis of a stack. */\nexport type StackDistribution = \"start\" | \"center\" | \"end\" | \"space-between\" | \"space-around\" | \"space-evenly\"\n/** How children are aligned along the cross axis of a stack. */\nexport type StackAlignment = \"start\" | \"center\" | \"end\"\n\n/** The layout type for a frame: `\"stack\"` (flex) or `\"grid\"` (CSS grid). */\nexport type LayoutType = \"stack\" | \"grid\"\n\nexport interface StackLayout {\n\t/** Direction of items in a stack layout. Requires `layout: \"stack\"`. Supported by FrameNode. */\n\tstackDirection: StackDirection | null\n\t/** How items are distributed in a stack layout. Requires `layout: \"stack\"`. Supported by FrameNode. */\n\tstackDistribution: StackDistribution | null\n\t/** How items are aligned perpendicular to the stack direction. Requires `layout: \"stack\"`. Supported by FrameNode. */\n\tstackAlignment: StackAlignment | null\n\t/** Whether items should wrap to the next line. Requires `layout: \"stack\"`. Supported by FrameNode. */\n\tstackWrapEnabled: boolean | null\n}\n\nexport type GridContentAlignment = \"start\" | \"center\" | \"end\"\n\nexport interface GridLayout {\n\t/** Number of columns in the grid. Requires `layout: \"grid\"`. Supported by FrameNode. */\n\tgridColumnCount: number | \"auto-fill\" | null\n\t/** Number of rows in the grid. Requires `layout: \"grid\"`. Supported by FrameNode. */\n\tgridRowCount: number | null\n\t/** How items are aligned within the grid. Requires `layout: \"grid\"`. Supported by FrameNode. */\n\tgridAlignment: GridContentAlignment | null\n\t/** Type of column width sizing: `\"fixed\"` or `\"minmax\"`. Requires `layout: \"grid\"`. Supported by FrameNode. */\n\tgridColumnWidthType: \"fixed\" | \"minmax\" | null\n\t/** Width of grid columns in pixels. Requires `layout: \"grid\"`. Supported by FrameNode. */\n\tgridColumnWidth: number | null\n\t/** Minimum width of grid columns in pixels. Requires `layout: \"grid\"`. Supported by FrameNode. */\n\tgridColumnMinWidth: number | null\n\t/** Type of row height sizing: `\"fixed\"`, `\"auto\"`, or `\"fit\"`. Requires `layout: \"grid\"`. Supported by FrameNode. */\n\tgridRowHeightType: \"fixed\" | \"auto\" | \"fit\" | null\n\t/** Height of grid rows in pixels. Requires `layout: \"grid\"`. Supported by FrameNode. */\n\tgridRowHeight: number | null\n}\n\nexport interface WithLayoutTrait extends StackLayout, GridLayout {\n\t/**\n\t * Enables stack or grid layout.\n\t *\n\t * Setting to `null` disables any applied layout.\n\t * Operation is deferred and applied after the current update cycle. Supported by FrameNode.\n\t */\n\tlayout: LayoutType | null\n\t/**\n\t * Spacing between items in a layout.\n\t *\n\t * Single value (e.g. `\"10px\"`) applies to both axes;\n\t * two values (e.g. `\"10px 20px\"`) set horizontal and vertical separately.\n\t * Only works with layout enabled. Supported by FrameNode.\n\t */\n\tgap: CSSDimension<CSSUnit.Pixel> | `${CSSDimension<CSSUnit.Pixel>} ${CSSDimension<CSSUnit.Pixel>}` | null\n\t/**\n\t * Inner spacing of a container with layout.\n\t *\n\t * Single value (e.g. `\"10px\"`) applies to all sides;\n\t * four values (e.g. `\"10px 20px 30px 40px\"`) set top, right, bottom, left.\n\t * Only works with layout enabled. Supported by FrameNode.\n\t */\n\tpadding:\n\t\t| CSSDimension<CSSUnit.Pixel>\n\t\t| `${CSSDimension<CSSUnit.Pixel>} ${CSSDimension<CSSUnit.Pixel>} ${CSSDimension<CSSUnit.Pixel>} ${CSSDimension<CSSUnit.Pixel>}`\n\t\t| null\n}\n\nexport type GridItemAlignment = \"start\" | \"center\" | \"end\"\nexport type GridItemColumnSpan = number | \"all\"\n\nexport interface WithGridItemTrait {\n\t/**\n\t * Whether to fill the grid cell width.\n\t *\n\t * For nodes inside a grid container. Defaults to `true`. Supported by FrameNode, TextNode.\n\t */\n\tgridItemFillCellWidth: boolean | null\n\t/**\n\t * Whether to fill the grid cell height.\n\t *\n\t * For nodes inside a grid container. Defaults to `true`. Supported by FrameNode, TextNode.\n\t */\n\tgridItemFillCellHeight: boolean | null\n\t/**\n\t * Horizontal alignment within grid cell.\n\t *\n\t * For nodes inside a grid container. Defaults to `\"center\"`. Supported by FrameNode, TextNode.\n\t */\n\tgridItemHorizontalAlignment: GridItemAlignment | null\n\t/**\n\t * Vertical alignment within grid cell.\n\t *\n\t * For nodes inside a grid container. Defaults to `\"center\"`. Supported by FrameNode, TextNode.\n\t */\n\tgridItemVerticalAlignment: GridItemAlignment | null\n\t/**\n\t * Number of columns to span, or `\"all\"` for all columns.\n\t *\n\t * For nodes inside a grid container. Defaults to `1`. Supported by FrameNode, TextNode.\n\t */\n\tgridItemColumnSpan: GridItemColumnSpan | null\n\t/**\n\t * Number of rows to span.\n\t *\n\t * For nodes inside a grid container. Defaults to `1`. Supported by FrameNode, TextNode.\n\t */\n\tgridItemRowSpan: number | null\n}\n\nexport type TraitVariant = TraitVariantData | TraitVariantNode\n\nexport interface AllTraits<T extends TraitVariant = TraitVariant>\n\textends\n\t\tWithIdTrait,\n\t\tWithNameTrait,\n\t\tWithVisibleTrait,\n\t\tWithLockedTrait,\n\t\tWithBackgroundColorTrait<T>,\n\t\tWithBackgroundImageTrait<T>,\n\t\tWithBackgroundGradientTrait<T>,\n\t\tWithRotationTrait,\n\t\tWithOpacityTrait,\n\t\tWithBorderRadiusTrait,\n\t\tWithBorderTrait<T>,\n\t\tWithOverflowTrait,\n\t\tWithComponentInfoTrait,\n\t\tWithControlAttributesTrait,\n\t\tWithTypedControlsTrait,\n\t\tWithSVGTrait,\n\t\tWithPositionTrait,\n\t\tWithPinsTrait,\n\t\tWithSizeTrait,\n\t\tWithSizeConstraintsTrait,\n\t\tWithAspectRatioTrait,\n\t\tWithTextTruncationTrait,\n\t\tWithImageRenderingTrait,\n\t\tWithZIndexTrait,\n\t\tWithFontTrait<T>,\n\t\tWithInlineTextStyleTrait<T>,\n\t\tWithWebPageInfoTrait,\n\t\tWithLayoutTrait,\n\t\tWithGridItemTrait,\n\t\tWithComponentVariantTrait,\n\t\tWithBreakpointTrait,\n\t\tWithLinkTrait {}\n\nexport type NodeAttributeKey = Prettify<Exclude<keyof AllTraits<TraitVariantNode>, \"id\" | \"children\">>\n\n// Utils\n\ntype PartialNodeData = AnyNode | Partial<AnyNodeData>\n\nconst allPositions: Record<Position, true> = {\n\tfixed: true,\n\tsticky: true,\n\tabsolute: true,\n\trelative: true,\n}\n\nconst positionKey: keyof WithPositionTrait = \"position\"\nexport function supportsPosition<T extends PartialNodeData>(node: T): node is T & WithPositionTrait {\n\tif (!(positionKey in node)) return false\n\tconst value = node[positionKey]\n\treturn isString(value) && allPositions[value] === true\n}\n\nconst pinKey = \"top\" as const satisfies keyof WithPinsTrait\nexport function supportsPins<T extends PartialNodeData>(node: T): node is T & WithPinsTrait {\n\tif (!(pinKey in node)) return false\n\n\tconst value = node[pinKey]\n\treturn isString(value) || isNull(value)\n}\n\nconst sizeKey = \"width\" as const satisfies keyof WithSizeTrait\nexport function supportsSize<T extends PartialNodeData>(node: T): node is T & WithSizeTrait {\n\tif (!(sizeKey in node)) return false\n\tconst value = node[sizeKey]\n\treturn isString(value) || isNull(value)\n}\n\nconst sizeConstraintsKey = \"maxWidth\" as const satisfies keyof WithSizeConstraintsTrait\nexport function supportsSizeConstraints<T extends PartialNodeData>(node: T): node is T & WithSizeConstraintsTrait {\n\tif (!(sizeConstraintsKey in node)) return false\n\tconst value = node[sizeConstraintsKey]\n\treturn isString(value) || isNull(value)\n}\n\nconst aspectRatioKey: keyof WithAspectRatioTrait = \"aspectRatio\"\nexport function supportsAspectRatio<T extends PartialNodeData>(node: T): node is T & WithAspectRatioTrait {\n\tif (!(aspectRatioKey in node)) return false\n\tconst value = node[aspectRatioKey]\n\treturn isNumber(value) || isNull(value)\n}\n\nconst nameKey: keyof WithNameTrait = \"name\"\nexport function supportsName<T extends PartialNodeData>(node: T): node is T & WithNameTrait {\n\tif (!(nameKey in node)) return false\n\tconst value = node[nameKey]\n\treturn isString(value) || isNull(value)\n}\n\nconst visibleKey: keyof WithVisibleTrait = \"visible\"\nexport function supportsVisible<T extends PartialNodeData>(node: T): node is T & WithVisibleTrait {\n\tif (!(visibleKey in node)) return false\n\tconst value = node[visibleKey]\n\treturn isBoolean(value)\n}\n\nconst lockedKey: keyof WithLockedTrait = \"locked\"\nexport function supportsLocked<T extends PartialNodeData>(node: T): node is T & WithLockedTrait {\n\tif (!(lockedKey in node)) return false\n\tconst value = node[lockedKey]\n\treturn isBoolean(value)\n}\n\nconst backgroundColorKey: keyof WithBackgroundColorTrait<TraitVariant> = \"backgroundColor\"\nexport function supportsBackgroundColor<T extends AnyNode>(\n\tnode: T,\n): node is T & WithBackgroundColorTrait<TraitVariantNode> {\n\tif (!(backgroundColorKey in node)) return false\n\tconst value = node[backgroundColorKey]\n\treturn isString(value) || isColorStyle(value) || isNull(value)\n}\n\nconst backgroundColorDataKey: keyof WithBackgroundColorTrait<TraitVariant> = \"backgroundColor\"\nexport function supportsBackgroundColorData<T extends Partial<AnyNodeData>>(\n\tnode: T,\n): node is T & WithBackgroundColorTrait<TraitVariantData> {\n\tif (!(backgroundColorDataKey in node)) return false\n\tconst value = node[backgroundColorDataKey]\n\treturn isString(value) || isColorStyleData(value) || isNull(value)\n}\n\nconst backgroundImageKey: keyof WithBackgroundImageTrait<TraitVariant> = \"backgroundImage\"\nexport function supportsBackgroundImage<T extends AnyNode>(\n\tnode: T,\n): node is T & WithBackgroundImageTrait<TraitVariantNode> {\n\tif (!(backgroundImageKey in node)) return false\n\tconst value = node[backgroundImageKey]\n\treturn value instanceof ImageAsset || isNull(value)\n}\n\nconst backgroundImageDataKey: keyof WithBackgroundImageTrait<TraitVariant> = \"backgroundImage\"\nexport function supportsBackgroundImageData<T extends Partial<AnyNodeData>>(\n\tnode: T,\n): node is T & WithBackgroundImageTrait<TraitVariantData> {\n\tif (!(backgroundImageDataKey in node)) return false\n\tconst value = node[backgroundImageDataKey]\n\tif (value instanceof ImageAsset) return false\n\treturn isImageAssetData(value) || isNull(value)\n}\n\nconst backgroundGradientKey: keyof WithBackgroundGradientTrait<TraitVariant> = \"backgroundGradient\"\nexport function supportsBackgroundGradient<T extends PartialNodeData>(\n\tnode: T,\n): node is T & WithBackgroundGradientTrait<TraitVariantNode> {\n\tif (!(backgroundGradientKey in node)) return false\n\tconst value = node[backgroundGradientKey]\n\treturn isGradient(value) || isNull(value)\n}\n\nconst backgroundGradientDataKey: keyof WithBackgroundGradientTrait<TraitVariant> = \"backgroundGradient\"\nexport function supportsBackgroundGradientData<T extends PartialNodeData>(\n\tnode: T,\n): node is T & WithBackgroundGradientTrait<TraitVariantData> {\n\tif (!(backgroundGradientDataKey in node)) return false\n\tconst value = node[backgroundGradientDataKey]\n\treturn isObject(value) || isNull(value)\n}\n\nconst rotationKey: keyof WithRotationTrait = \"rotation\"\nexport function supportsRotation<T extends PartialNodeData>(node: T): node is T & WithRotationTrait {\n\tif (!(rotationKey in node)) return false\n\tconst value = node[rotationKey]\n\treturn isNumber(value)\n}\n\nconst opacityKey: keyof WithOpacityTrait = \"opacity\"\nexport function supportsOpacity<T extends PartialNodeData>(node: T): node is T & WithOpacityTrait {\n\tif (!(opacityKey in node)) return false\n\tconst value = node[opacityKey]\n\treturn isNumber(value)\n}\n\nconst borderRadiusKey: keyof WithBorderRadiusTrait = \"borderRadius\"\nexport function supportsBorderRadius<T extends PartialNodeData>(node: T): node is T & WithBorderRadiusTrait {\n\tif (!(borderRadiusKey in node)) return false\n\tconst value = node[borderRadiusKey]\n\treturn isString(value) || isNull(value)\n}\n\nconst borderKey: keyof WithBorderTrait<TraitVariant> = \"border\"\nexport function supportsBorder<T extends AnyNode>(node: T): node is T & WithBorderTrait<TraitVariantNode> {\n\tif (!(borderKey in node)) return false\n\tconst value = node[borderKey]\n\treturn isNull(value) || isColorStyle(value.color)\n}\n\nconst svgKey: keyof WithSVGTrait = \"svg\"\nexport function supportsSVG<T extends PartialNodeData>(node: T): node is T & WithSVGTrait {\n\tif (!(svgKey in node)) return false\n\tconst value = node[svgKey]\n\treturn isString(value)\n}\n\nconst textTruncationKey: keyof WithTextTruncationTrait = \"textTruncation\"\nexport function supportsTextTruncation<T extends PartialNodeData>(node: T): node is T & WithTextTruncationTrait {\n\tif (!(textTruncationKey in node)) return false\n\tconst value = node[textTruncationKey as keyof T]\n\treturn isNumber(value) || isNull(value)\n}\n\nconst zIndexKey: keyof WithZIndexTrait = \"zIndex\"\nexport function supportsZIndex<T extends PartialNodeData>(node: T): node is T & WithZIndexTrait {\n\tif (!(zIndexKey in node)) return false\n\tconst value = node[zIndexKey as keyof T]\n\treturn isNumber(value) || isNull(value)\n}\n\nconst overflowKey: keyof WithOverflowTrait = \"overflow\"\nexport function supportsOverflow<T extends PartialNodeData>(node: T): node is T & WithOverflowTrait {\n\tif (!(overflowKey in node)) return false\n\tconst value = node[overflowKey as keyof T]\n\treturn isString(value) || isNull(value)\n}\n\nconst componentInfoKey: keyof WithComponentInfoTrait = \"componentIdentifier\"\nexport function supportsComponentInfo<T extends PartialNodeData>(node: T): node is T & WithComponentInfoTrait {\n\tif (!(componentInfoKey in node)) return false\n\n\tconst value = node[componentInfoKey as keyof T]\n\treturn isString(value)\n}\n\nconst fontKey: keyof WithFontTrait<TraitVariant> = \"font\"\nexport function supportsFont<T extends PartialNodeData>(node: T): node is T & WithFontTrait<TraitVariantNode> {\n\tif (!(fontKey in node)) return false\n\tconst value = node[fontKey]\n\treturn isFont(value)\n}\n\nconst fontDataKey: keyof WithFontTrait<TraitVariant> = \"font\"\nexport function supportsFontData<T extends PartialNodeData>(node: T): node is T & WithFontTrait<TraitVariantData> {\n\tif (!(fontDataKey in node)) return false\n\tconst value = node[fontDataKey]\n\treturn isFontData(value) || isNull(value)\n}\n\nconst inlineTextStyleKey: keyof WithInlineTextStyleTrait<TraitVariant> = \"inlineTextStyle\"\nexport function supportsInlineTextStyle<T extends PartialNodeData>(\n\tnode: T,\n): node is T & WithInlineTextStyleTrait<TraitVariantNode> {\n\tif (!(inlineTextStyleKey in node)) return false\n\tconst value = node[inlineTextStyleKey]\n\treturn isTextStyle(value) || isNull(value)\n}\n\nconst inlineTextStyleDataKey: keyof WithInlineTextStyleTrait<TraitVariant> = \"inlineTextStyle\"\nexport function supportsInlineTextStyleData<T extends PartialNodeData>(\n\tnode: T,\n): node is T & WithInlineTextStyleTrait<TraitVariantData> {\n\tif (!(inlineTextStyleDataKey in node)) return false\n\tconst value = node[inlineTextStyleDataKey]\n\treturn isTextStyleData(value) || isNull(value)\n}\n\nconst linkKey: keyof WithLinkTrait = \"link\"\nexport function supportsLink<T extends PartialNodeData>(node: T): node is T & WithLinkTrait {\n\tif (!(linkKey in node)) return false\n\n\tconst value = node[linkKey as keyof T]\n\treturn isString(value) || isNull(value)\n}\n\nconst imageRenderingKey: keyof WithImageRenderingTrait = \"imageRendering\"\nexport function supportsImageRendering<T extends PartialNodeData>(node: T): node is T & WithImageRenderingTrait {\n\tif (!(imageRenderingKey in node)) return false\n\tconst value = node[imageRenderingKey]\n\treturn isString(value) || isNull(value)\n}\n\nconst layoutKey: keyof WithLayoutTrait = \"layout\"\n\nexport function supportsLayout<T extends PartialNodeData>(node: T): node is T & WithLayoutTrait {\n\tif (!(layoutKey in node)) return false\n\tconst value = node[layoutKey as keyof T]\n\treturn isString(value) || isNull(value)\n}\n\nexport function hasStackLayout<T extends PartialNodeData>(node: T): node is T & WithLayoutTrait & StackLayout {\n\tif (!supportsLayout(node)) return false\n\treturn node.layout === \"stack\"\n}\n\nexport function hasGridLayout<T extends PartialNodeData>(node: T): node is T & WithLayoutTrait & GridLayout {\n\tif (!supportsLayout(node)) return false\n\treturn node.layout === \"grid\"\n}\n\nconst componentVariantKey: keyof WithComponentVariantTrait = \"isVariant\"\nexport function supportsComponentVariant<T extends PartialNodeData>(node: T): node is T & WithComponentVariantTrait {\n\tif (!(componentVariantKey in node)) return false\n\tconst value = node[componentVariantKey as keyof T]\n\treturn isBoolean(value)\n}\n\nexport function isComponentVariant<T extends AnyNode>(node: T): node is T & IsComponentVariant {\n\tif (!supportsComponentVariant(node)) return false\n\treturn node.isVariant\n}\n\nexport function isComponentGestureVariant<T extends AnyNode>(node: T): node is T & IsComponentGestureVariant {\n\tif (!supportsComponentVariant(node)) return false\n\tif (!isComponentVariant(node)) return false\n\n\treturn !isNull(node.gesture)\n}\n\nconst breakpointKey: keyof WithBreakpointTrait = \"isBreakpoint\"\nexport function supportsBreakpoint<T extends PartialNodeData>(node: T): node is T & WithBreakpointTrait {\n\tif (!(breakpointKey in node)) return false\n\tconst value = node[breakpointKey as keyof T]\n\treturn isBoolean(value)\n}\n\nexport function isBreakpoint<T extends AnyNode>(node: T): node is T & IsBreakpoint {\n\tif (!supportsBreakpoint(node)) return false\n\treturn node.isBreakpoint\n}\n", "import type { ImageAsset } from \"./assets.ts\"\nimport type { Breakpoint } from \"./breakpoint.ts\"\nimport { CollectionItem } from \"./collections.ts\"\nimport type { Control, WithTypedControlsTrait } from \"./controls.ts\"\nimport type { CSSDimension, CSSUnit } from \"./css.ts\"\nimport type { PluginEngine } from \"./engine.ts\"\nimport type { NodeRuntimeErrorResult } from \"./errors.ts\"\nimport type { Font } from \"./fonts.ts\"\nimport type { Navigable, NavigableOptions } from \"./framerAPI.ts\"\nimport type { ConicGradient, LinearGradient, RadialGradient } from \"./gradients.ts\"\nimport { getHTMLForNodeMessageType, setHTMLForNodeMessageType } from \"./internal.ts\"\nimport { marshal } from \"./marshal.ts\"\nimport type { ColorStyle, TextStyle } from \"./styles.ts\"\nimport type {\n\tAllTraits,\n\tBorder,\n\tBorderRadius,\n\tControlAttributes,\n\tGesture,\n\tHeightConstraint,\n\tHeightLength,\n\tImageRendering,\n\tIsComponentGestureVariant,\n\tNodeAttributeKey,\n\tNodeId,\n\tPosition,\n\tTraitVariantData,\n\tTraitVariantNode,\n\tWidthConstraint,\n\tWidthLength,\n\tWithAspectRatioTrait,\n\tWithBackgroundColorTrait,\n\tWithBackgroundGradientTrait,\n\tWithBackgroundImageTrait,\n\tWithBorderRadiusTrait,\n\tWithBorderTrait,\n\tWithBreakpointTrait,\n\tWithComponentInfoTrait,\n\tWithComponentVariantTrait,\n\tWithControlAttributesTrait,\n\tWithFontTrait,\n\tWithGridItemTrait,\n\tWithIdTrait,\n\tWithImageRenderingTrait,\n\tWithInlineTextStyleTrait,\n\tWithLayoutTrait,\n\tWithLinkTrait,\n\tWithLockedTrait,\n\tWithNameTrait,\n\tWithNullableComponentInfoTrait,\n\tWithOpacityTrait,\n\tWithOverflowTrait,\n\tWithPinsTrait,\n\tWithPositionTrait,\n\tWithReplicaInfoTrait,\n\tWithRequiredComponentInfoTrait,\n\tWithRotationTrait,\n\tWithSVGTrait,\n\tWithSizeConstraintsTrait,\n\tWithSizeTrait,\n\tWithTextTruncationTrait,\n\tWithVisibleTrait,\n\tWithWebPageInfoTrait,\n\tWithZIndexTrait,\n} from \"./traits.ts\"\nimport { isBreakpoint, isComponentGestureVariant, isComponentVariant } from \"./traits.ts\"\nimport { unmarshal } from \"./unmarshal.ts\"\nimport { assert, type ClassKey, classKey, deepFreeze, shouldBeNever } from \"./utils.ts\"\nimport type { ComponentVariable, CreateVariable } from \"./variables.ts\"\nimport type { ZoomIntoViewOptions } from \"./viewport.ts\"\n\nexport interface Rect {\n\tx: number\n\ty: number\n\twidth: number\n\theight: number\n}\n\nconst createableNodes = [\"FrameNode\", \"TextNode\", \"ComponentNode\"] as const\nconst otherNodes = [\n\t\"SVGNode\",\n\t\"DesignPageNode\",\n\t\"WebPageNode\",\n\t\"ComponentNode\",\n\t\"VectorSetNode\",\n\t\"VectorSetItemNode\",\n\t\"UnknownNode\",\n\t\"ComponentInstanceNode\",\n] as const\n\nexport type CreateNodeType = (typeof createableNodes)[number]\ntype OtherNodeType = (typeof otherNodes)[number]\nexport type PluginNodeClass = OtherNodeType | CreateNodeType\nexport type KnownNodeClass = Exclude<PluginNodeClass, \"UnknownNode\">\n\nexport type NodeWithAttribute<T extends NodeAttributeKey> = Extract<AnyNode, Record<T, unknown>>\n\nexport interface CommonNodeData extends WithIdTrait, WithReplicaInfoTrait {\n\t[classKey]: PluginNodeClass\n}\n\ninterface NodeClassToEditableAttributes {\n\tFrameNode: EditableFrameNodeAttributes\n\tTextNode: EditableTextNodeAttributes\n\tSVGNode: EditableSVGNodeAttributes\n\tComponentInstanceNode: EditableComponentInstanceNodeAttributes\n\tDesignPageNode: EditableDesignPageNodeAttributes\n\tWebPageNode: EditableWebPageNodeAttributes\n\tComponentNode: EditableComponentNodeAttributes\n\tVectorSetNode: EditableVectorSetNodeAttributes\n\tVectorSetItemNode: EditableVectorSetItemNodeAttributes\n\tUnknownNode: object\n}\n\n/**\n * Base class providing common methods shared by all node types.\n *\n * Nodes are the building blocks that make up the content in a project.\n * They are represented as \"layers\" in the editor UI.\n *\n * Every node has a unique {@link NodeMethods.id | id}. Nodes support\n * plugin data storage, tree traversal (parent/children), cloning,\n * removal, and attribute updates.\n *\n * Every node has an {@link NodeMethods.isReplica | isReplica} property\n * that indicates if the node is a replica. Replica nodes are used within\n * non-primary breakpoints and component variants, and inherit attributes\n * from the primary variant or breakpoint. Once a specific attribute is\n * overridden on a replica node, it is no longer inherited from the\n * primary node.\n *\n * @example\n * ```ts\n * // Get selected nodes.\n * const selection = await framer.getSelection()\n *\n * // Get a node by ID.\n * const node = await framer.getNode(\"some-node-id\")\n *\n * // Get all frame nodes in a project.\n * const frameNodes = await framer.getNodesWithType(\"FrameNode\")\n * ```\n */\nexport abstract class NodeMethods implements WithIdTrait, Navigable {\n\tabstract readonly [classKey]: PluginNodeClass\n\n\treadonly id: NodeId\n\treadonly originalId: NodeId | null\n\n\t// We use `#` to make sure the api and data fields can not be observed when a user logs or loops\n\t// over a node instance.\n\t#engine: PluginEngine\n\n\tconstructor(data: SomeNodeData, engine: PluginEngine) {\n\t\tthis.id = data.id\n\t\tthis.originalId = data.originalId ?? null\n\t\tthis.#engine = engine\n\t}\n\n\t// Getters\n\n\tget isReplica(): boolean {\n\t\treturn this.originalId !== null\n\t}\n\n\t// Methods\n\n\t/**\n\t * Remove this node from the canvas tree.\n\t *\n\t * Use `\"Node.remove\"` to check if this method is allowed.\n\t */\n\tasync remove(): Promise<void> {\n\t\treturn this.#engine.invoke(\"removeNodes2\", [this.id])\n\t}\n\n\t/**\n\t * Select this node on the canvas.\n\t */\n\tasync select(): Promise<void> {\n\t\treturn this.#engine.invoke(\"setSelection\", [this.id])\n\t}\n\n\t/**\n\t * Clone this node, creating a duplicate in the canvas tree.\n\t *\n\t * @returns The cloned node, or `null` if the clone failed.\n\t * @throws If the node is an `UnknownNode`.\n\t *\n\t * Use `\"Node.clone\"` to check if this method is allowed.\n\t */\n\tasync clone(): Promise<typeof this | null> {\n\t\treturn this.#engine.cloneNode(this.id) as ReturnType<typeof this.clone>\n\t}\n\n\t/**\n\t * Set the attributes of this node.\n\t *\n\t * Attributes are merged with existing values, so only the provided\n\t * attributes are updated.\n\t *\n\t * @param update - The attributes to update.\n\t * @returns The updated node, or `null` if the node was not found.\n\t * @throws If the node is an `UnknownNode`.\n\t *\n\t * Use `\"Node.setAttributes\"` to check if this method is allowed.\n\t */\n\tasync setAttributes(\n\t\tupdate: Partial<NodeClassToEditableAttributes[(typeof this)[ClassKey]]>,\n\t): Promise<(typeof this)[ClassKey] extends \"UnknownNode\" ? never : typeof this | null> {\n\t\tif (this[classKey] === \"UnknownNode\") throw Error(\"Can not set attributes on unknown node\")\n\t\treturn this.#engine.setAttributes(this.id, update) as ReturnType<typeof this.setAttributes>\n\t}\n\n\t/**\n\t * Get the bounding box of this node.\n\t *\n\t * @returns The bounding rectangle, or `null` if unavailable.\n\t */\n\tasync getRect(): Promise<Rect | null> {\n\t\treturn this.#engine.invoke(\"getRect\", this.id)\n\t}\n\n\t/**\n\t * Pans and zooms the viewport to center the node.\n\t *\n\t * @param options - Options like `maxZoom` and `skipIfVisible`.\n\t */\n\tasync zoomIntoView(options?: ZoomIntoViewOptions): Promise<void> {\n\t\treturn this.#engine.invoke(\"zoomIntoView\", [this.id], options)\n\t}\n\n\t/**\n\t * Navigate to this node.\n\t *\n\t * May switch modes to reveal the relevant view.\n\t */\n\tasync navigateTo(opts?: Pick<NavigableOptions, \"select\" | \"zoomIntoView\">): Promise<void> {\n\t\treturn this.#engine.invoke(\"navigateTo\", this.id, opts)\n\t}\n\n\t// Iterators\n\n\t/**\n\t * Get the parent of this node in the canvas tree.\n\t *\n\t * @returns The parent node, or `null` if this is a root node.\n\t */\n\tasync getParent(): Promise<AnyNode | null> {\n\t\treturn this.#engine.getParent(this.id)\n\t}\n\n\t/**\n\t * Get the children of this node in the canvas tree.\n\t *\n\t * @returns An array of child nodes. Returns an empty array for `UnknownNode`.\n\t */\n\tasync getChildren(): Promise<CanvasNode[]> {\n\t\tif (isUnknownNode(this)) return Promise.resolve([])\n\t\treturn this.#engine.getChildren(this.id)\n\t}\n\n\t/**\n\t * Get descendants of this node that match the given type.\n\t *\n\t * This can also be used to query within a selection subtree.\n\t *\n\t * @param type - The node type to search for.\n\t * @returns An array of matching descendant nodes.\n\t *\n\t * @example\n\t * ```ts\n\t * // Get all frame nodes in a project.\n\t * const frameNodes = await framer.getNodesWithType(\"FrameNode\")\n\t *\n\t * // Query within a selection subtree.\n\t * const selection = await framer.getSelection()\n\t * if (selection.length === 1) {\n\t *   const frameNodes = await selection[0].getNodesWithType(\"FrameNode\")\n\t * }\n\t * ```\n\t */\n\tasync getNodesWithType(type: \"FrameNode\"): Promise<FrameNode[]>\n\tasync getNodesWithType(type: \"TextNode\"): Promise<TextNode[]>\n\tasync getNodesWithType(type: \"SVGNode\"): Promise<SVGNode[]>\n\tasync getNodesWithType(type: \"ComponentInstanceNode\"): Promise<ComponentInstanceNode[]>\n\tasync getNodesWithType(type: \"DesignPageNode\"): Promise<DesignPageNode[]>\n\tasync getNodesWithType(type: \"WebPageNode\"): Promise<WebPageNode[]>\n\tasync getNodesWithType(type: \"ComponentNode\"): Promise<ComponentNode[]>\n\tasync getNodesWithType(type: KnownNodeClass): Promise<AnyNode[]> {\n\t\tif (isUnknownNode(this)) return Promise.resolve([])\n\t\tconst nodeData = await this.#engine.invoke(\"getNodesWithType\", this.id, type)\n\t\treturn nodeData.map(data => convertRawNodeDataToNode(data, this.#engine))\n\t}\n\n\t/**\n\t * Get the descendants of this node that support `attribute`.\n\t *\n\t * This returns nodes that have the given attribute defined in their type,\n\t * regardless of whether it has been set.\n\t *\n\t * @param attribute - The attribute name to filter by.\n\t * @returns An array of nodes that support the attribute.\n\t *\n\t * @example\n\t * ```ts\n\t * // Get any kind of node that has a background color attribute.\n\t * const nodes = await framer.getNodesWithAttribute(\"backgroundColor\")\n\t * ```\n\t */\n\tasync getNodesWithAttribute<T extends NodeAttributeKey, Node = NodeWithAttribute<T>>(attribute: T): Promise<Node[]> {\n\t\tif (isUnknownNode(this)) return Promise.resolve([])\n\t\tconst nodeData = await this.#engine.invoke(\"getNodesWithAttribute\", this.id, attribute)\n\t\treturn nodeData.map(data => convertRawNodeDataToNode(data, this.#engine) as Node)\n\t}\n\n\t/**\n\t * Get the descendants of this node that have `attribute` set to a\n\t * non-null value.\n\t *\n\t * @param attribute - The attribute name to filter by.\n\t * @returns An array of nodes that have the attribute set.\n\t *\n\t * @example\n\t * ```ts\n\t * // Get all nodes with a background image set.\n\t * const nodes = await framer.getNodesWithAttributeSet(\"backgroundImage\")\n\t * ```\n\t */\n\tasync getNodesWithAttributeSet<T extends NodeAttributeKey, Node = NodeWithAttribute<T>>(\n\t\tattribute: T,\n\t): Promise<Node[]> {\n\t\tif (isUnknownNode(this)) return Promise.resolve([])\n\t\tconst nodeData = await this.#engine.invoke(\"getNodesWithAttributeSet\", this.id, attribute)\n\t\treturn nodeData.map(data => convertRawNodeDataToNode(data, this.#engine) as Node)\n\t}\n\n\t/**\n\t * Walk this node and its descendants recursively.\n\t *\n\t * Uses an async generator. Yields nodes depth-first.\n\t */\n\tasync *walk(this: AnyNode): AsyncGenerator<AnyNode> {\n\t\tyield this\n\t\tif (isUnknownNode(this)) return\n\n\t\tfor (const child of await this.getChildren()) {\n\t\t\tyield* child.walk()\n\t\t}\n\t}\n\n\t/**\n\t * Get plugin data by key.\n\t *\n\t * Plugin data lets you store arbitrary string values on individual\n\t * nodes, scoped to your plugin.\n\t *\n\t * @param key - The plugin data key.\n\t * @returns The stored value, or `null` if no data exists for the key.\n\t */\n\tasync getPluginData(key: string): Promise<string | null> {\n\t\treturn this.#engine.invoke(\"getPluginDataForNode\", this.id, key)\n\t}\n\n\t/**\n\t * Set plugin data by key.\n\t *\n\t * Plugin data lets you store arbitrary string values on individual\n\t * nodes, scoped to your plugin.\n\t *\n\t * @param key - The plugin data key.\n\t * @param value - The value to set, or `null` to remove.\n\t *\n\t * Use `\"Node.setPluginData\"` to check if this method is allowed.\n\t */\n\tasync setPluginData(key: string, value: string | null): Promise<void> {\n\t\treturn this.#engine.invoke(\"setPluginDataForNode\", this.id, key, value)\n\t}\n\n\t/**\n\t * Get all plugin data keys stored on this node.\n\t *\n\t * @returns An array of all plugin data keys.\n\t */\n\tasync getPluginDataKeys() {\n\t\treturn this.#engine.invoke(\"getPluginDataKeysForNode\", this.id)\n\t}\n}\n\ninterface DrawableNode extends WithNameTrait, WithVisibleTrait, WithLockedTrait, WithOpacityTrait {}\n\nexport interface EditableFrameNodeAttributes\n\textends\n\t\tDrawableNode,\n\t\tWithPositionTrait,\n\t\tWithPinsTrait,\n\t\tWithSizeTrait,\n\t\tWithSizeConstraintsTrait,\n\t\tWithAspectRatioTrait,\n\t\tWithZIndexTrait,\n\t\tWithOverflowTrait,\n\t\tWithBackgroundColorTrait<TraitVariantNode>,\n\t\tWithBackgroundImageTrait<TraitVariantNode>,\n\t\tWithBackgroundGradientTrait<TraitVariantNode>,\n\t\tWithRotationTrait,\n\t\tWithLinkTrait,\n\t\tWithBorderRadiusTrait,\n\t\tWithBorderTrait<TraitVariantNode>,\n\t\tWithLayoutTrait,\n\t\tWithGridItemTrait,\n\t\tWithImageRenderingTrait {}\n\nexport interface FrameNodeData\n\textends\n\t\tCommonNodeData,\n\t\tPartial<DrawableNode>,\n\t\tWithPositionTrait,\n\t\tPartial<WithComponentVariantTrait>,\n\t\tPartial<WithPinsTrait>,\n\t\tPartial<WithSizeTrait>,\n\t\tPartial<WithSizeConstraintsTrait>,\n\t\tPartial<WithAspectRatioTrait>,\n\t\tPartial<WithZIndexTrait>,\n\t\tPartial<WithOverflowTrait>,\n\t\tPartial<WithBackgroundColorTrait<TraitVariantData>>,\n\t\tPartial<WithBackgroundImageTrait<TraitVariantData>>,\n\t\tPartial<WithBackgroundGradientTrait<TraitVariantData>>,\n\t\tPartial<WithRotationTrait>,\n\t\tPartial<WithLinkTrait>,\n\t\tPartial<WithBorderRadiusTrait>,\n\t\tPartial<WithBorderTrait<TraitVariantData>>,\n\t\tPartial<WithLayoutTrait>,\n\t\tPartial<WithGridItemTrait>,\n\t\tPartial<WithBreakpointTrait>,\n\t\tPartial<WithImageRenderingTrait> {\n\t[classKey]: \"FrameNode\"\n}\n\n/**\n * A frame layer on the canvas, the most common container node.\n *\n * Frames can contain children, have layout settings, backgrounds, borders,\n * and can serve as breakpoint or component variants.\n * @category canvas\n */\nexport class FrameNode extends NodeMethods implements EditableFrameNodeAttributes, WithBreakpointTrait {\n\treadonly [classKey]: FrameNodeData[ClassKey] = \"FrameNode\"\n\n\treadonly name: string | null\n\treadonly visible: boolean\n\treadonly locked: boolean\n\treadonly backgroundColor: ColorStyle | string | null\n\treadonly backgroundImage: ImageAsset | null\n\treadonly backgroundGradient: LinearGradient | RadialGradient | ConicGradient | null\n\treadonly rotation: number\n\treadonly opacity: number\n\treadonly borderRadius: BorderRadius\n\treadonly border: Border | null\n\treadonly imageRendering: ImageRendering | null\n\n\treadonly position: Position\n\treadonly top: CSSDimension<CSSUnit.Pixel> | null\n\treadonly right: CSSDimension<CSSUnit.Pixel> | null\n\treadonly bottom: CSSDimension<CSSUnit.Pixel> | null\n\treadonly left: CSSDimension<CSSUnit.Pixel> | null\n\treadonly centerX: CSSDimension<CSSUnit.Percentage> | null\n\treadonly centerY: CSSDimension<CSSUnit.Percentage> | null\n\treadonly width: WidthLength | null\n\treadonly height: HeightLength | null\n\treadonly maxWidth: WidthConstraint | null\n\treadonly minWidth: WidthConstraint | null\n\treadonly maxHeight: HeightConstraint | null\n\treadonly minHeight: HeightConstraint | null\n\treadonly aspectRatio: number | null\n\treadonly zIndex: WithZIndexTrait[\"zIndex\"]\n\treadonly link: WithLinkTrait[\"link\"]\n\treadonly linkOpenInNewTab: WithLinkTrait[\"linkOpenInNewTab\"]\n\treadonly linkSmoothScroll: WithLinkTrait[\"linkSmoothScroll\"]\n\treadonly linkClickTrackingId: WithLinkTrait[\"linkClickTrackingId\"]\n\treadonly linkRelValues: WithLinkTrait[\"linkRelValues\"]\n\treadonly linkPreserveParams: WithLinkTrait[\"linkPreserveParams\"]\n\n\treadonly overflow: WithOverflowTrait[\"overflow\"]\n\treadonly overflowX: WithOverflowTrait[\"overflowX\"]\n\treadonly overflowY: WithOverflowTrait[\"overflowY\"]\n\n\treadonly layout: WithLayoutTrait[\"layout\"]\n\treadonly gap: WithLayoutTrait[\"gap\"]\n\treadonly padding: WithLayoutTrait[\"padding\"]\n\treadonly stackDirection: WithLayoutTrait[\"stackDirection\"]\n\treadonly stackDistribution: WithLayoutTrait[\"stackDistribution\"]\n\treadonly stackAlignment: WithLayoutTrait[\"stackAlignment\"]\n\treadonly stackWrapEnabled: WithLayoutTrait[\"stackWrapEnabled\"]\n\n\treadonly gridColumnCount: WithLayoutTrait[\"gridColumnCount\"]\n\treadonly gridRowCount: WithLayoutTrait[\"gridRowCount\"]\n\treadonly gridAlignment: WithLayoutTrait[\"gridAlignment\"]\n\treadonly gridColumnWidthType: WithLayoutTrait[\"gridColumnWidthType\"]\n\treadonly gridColumnWidth: WithLayoutTrait[\"gridColumnWidth\"]\n\treadonly gridColumnMinWidth: WithLayoutTrait[\"gridColumnMinWidth\"]\n\treadonly gridRowHeightType: WithLayoutTrait[\"gridRowHeightType\"]\n\treadonly gridRowHeight: WithLayoutTrait[\"gridRowHeight\"]\n\treadonly gridItemFillCellWidth: WithGridItemTrait[\"gridItemFillCellWidth\"]\n\treadonly gridItemFillCellHeight: WithGridItemTrait[\"gridItemFillCellHeight\"]\n\treadonly gridItemHorizontalAlignment: WithGridItemTrait[\"gridItemHorizontalAlignment\"]\n\treadonly gridItemVerticalAlignment: WithGridItemTrait[\"gridItemVerticalAlignment\"]\n\treadonly gridItemColumnSpan: WithGridItemTrait[\"gridItemColumnSpan\"]\n\treadonly gridItemRowSpan: WithGridItemTrait[\"gridItemRowSpan\"]\n\n\treadonly isVariant: boolean\n\treadonly isPrimaryVariant: boolean\n\treadonly isBreakpoint: boolean\n\treadonly isPrimaryBreakpoint: boolean\n\n\treadonly inheritsFromId: string | null\n\treadonly gesture: Gesture | null\n\n\tconstructor(rawData: FrameNodeData, engine: PluginEngine) {\n\t\tsuper(rawData, engine)\n\n\t\tthis.name = rawData.name ?? null\n\n\t\tthis.visible = rawData.visible ?? true\n\t\tthis.locked = rawData.locked ?? false\n\t\tthis.backgroundColor = unmarshal(engine, rawData.backgroundColor) ?? null\n\t\tthis.backgroundImage = unmarshal(engine, rawData.backgroundImage) ?? null\n\t\tthis.rotation = rawData.rotation ?? 0\n\t\tthis.opacity = rawData.opacity ?? 1\n\t\tthis.borderRadius = rawData.borderRadius ?? null\n\n\t\tthis.border = unmarshal(engine, rawData.border) ?? null\n\n\t\tthis.backgroundGradient = unmarshal(engine, rawData.backgroundGradient) ?? null\n\t\tthis.imageRendering = rawData.imageRendering ?? null\n\n\t\tthis.position = rawData.position\n\t\tthis.left = rawData.left ?? null\n\t\tthis.right = rawData.right ?? null\n\t\tthis.top = rawData.top ?? null\n\t\tthis.bottom = rawData.bottom ?? null\n\t\tthis.centerX = rawData.centerX ?? null\n\t\tthis.centerY = rawData.centerY ?? null\n\t\tthis.width = rawData.width ?? null\n\t\tthis.height = rawData.height ?? null\n\t\tthis.maxWidth = rawData.maxWidth ?? null\n\t\tthis.minWidth = rawData.minWidth ?? null\n\t\tthis.maxHeight = rawData.maxHeight ?? null\n\t\tthis.minHeight = rawData.minHeight ?? null\n\t\tthis.aspectRatio = rawData.aspectRatio ?? null\n\t\tthis.zIndex = rawData.zIndex ?? null\n\t\tthis.link = rawData.link ?? null\n\t\tthis.linkOpenInNewTab = rawData.linkOpenInNewTab ?? null\n\t\tthis.linkSmoothScroll = rawData.linkSmoothScroll ?? null\n\t\tthis.linkClickTrackingId = rawData.linkClickTrackingId ?? null\n\t\tthis.linkRelValues = rawData.linkRelValues ?? null\n\t\tthis.linkPreserveParams = rawData.linkPreserveParams ?? null\n\n\t\tthis.overflow = rawData.overflow ?? null\n\t\tthis.overflowX = rawData.overflowX ?? null\n\t\tthis.overflowY = rawData.overflowY ?? null\n\n\t\tthis.layout = rawData.layout ?? null\n\t\tthis.gap = rawData.gap ?? null\n\t\tthis.padding = rawData.padding ?? null\n\t\tthis.stackDirection = rawData.stackDirection ?? null\n\t\tthis.stackDistribution = rawData.stackDistribution ?? null\n\t\tthis.stackAlignment = rawData.stackAlignment ?? null\n\t\tthis.stackWrapEnabled = rawData.stackWrapEnabled ?? null\n\t\tthis.gridColumnCount = rawData.gridColumnCount ?? null\n\t\tthis.gridRowCount = rawData.gridRowCount ?? null\n\t\tthis.gridAlignment = rawData.gridAlignment ?? null\n\t\tthis.gridColumnWidthType = rawData.gridColumnWidthType ?? null\n\t\tthis.gridColumnWidth = rawData.gridColumnWidth ?? null\n\t\tthis.gridColumnMinWidth = rawData.gridColumnMinWidth ?? null\n\t\tthis.gridRowHeightType = rawData.gridRowHeightType ?? null\n\t\tthis.gridRowHeight = rawData.gridRowHeight ?? null\n\t\tthis.gridItemFillCellWidth = rawData.gridItemFillCellWidth ?? null\n\t\tthis.gridItemFillCellHeight = rawData.gridItemFillCellHeight ?? null\n\t\tthis.gridItemHorizontalAlignment = rawData.gridItemHorizontalAlignment ?? null\n\t\tthis.gridItemVerticalAlignment = rawData.gridItemVerticalAlignment ?? null\n\t\tthis.gridItemColumnSpan = rawData.gridItemColumnSpan ?? null\n\t\tthis.gridItemRowSpan = rawData.gridItemRowSpan ?? null\n\n\t\tthis.inheritsFromId = rawData.inheritsFromId ?? null\n\t\tthis.gesture = rawData.gesture ?? null\n\t\tthis.isVariant = rawData.isVariant ?? false\n\t\tthis.isPrimaryVariant = rawData.isPrimaryVariant ?? false\n\n\t\tthis.isBreakpoint = rawData.isBreakpoint ?? false\n\t\tthis.isPrimaryBreakpoint = rawData.isPrimaryBreakpoint ?? false\n\n\t\tdeepFreeze(this)\n\t}\n}\n\nexport interface EditableTextNodeAttributes\n\textends\n\t\tDrawableNode,\n\t\tWithPositionTrait,\n\t\tWithPinsTrait,\n\t\tWithSizeTrait,\n\t\tWithSizeConstraintsTrait,\n\t\tWithRotationTrait,\n\t\tWithZIndexTrait,\n\t\tWithOverflowTrait,\n\t\tWithTextTruncationTrait,\n\t\tWithFontTrait<TraitVariantNode>,\n\t\tWithLinkTrait,\n\t\tWithInlineTextStyleTrait<TraitVariantNode>,\n\t\tWithGridItemTrait {}\n\nexport interface TextNodeData\n\textends\n\t\tCommonNodeData,\n\t\tPartial<DrawableNode>,\n\t\tWithPositionTrait,\n\t\tPartial<WithPinsTrait>,\n\t\tPartial<WithSizeTrait>,\n\t\tPartial<WithSizeConstraintsTrait>,\n\t\tPartial<WithRotationTrait>,\n\t\tPartial<WithZIndexTrait>,\n\t\tPartial<WithLinkTrait>,\n\t\tPartial<WithOverflowTrait>,\n\t\tPartial<WithTextTruncationTrait>,\n\t\tPartial<WithFontTrait<TraitVariantData>>,\n\t\tPartial<WithInlineTextStyleTrait<TraitVariantData>>,\n\t\tPartial<WithGridItemTrait> {\n\t[classKey]: \"TextNode\"\n}\n\n/**\n * A text layer on the canvas.\n *\n * Use {@link TextNode.setText | setText} and\n * {@link TextNode.getText | getText} to work with plain text, or\n * {@link TextNode.setHTML | setHTML} and {@link TextNode.getHTML | getHTML}\n * for rich text content.\n *\n * @example\n * ```ts\n * const selection = await framer.getSelection()\n * for (const node of selection) {\n *   if (isTextNode(node)) {\n *     node.setText(\"Hello!\")\n *   }\n * }\n * ```\n * @category canvas\n */\nexport class TextNode extends NodeMethods implements EditableTextNodeAttributes {\n\treadonly [classKey]: TextNodeData[ClassKey] = \"TextNode\"\n\n\treadonly name: string | null\n\treadonly visible: boolean\n\treadonly locked: boolean\n\treadonly rotation: number\n\treadonly opacity: number\n\treadonly zIndex: WithZIndexTrait[\"zIndex\"]\n\treadonly font: Font | null\n\treadonly inlineTextStyle: TextStyle | null\n\treadonly position: Position\n\treadonly top: CSSDimension<CSSUnit.Pixel> | null\n\treadonly right: CSSDimension<CSSUnit.Pixel> | null\n\treadonly bottom: CSSDimension<CSSUnit.Pixel> | null\n\treadonly left: CSSDimension<CSSUnit.Pixel> | null\n\treadonly centerX: CSSDimension<CSSUnit.Percentage> | null\n\treadonly centerY: CSSDimension<CSSUnit.Percentage> | null\n\treadonly width: WidthLength | null\n\treadonly height: HeightLength | null\n\treadonly maxWidth: WidthConstraint | null\n\treadonly minWidth: WidthConstraint | null\n\treadonly maxHeight: HeightConstraint | null\n\treadonly minHeight: HeightConstraint | null\n\n\treadonly link: WithLinkTrait[\"link\"]\n\treadonly linkOpenInNewTab: WithLinkTrait[\"linkOpenInNewTab\"]\n\treadonly linkSmoothScroll: WithLinkTrait[\"linkSmoothScroll\"]\n\treadonly linkClickTrackingId: WithLinkTrait[\"linkClickTrackingId\"]\n\treadonly linkRelValues: WithLinkTrait[\"linkRelValues\"]\n\treadonly linkPreserveParams: WithLinkTrait[\"linkPreserveParams\"]\n\n\treadonly gridItemFillCellWidth: WithGridItemTrait[\"gridItemFillCellWidth\"]\n\treadonly gridItemFillCellHeight: WithGridItemTrait[\"gridItemFillCellHeight\"]\n\treadonly gridItemHorizontalAlignment: WithGridItemTrait[\"gridItemHorizontalAlignment\"]\n\treadonly gridItemVerticalAlignment: WithGridItemTrait[\"gridItemVerticalAlignment\"]\n\treadonly gridItemColumnSpan: WithGridItemTrait[\"gridItemColumnSpan\"]\n\treadonly gridItemRowSpan: WithGridItemTrait[\"gridItemRowSpan\"]\n\n\treadonly overflow: WithOverflowTrait[\"overflow\"]\n\treadonly overflowX: WithOverflowTrait[\"overflowX\"]\n\treadonly overflowY: WithOverflowTrait[\"overflowY\"]\n\treadonly textTruncation: WithTextTruncationTrait[\"textTruncation\"]\n\n\t#engine: PluginEngine\n\n\tconstructor(rawData: TextNodeData, engine: PluginEngine) {\n\t\tsuper(rawData, engine)\n\n\t\tthis.#engine = engine\n\t\tthis.name = rawData.name ?? null\n\t\tthis.visible = rawData.visible ?? true\n\t\tthis.locked = rawData.locked ?? false\n\t\tthis.rotation = rawData.rotation ?? 0\n\t\tthis.opacity = rawData.opacity ?? 1\n\t\tthis.zIndex = rawData.zIndex ?? null\n\t\tthis.font = unmarshal(engine, rawData.font) ?? null\n\t\tthis.inlineTextStyle = unmarshal(engine, rawData.inlineTextStyle) ?? null\n\n\t\tthis.position = rawData.position\n\t\tthis.left = rawData.left ?? null\n\t\tthis.right = rawData.right ?? null\n\t\tthis.top = rawData.top ?? null\n\t\tthis.bottom = rawData.bottom ?? null\n\t\tthis.centerX = rawData.centerX ?? null\n\t\tthis.centerY = rawData.centerY ?? null\n\t\tthis.width = rawData.width ?? null\n\t\tthis.height = rawData.height ?? null\n\t\tthis.maxWidth = rawData.maxWidth ?? null\n\t\tthis.minWidth = rawData.minWidth ?? null\n\t\tthis.maxHeight = rawData.maxHeight ?? null\n\t\tthis.minHeight = rawData.minHeight ?? null\n\t\tthis.link = rawData.link ?? null\n\t\tthis.linkOpenInNewTab = rawData.linkOpenInNewTab ?? null\n\t\tthis.linkSmoothScroll = rawData.linkSmoothScroll ?? null\n\t\tthis.linkClickTrackingId = rawData.linkClickTrackingId ?? null\n\t\tthis.linkRelValues = rawData.linkRelValues ?? null\n\t\tthis.linkPreserveParams = rawData.linkPreserveParams ?? null\n\n\t\tthis.overflow = rawData.overflow ?? null\n\t\tthis.overflowX = rawData.overflowX ?? null\n\t\tthis.overflowY = rawData.overflowY ?? null\n\t\tthis.textTruncation = rawData.textTruncation ?? null\n\n\t\tthis.gridItemFillCellWidth = rawData.gridItemFillCellWidth ?? null\n\t\tthis.gridItemFillCellHeight = rawData.gridItemFillCellHeight ?? null\n\t\tthis.gridItemHorizontalAlignment = rawData.gridItemHorizontalAlignment ?? null\n\t\tthis.gridItemVerticalAlignment = rawData.gridItemVerticalAlignment ?? null\n\t\tthis.gridItemColumnSpan = rawData.gridItemColumnSpan ?? null\n\t\tthis.gridItemRowSpan = rawData.gridItemRowSpan ?? null\n\n\t\tdeepFreeze(this)\n\t}\n\n\t/**\n\t * Set the text of this node.\n\t *\n\t * Plain text content, not HTML.\n\t *\n\t * Use `\"TextNode.setText\"` to check if this method is allowed.\n\t */\n\tasync setText(text: string): Promise<void> {\n\t\tawait this.#engine.invoke(\"setTextForNode\", this.id, text)\n\t}\n\n\t/**\n\t * Get the text of this node.\n\t *\n\t * Plain text content, not HTML.\n\t */\n\tasync getText(): Promise<string | null> {\n\t\treturn this.#engine.invoke(\"getTextForNode\", this.id)\n\t}\n\n\t/**\n\t * Set the HTML of this node\n\t *\n\t * @alpha This an early API, and maybe heavily refactored in the future.\n\t */\n\tasync setHTML(html: string): Promise<void> {\n\t\tawait this.#engine.invoke(setHTMLForNodeMessageType, this.id, html)\n\t\t// FIXME: Adds an artificial delay to ensure the HTML is set before the attributes are set\n\t\tawait new Promise(resolve => {\n\t\t\tsetTimeout(resolve, 30)\n\t\t})\n\t}\n\n\t/**\n\t * Get HTML of this node\n\t *\n\t * @alpha This an early API, and maybe heavily refactored in the future.\n\t */\n\tasync getHTML(): Promise<string | null> {\n\t\treturn this.#engine.invoke(getHTMLForNodeMessageType, this.id)\n\t}\n}\n\nexport interface EditableSVGNodeAttributes\n\textends DrawableNode, WithPositionTrait, WithPinsTrait, WithSizeTrait, WithSVGTrait, WithRotationTrait {}\n\nexport interface SVGNodeData\n\textends\n\t\tCommonNodeData,\n\t\tPartial<DrawableNode>,\n\t\tWithPositionTrait,\n\t\tPartial<WithPinsTrait>,\n\t\tPartial<WithSizeTrait>,\n\t\tWithSVGTrait,\n\t\tPartial<WithRotationTrait> {\n\t[classKey]: \"SVGNode\"\n}\n\n/**\n * An SVG graphic layer on the canvas.\n *\n * Contains the raw SVG string and supports positioning, sizing,\n * rotation, and visibility.\n * @category canvas\n */\nexport class SVGNode extends NodeMethods implements EditableSVGNodeAttributes {\n\treadonly [classKey]: SVGNodeData[ClassKey] = \"SVGNode\"\n\n\treadonly name: string | null\n\treadonly visible: boolean\n\treadonly locked: boolean\n\treadonly svg: string\n\treadonly rotation: number\n\treadonly opacity: number\n\n\treadonly position: Position\n\treadonly top: CSSDimension<CSSUnit.Pixel> | null\n\treadonly right: CSSDimension<CSSUnit.Pixel> | null\n\treadonly bottom: CSSDimension<CSSUnit.Pixel> | null\n\treadonly left: CSSDimension<CSSUnit.Pixel> | null\n\treadonly centerX: CSSDimension<CSSUnit.Percentage> | null\n\treadonly centerY: CSSDimension<CSSUnit.Percentage> | null\n\treadonly width: WidthLength | null\n\treadonly height: HeightLength | null\n\n\tconstructor(rawData: SVGNodeData, engine: PluginEngine) {\n\t\tsuper(rawData, engine)\n\n\t\tthis.name = rawData.name ?? null\n\t\tthis.visible = rawData.visible ?? true\n\t\tthis.locked = rawData.locked ?? false\n\t\tthis.svg = rawData.svg\n\t\tthis.rotation = rawData.rotation ?? 0\n\t\tthis.opacity = rawData.opacity ?? 1\n\n\t\tthis.position = rawData.position\n\t\tthis.left = rawData.left ?? null\n\t\tthis.right = rawData.right ?? null\n\t\tthis.top = rawData.top ?? null\n\t\tthis.bottom = rawData.bottom ?? null\n\t\tthis.centerX = rawData.centerX ?? null\n\t\tthis.centerY = rawData.centerY ?? null\n\t\tthis.width = rawData.width ?? null\n\t\tthis.height = rawData.height ?? null\n\n\t\tdeepFreeze(this)\n\t}\n}\n\nexport interface EditableVectorSetItemNodeAttributes\n\textends WithNameTrait, WithVisibleTrait, WithLockedTrait, WithPinsTrait, WithSizeTrait {}\n\nexport interface VectorSetItemNodeData\n\textends\n\t\tCommonNodeData,\n\t\tPartial<WithNameTrait>,\n\t\tPartial<WithVisibleTrait>,\n\t\tPartial<WithLockedTrait>,\n\t\tPartial<WithPinsTrait>,\n\t\tPartial<WithSizeTrait> {\n\t[classKey]: \"VectorSetItemNode\"\n}\n\n/**\n * An individual item within a VectorSet node.\n * @category canvas\n */\nexport class VectorSetItemNode extends NodeMethods implements EditableVectorSetItemNodeAttributes {\n\treadonly [classKey]: VectorSetItemNodeData[ClassKey] = \"VectorSetItemNode\"\n\n\treadonly name: string | null\n\treadonly visible: boolean\n\treadonly locked: boolean\n\treadonly top: CSSDimension<CSSUnit.Pixel> | null\n\treadonly right: CSSDimension<CSSUnit.Pixel> | null\n\treadonly bottom: CSSDimension<CSSUnit.Pixel> | null\n\treadonly left: CSSDimension<CSSUnit.Pixel> | null\n\treadonly centerX: CSSDimension<CSSUnit.Percentage> | null\n\treadonly centerY: CSSDimension<CSSUnit.Percentage> | null\n\treadonly width: WidthLength | null\n\treadonly height: HeightLength | null\n\n\treadonly #engine: PluginEngine\n\n\tconstructor(rawData: VectorSetItemNodeData, engine: PluginEngine) {\n\t\tsuper(rawData, engine)\n\t\tthis.#engine = engine\n\n\t\tthis.name = rawData.name ?? null\n\t\tthis.visible = rawData.visible ?? true\n\t\tthis.locked = rawData.locked ?? false\n\t\tthis.top = rawData.top ?? null\n\t\tthis.right = rawData.right ?? null\n\t\tthis.bottom = rawData.bottom ?? null\n\t\tthis.left = rawData.left ?? null\n\t\tthis.centerX = rawData.centerX ?? null\n\t\tthis.centerY = rawData.centerY ?? null\n\t\tthis.width = rawData.width ?? null\n\t\tthis.height = rawData.height ?? null\n\n\t\tdeepFreeze(this)\n\t}\n\n\tasync getSVG(): Promise<string | null> {\n\t\treturn this.#engine.invoke(\"getSVGForNode\", this.id)\n\t}\n}\n\nexport interface EditableComponentInstanceNodeAttributes\n\textends\n\t\tDrawableNode,\n\t\tWithPositionTrait,\n\t\tWithPinsTrait,\n\t\tWithSizeTrait,\n\t\tWithSizeConstraintsTrait,\n\t\tWithAspectRatioTrait,\n\t\tWithControlAttributesTrait,\n\t\tWithRotationTrait {}\n\nexport interface ComponentInstanceNodeData\n\textends\n\t\tCommonNodeData,\n\t\tPartial<DrawableNode>,\n\t\tWithPositionTrait,\n\t\tPartial<WithPinsTrait>,\n\t\tPartial<WithSizeTrait>,\n\t\tPartial<WithSizeConstraintsTrait>,\n\t\tPartial<WithAspectRatioTrait>,\n\t\tPartial<WithControlAttributesTrait>,\n\t\tPartial<WithTypedControlsTrait>,\n\t\tWithRequiredComponentInfoTrait,\n\t\tPartial<WithNullableComponentInfoTrait>,\n\t\tPartial<WithRotationTrait> {\n\t[classKey]: \"ComponentInstanceNode\"\n}\n\n/**\n * An instance of a code or design component on the canvas.\n *\n * Component instances are identified by their\n * {@link ComponentInstanceNode.componentIdentifier | componentIdentifier}\n * and can have their control properties updated via\n * {@link NodeMethods.setAttributes | setAttributes}.\n *\n * @example\n * ```ts\n * if (isCodeComponentNode(selection)) {\n *   selection.setAttributes({\n *     controls: { radius: 10 }\n *   })\n * }\n * ```\n * @category canvas\n */\nexport class ComponentInstanceNode\n\textends NodeMethods\n\timplements EditableComponentInstanceNodeAttributes, WithComponentInfoTrait\n{\n\treadonly [classKey]: ComponentInstanceNodeData[ClassKey] = \"ComponentInstanceNode\"\n\n\treadonly name: string | null\n\treadonly visible: boolean\n\treadonly locked: boolean\n\treadonly componentIdentifier: string\n\treadonly insertURL: string | null\n\treadonly componentName: string | null\n\treadonly controls: ControlAttributes\n\treadonly rotation: number\n\treadonly opacity: number\n\n\treadonly position: Position\n\treadonly top: CSSDimension<CSSUnit.Pixel> | null\n\treadonly right: CSSDimension<CSSUnit.Pixel> | null\n\treadonly bottom: CSSDimension<CSSUnit.Pixel> | null\n\treadonly left: CSSDimension<CSSUnit.Pixel> | null\n\treadonly centerX: CSSDimension<CSSUnit.Percentage> | null\n\treadonly centerY: CSSDimension<CSSUnit.Percentage> | null\n\treadonly width: WidthLength | null\n\treadonly height: HeightLength | null\n\treadonly maxWidth: WidthConstraint | null\n\treadonly minWidth: WidthConstraint | null\n\treadonly maxHeight: HeightConstraint | null\n\treadonly minHeight: HeightConstraint | null\n\treadonly aspectRatio: number | null\n\n\t// We use `#` to make sure the api and data fields can not be observed when a user logs or loops\n\t// over a node instance.\n\treadonly #engine: PluginEngine\n\treadonly #data: ComponentInstanceNodeData\n\n\t#typedControls: Record<string, Control> | undefined\n\n\t/** @alpha */\n\tget typedControls(): Record<string, Control> {\n\t\tif (!this.#typedControls) {\n\t\t\tthis.#typedControls = unmarshal(this.#engine, this.#data.typedControls) ?? {}\n\t\t}\n\n\t\treturn this.#typedControls\n\t}\n\n\tconstructor(rawData: ComponentInstanceNodeData, engine: PluginEngine) {\n\t\tsuper(rawData, engine)\n\n\t\tthis.#engine = engine\n\t\tthis.#data = rawData\n\n\t\tthis.name = rawData.name ?? null\n\t\tthis.visible = rawData.visible ?? true\n\t\tthis.locked = rawData.locked ?? false\n\t\tthis.componentIdentifier = rawData.componentIdentifier\n\t\tthis.componentName = rawData.componentName ?? null\n\t\tthis.insertURL = rawData.insertURL ?? null\n\t\tthis.controls = unmarshal(engine, rawData.controls) ?? {}\n\t\tthis.rotation = rawData.rotation ?? 0\n\t\tthis.opacity = rawData.opacity ?? 1\n\n\t\tthis.position = rawData.position\n\t\tthis.left = rawData.left ?? null\n\t\tthis.right = rawData.right ?? null\n\t\tthis.top = rawData.top ?? null\n\t\tthis.bottom = rawData.bottom ?? null\n\t\tthis.centerX = rawData.centerX ?? null\n\t\tthis.centerY = rawData.centerY ?? null\n\t\tthis.width = rawData.width ?? null\n\t\tthis.height = rawData.height ?? null\n\t\tthis.maxWidth = rawData.maxWidth ?? null\n\t\tthis.minWidth = rawData.minWidth ?? null\n\t\tthis.maxHeight = rawData.maxHeight ?? null\n\t\tthis.minHeight = rawData.minHeight ?? null\n\t\tthis.aspectRatio = rawData.aspectRatio ?? null\n\n\t\tdeepFreeze(this)\n\t}\n\n\t/**\n\t * Get runtime error for this node.\n\t *\n\t * @alpha\n\t */\n\tasync getRuntimeError(): Promise<NodeRuntimeErrorResult | null> {\n\t\treturn this.#engine.invoke(\"getRuntimeErrorForCodeComponentNode\", this.id)\n\t}\n}\n\n// A placeholder, until there's something to edit\nexport type EditableWebPageNodeAttributes = object\n\nexport interface WebPageCloneOptions {\n\tpath?: string\n}\n\nexport interface WebPageNodeData extends CommonNodeData, Partial<WithWebPageInfoTrait> {\n\t[classKey]: \"WebPageNode\"\n}\n\n/**\n * A web page in the project's site map.\n *\n * Web pages have a {@link WebPageNode.path | path} and may be associated\n * with a CMS collection when used as a detail page.\n * @category canvas\n */\nexport class WebPageNode extends NodeMethods implements EditableWebPageNodeAttributes, WithWebPageInfoTrait {\n\treadonly [classKey]: WebPageNodeData[ClassKey] = \"WebPageNode\"\n\n\t#engine: PluginEngine\n\n\t/**\n\t * The relative path to the WebPage\n\t */\n\treadonly path: string | null\n\n\t/**\n\t * The Collection ID of the CMS Collection if the WebPage is a CMS Detail Page\n\t */\n\treadonly collectionId: string | null\n\n\tconstructor(rawData: WebPageNodeData, engine: PluginEngine) {\n\t\tsuper(rawData, engine)\n\n\t\tthis.path = rawData.path ?? null\n\t\tthis.collectionId = rawData.collectionId ?? null\n\n\t\tthis.#engine = engine\n\n\t\tdeepFreeze(this)\n\t}\n\n\t/**\n\t * Clone the WebPageNode into a new one with the same content and settings, as a draft\n\t * If the given path already exists, the cloned page will be created with a unique path.\n\t */\n\toverride async clone(options?: WebPageCloneOptions): Promise<this> {\n\t\treturn this.#engine.cloneWebPage(this.id, options) as Promise<this>\n\t}\n\n\t/**\n\t * Get a list of breakpoints suggestions that can be added to the WebPage.\n\t *\n\t * @alpha\n\t */\n\tgetBreakpointSuggestions(): Promise<readonly Breakpoint[]> {\n\t\treturn this.#engine.invoke(\"getBreakpointSuggestionsForWebPage\", this.id)\n\t}\n\n\t/**\n\t * Adds a new breakpoint to the web page.\n\t * @param breakpoint The breakpoint configuration to add\n\t * @returns a new FrameNode\n\t *\n\t * @alpha\n\t */\n\tasync addBreakpoint(basedOn: NodeId, breakpoint: Breakpoint): Promise<FrameNode> {\n\t\tconst nodeData = await this.#engine.invoke(\"addBreakpointToWebPage\", this.id, basedOn, breakpoint)\n\t\tconst node = convertRawNodeDataToNode(nodeData, this.#engine)\n\n\t\tassert(node instanceof FrameNode)\n\t\tassert(isBreakpoint(node), \"Expected node to be a FrameNode\")\n\n\t\treturn node\n\t}\n\n\t/**\n\t * Get the active collection item for this CMS detail page.\n\t *\n\t * Returns null if this is not a detail page or the collection is empty.\n\t *\n\t * @alpha\n\t */\n\tasync getActiveCollectionItem(): Promise<CollectionItem | null> {\n\t\tconst itemData = await this.#engine.invoke(\"getActiveCollectionItemForWebPage\", this.id)\n\t\tif (!itemData) return null\n\t\treturn new CollectionItem(itemData, this.#engine)\n\t}\n}\n\nexport type EditableComponentNodeAttributes = WithNameTrait\n\nexport interface ComponentNodeData\n\textends\n\t\tCommonNodeData,\n\t\tPartial<WithNameTrait>,\n\t\tWithRequiredComponentInfoTrait,\n\t\tPartial<WithNullableComponentInfoTrait> {\n\t[classKey]: \"ComponentNode\"\n}\n\n/**\n * A reusable design component definition.\n *\n * Component nodes contain variants, gesture states, and variables.\n * They can be inserted as instances via their module URL.\n * @category canvas\n */\nexport class ComponentNode extends NodeMethods implements EditableComponentNodeAttributes, WithComponentInfoTrait {\n\treadonly [classKey]: ComponentNodeData[ClassKey] = \"ComponentNode\"\n\n\treadonly name: string | null\n\treadonly componentIdentifier: string\n\treadonly insertURL: string | null\n\treadonly componentName: string | null\n\n\t// We use `#` to make sure the api and data fields can not be observed when a user logs or loops\n\t// over a node instance.\n\t#engine: PluginEngine\n\n\tconstructor(rawData: ComponentNodeData, engine: PluginEngine) {\n\t\tsuper(rawData, engine)\n\n\t\tthis.#engine = engine\n\n\t\tthis.componentIdentifier = rawData.componentIdentifier\n\t\tthis.insertURL = rawData.insertURL ?? null\n\t\tthis.componentName = rawData.componentName ?? null\n\t\tthis.name = rawData.name ?? null\n\n\t\tdeepFreeze(this)\n\t}\n\n\t/**\n\t * Add a variant to this component.\n\t *\n\t * @param basedOn - The ID of the node to duplicate\n\t * @param attributes - Optional attributes for the variant\n\t *\n\t * Use `\"ComponentNode.addVariant\"` to check if this method is allowed.\n\t *\n\t * @alpha - This method requires using FramerPluginAPIAlpha\n\t */\n\tasync addVariant(basedOn: NodeId, attributes?: Partial<EditableFrameNodeAttributes>): Promise<FrameNode> {\n\t\tconst rawData = await this.#engine.invoke(\"addVariantToComponent\", this.id, basedOn, attributes)\n\t\tif (!rawData) throw new Error(\"Failed to add variant to component\")\n\n\t\tconst node = convertRawNodeDataToNode(rawData, this.#engine)\n\t\tassert(node instanceof FrameNode)\n\t\tassert(isComponentVariant(node), \"Node is not a component variant\")\n\n\t\treturn node\n\t}\n\n\t/**\n\t * Add a state to this component.\n\t *\n\t * @param nodeId - The ID of the node to add the state to\n\t * @param type - The type of state to add\n\t * @param attributes - Optional attributes for the state\n\t *\n\t * Use `\"ComponentNode.addGestureVariant\"` to check if this method is allowed.\n\t *\n\t * @alpha - This method requires using FramerPluginAPIAlpha\n\t */\n\tasync addGestureVariant(\n\t\tnodeId: NodeId,\n\t\ttype: \"hover\" | \"pressed\",\n\t\tattributes?: Partial<EditableFrameNodeAttributes>,\n\t): Promise<FrameNode & IsComponentGestureVariant> {\n\t\tconst rawData = await this.#engine.invoke(\"addGestureVariantToComponent\", this.id, nodeId, type, attributes)\n\t\tif (!rawData) throw new Error(\"Failed to add state to component\")\n\n\t\tconst node = convertRawNodeDataToNode(rawData, this.#engine)\n\t\tassert(node instanceof FrameNode)\n\t\tassert(isComponentGestureVariant(node), \"Node is not a gesture variant\")\n\n\t\treturn node\n\t}\n\n\t/**\n\t * Get the variables that belong to this component.\n\t *\n\t * @alpha\n\t */\n\tasync getVariables(): Promise<ComponentVariable[]> {\n\t\tconst variableDataArray = await this.#engine.invoke(\"getVariables\", this.id)\n\t\treturn unmarshal(this.#engine, variableDataArray)\n\t}\n\n\t/**\n\t * Create new variables. Use `ComponentVariable.setAttributes` to update.\n\t *\n\t * Use `\"ComponentNode.addVariables\"` to check if this method is allowed.\n\t *\n\t * @alpha\n\t */\n\tasync addVariables(variables: CreateVariable[]): Promise<ComponentVariable[]> {\n\t\tconst variableDataArray = await this.#engine.invoke(\"addVariables\", this.id, marshal(variables))\n\t\treturn unmarshal(this.#engine, variableDataArray)\n\t}\n\n\t/**\n\t * Remove variables by their ID.\n\t *\n\t * Use `\"ComponentNode.removeVariables\"` to check if this method is allowed.\n\t *\n\t * @alpha\n\t */\n\tasync removeVariables(variableIds: string[]): Promise<void> {\n\t\tawait this.#engine.invoke(\"removeVariables\", this.id, variableIds)\n\t}\n\n\t/**\n\t * Arrange variables in a specific order.\n\t *\n\t * Use `\"ComponentNode.setVariableOrder\"` to check if this method is allowed.\n\t *\n\t * @alpha\n\t */\n\tasync setVariableOrder(variableIds: string[]): Promise<void> {\n\t\tawait this.#engine.invoke(\"setVariableOrder\", this.id, variableIds)\n\t}\n}\n\nexport type EditableVectorSetNodeAttributes = WithNameTrait\n\nexport interface VectorSetNodeData extends CommonNodeData, Partial<WithNameTrait> {\n\t[classKey]: \"VectorSetNode\"\n}\n\n/**\n * A container node for a set of vector icons.\n * @category canvas\n */\nexport class VectorSetNode extends NodeMethods implements EditableVectorSetNodeAttributes {\n\treadonly [classKey]: VectorSetNodeData[ClassKey] = \"VectorSetNode\"\n\n\treadonly name: string | null\n\n\tconstructor(rawData: VectorSetNodeData, engine: PluginEngine) {\n\t\tsuper(rawData, engine)\n\n\t\tthis.name = rawData.name ?? null\n\n\t\tdeepFreeze(this)\n\t}\n}\n\nexport type EditableDesignPageNodeAttributes = WithNameTrait\n\nexport interface DesignPageCloneOptions {\n\tname?: string\n}\n\nexport interface DesignPageNodeData extends CommonNodeData, Partial<WithNameTrait> {\n\t[classKey]: \"DesignPageNode\"\n}\n\n/**\n * A design page (non-web canvas) in the project.\n * @category canvas\n */\nexport class DesignPageNode extends NodeMethods implements EditableDesignPageNodeAttributes {\n\treadonly [classKey]: DesignPageNodeData[ClassKey] = \"DesignPageNode\"\n\n\treadonly name: string | null\n\n\t#engine: PluginEngine\n\n\tconstructor(rawData: DesignPageNodeData, engine: PluginEngine) {\n\t\tsuper(rawData, engine)\n\n\t\tthis.#engine = engine\n\t\tthis.name = rawData.name ?? null\n\n\t\tdeepFreeze(this)\n\t}\n\n\t/**\n\t * Clone the DesignPageNode into a new one with the same content\n\t * If the given name already exists, the cloned page will be created with a unique name.\n\t */\n\toverride async clone(options?: DesignPageCloneOptions): Promise<this> {\n\t\treturn this.#engine.cloneDesignPage(this.id, options) as Promise<this>\n\t}\n}\n\nexport interface UnknownNodeData extends CommonNodeData {\n\t[classKey]: \"UnknownNode\"\n}\n\n/**\n * A node whose type is not recognized by the current plugin API version.\n * Unknown nodes cannot be cloned, have their attributes set, or return\n * children.\n */\nexport class UnknownNode extends NodeMethods {\n\treadonly [classKey]: UnknownNodeData[ClassKey] = \"UnknownNode\"\n\n\tconstructor(rawData: UnknownNodeData, engine: PluginEngine) {\n\t\tsuper(rawData, engine)\n\n\t\tdeepFreeze(this)\n\t}\n\n\toverride async clone(): Promise<never> {\n\t\tthrow new Error(\"Cannot clone an unknown node\")\n\t}\n}\n\n// Figma uses the term SceneNode instead of CanvasRootNode, should we use the same name?\nexport type CanvasRootNode = WebPageNode | DesignPageNode | ComponentNode | VectorSetNode | UnknownNode\nexport type CanvasNode = FrameNode | TextNode | ComponentInstanceNode | SVGNode | VectorSetItemNode | UnknownNode\n\nexport type SomeNodeData =\n\t| FrameNodeData\n\t| TextNodeData\n\t| ComponentInstanceNodeData\n\t| SVGNodeData\n\t| DesignPageNodeData\n\t| WebPageNodeData\n\t| ComponentNodeData\n\t| VectorSetNodeData\n\t| VectorSetItemNodeData\n\t| UnknownNodeData\n\nexport interface AnyNodeData extends Partial<AllTraits<TraitVariantData>>, WithReplicaInfoTrait {\n\t[classKey]: PluginNodeClass\n}\n\nexport interface AnyEditableAttributes\n\textends\n\t\tEditableFrameNodeAttributes,\n\t\tEditableTextNodeAttributes,\n\t\tEditableSVGNodeAttributes,\n\t\tEditableComponentInstanceNodeAttributes,\n\t\tEditableComponentNodeAttributes,\n\t\tEditableWebPageNodeAttributes,\n\t\tEditableDesignPageNodeAttributes {}\n\nexport type AnyNode = CanvasNode | CanvasRootNode\n\nexport function convertRawNodeDataToNode(rawNodeData: SomeNodeData, engine: PluginEngine): AnyNode {\n\tswitch (rawNodeData[classKey]) {\n\t\tcase \"DesignPageNode\":\n\t\t\treturn new DesignPageNode(rawNodeData, engine)\n\t\tcase \"WebPageNode\":\n\t\t\treturn new WebPageNode(rawNodeData, engine)\n\t\tcase \"ComponentNode\":\n\t\t\treturn new ComponentNode(rawNodeData, engine)\n\t\tcase \"VectorSetNode\":\n\t\t\treturn new VectorSetNode(rawNodeData, engine)\n\t\tcase \"VectorSetItemNode\":\n\t\t\treturn new VectorSetItemNode(rawNodeData, engine)\n\t\tcase \"ComponentInstanceNode\":\n\t\t\treturn new ComponentInstanceNode(rawNodeData, engine)\n\t\tcase \"FrameNode\":\n\t\t\treturn new FrameNode(rawNodeData, engine)\n\t\tcase \"SVGNode\":\n\t\t\treturn new SVGNode(rawNodeData, engine)\n\t\tcase \"TextNode\":\n\t\t\treturn new TextNode(rawNodeData, engine)\n\t\tcase \"UnknownNode\":\n\t\t\treturn new UnknownNode(rawNodeData, engine)\n\t\tdefault:\n\t\t\tshouldBeNever(rawNodeData)\n\t\t\treturn new UnknownNode(rawNodeData, engine)\n\t}\n}\n\nexport function isFrameNode(node: unknown): node is FrameNode {\n\treturn node instanceof FrameNode\n}\n\nexport function isTextNode(node: unknown): node is TextNode {\n\treturn node instanceof TextNode\n}\n\nexport function isSVGNode(node: unknown): node is SVGNode {\n\treturn node instanceof SVGNode\n}\n\nexport function isComponentInstanceNode(node: unknown): node is ComponentInstanceNode {\n\treturn node instanceof ComponentInstanceNode\n}\n\nexport function isWebPageNode(node: unknown): node is WebPageNode {\n\treturn node instanceof WebPageNode\n}\n\nexport function isComponentNode(node: unknown): node is ComponentNode {\n\treturn node instanceof ComponentNode\n}\n\nexport function isDesignPageNode(node: unknown): node is DesignPageNode {\n\treturn node instanceof DesignPageNode\n}\n\nexport function isVectorSetNode(node: unknown): node is VectorSetNode {\n\treturn node instanceof VectorSetNode\n}\n\nexport function isVectorSetItemNode(node: unknown): node is VectorSetItemNode {\n\treturn node instanceof VectorSetItemNode\n}\n\nexport function isUnknownNode(node: unknown): node is UnknownNode {\n\treturn node instanceof UnknownNode\n}\n\nexport function isCanvasNode(node: unknown): node is CanvasNode {\n\tif (isFrameNode(node)) return true\n\tif (isTextNode(node)) return true\n\tif (isComponentInstanceNode(node)) return true\n\tif (isSVGNode(node)) return true\n\tif (isVectorSetItemNode(node)) return true\n\tif (isUnknownNode(node)) return true\n\treturn false\n}\n\nexport function isCanvasRootNode(node: unknown): node is CanvasRootNode {\n\tif (isWebPageNode(node)) return true\n\tif (isDesignPageNode(node)) return true\n\tif (isComponentNode(node)) return true\n\tif (isVectorSetNode(node)) return true\n\tif (isUnknownNode(node)) return true\n\treturn false\n}\n", "import type { ReactComponentDefinition, VerifiedControlDescription } from \"@framerjs/framer-runtime\"\nimport { isNumber, isObject } from \"@framerjs/fresco/src/components/utils/typeCheck\"\nimport { assert, assertNever } from \"@framerjs/shared\"\nimport type { CodeComponentNode } from \"document/models/CanvasTree/index.ts\"\nimport { isColorStyleTokenNode } from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport { isCSSCursor } from \"document/models/CanvasTree/traits/WithCursor.ts\"\nimport { isLink } from \"document/models/CanvasTree/traits/utils/Link.ts\"\nimport { tokenToCSSVariable } from \"document/models/CanvasTree/utils/tokens.ts\"\nimport { borderColorKey, isValidBorderReactCSSProperties } from \"document/models/controlProps/BorderControlPropValue.ts\"\nimport type {\n\tArrayValue,\n\tControlProp,\n\tControlProps,\n\tObjectControlPropValue,\n} from \"document/models/controlProps/ControlProp.ts\"\nimport {\n\tisBorderRadiusControlPropValue,\n\tisLocation,\n\tisPaddingControlPropValue,\n} from \"document/models/controlProps/ControlProp.ts\"\nimport { isRawFontValue } from \"document/models/controlProps/FontControlPropValue.ts\"\nimport { getControlProp } from \"document/models/controlProps/getControlProps.ts\"\nimport type { ControlDescription } from \"library/index.ts\"\nimport { ControlType } from \"library/index.ts\"\nimport type { Mutable } from \"utils/Mutable.ts\"\nimport { safeProperty } from \"utils/names.ts\"\nimport { getVekterLinkFromURL } from \"utils/resolveLink.ts\"\nimport { isArray, isBoolean, isNull, isReadonlyArray, isString, isUndefined } from \"utils/typeChecks.ts\"\nimport { isFileAssetData, isImageAssetData } from \"#framer-plugin/assets.ts\"\nimport { isColorStyleData } from \"#framer-plugin/styles.ts\"\nimport type { ActivePluginContext } from \"./ActivePlugin.ts\"\nimport { isPluginSupportedControlPropType } from \"./supportedControlProps.ts\"\nimport { convertPluginHTMLToCanvasHTML } from \"./utils/convertPluginHTMLToVekterHTML.ts\"\n\nfunction isValidControlAttributeValue(control: VerifiedControlDescription, attributeValue: unknown): boolean {\n\tif (!isPluginSupportedControlPropType(control.type)) return false\n\n\tswitch (control.type) {\n\t\tcase ControlType.Array:\n\t\t\treturn isArray(attributeValue)\n\t\tcase ControlType.Boolean:\n\t\t\treturn isBoolean(attributeValue)\n\t\tcase ControlType.Border:\n\t\t\tif (control.optional && isNull(attributeValue)) return true\n\t\t\treturn isValidBorderReactCSSProperties(attributeValue)\n\t\tcase ControlType.BorderRadius:\n\t\t\treturn isBorderRadiusControlPropValue(attributeValue)\n\t\tcase ControlType.Cursor:\n\t\t\treturn isCSSCursor(attributeValue)\n\t\tcase ControlType.Enum: {\n\t\t\tconst isValidDataType =\n\t\t\t\tisString(attributeValue) || isBoolean(attributeValue) || isNumber(attributeValue) || isNull(attributeValue)\n\n\t\t\treturn isValidDataType && control.options.includes(attributeValue)\n\t\t}\n\t\tcase ControlType.Font:\n\t\t\treturn isRawFontValue(attributeValue)\n\t\tcase ControlType.Padding:\n\t\t\treturn isPaddingControlPropValue(attributeValue)\n\t\tcase ControlType.Number:\n\t\t\treturn isNumber(attributeValue)\n\t\tcase ControlType.Object:\n\t\t\tif (control.optional && isNull(attributeValue)) return true\n\t\t\treturn isObject(attributeValue)\n\t\tcase ControlType.Link: {\n\t\t\treturn isLink(attributeValue) || isNull(attributeValue)\n\t\t}\n\t\tcase ControlType.Color:\n\t\t\tif (control.optional && isNull(attributeValue)) return true\n\t\t\treturn isString(attributeValue)\n\t\tcase ControlType.BoxShadow:\n\t\tcase ControlType.Date:\n\t\tcase ControlType.File:\n\t\tcase ControlType.Image:\n\t\tcase ControlType.ResponsiveImage:\n\t\tcase ControlType.RichText:\n\t\tcase ControlType.String:\n\t\t\treturn isString(attributeValue)\n\t\tcase ControlType.Location:\n\t\t\treturn isLocation(attributeValue)\n\t\tdefault:\n\t\t\tassertNever(control.type)\n\t}\n}\n\nfunction getControlPropFromValue(\n\tcontrol: VerifiedControlDescription,\n\tcurrentControlProp: ControlProp | undefined,\n\trawValue: unknown,\n): ControlProp | null {\n\tif (!isValidControlAttributeValue(control, rawValue)) return null\n\n\tconst nextControlProp = getControlProp(control, undefined, rawValue)\n\tif (!nextControlProp) return null\n\n\t// This ensures that that localized values or other existing properties are not overwritten.\n\treturn { ...currentControlProp, ...nextControlProp }\n}\n\nfunction convertControlAttributeDataToControlProp(\n\tvalue: unknown,\n\tcontrol: VerifiedControlDescription,\n\tcurrentControlProp: ControlProp | undefined,\n\tcontext: ActivePluginContext,\n): ControlProp | null {\n\tswitch (control.type) {\n\t\tcase ControlType.ResponsiveImage:\n\t\tcase ControlType.Image: {\n\t\t\tif (!isImageAssetData(value)) return null\n\n\t\t\tconst controlProp = getControlPropFromValue(\n\t\t\t\tcontrol,\n\t\t\t\tcurrentControlProp,\n\t\t\t\tcontext.assetResolver.getVekterAssetReference(value.id, value.resolution),\n\t\t\t)\n\n\t\t\tassert(controlProp?.type === ControlType.Image, \"Expected control prop to be an image\")\n\n\t\t\tif (!isUndefined(value.altText)) {\n\t\t\t\tcontrolProp.alt = value.altText\n\t\t\t}\n\n\t\t\treturn controlProp\n\t\t}\n\t\tcase ControlType.File: {\n\t\t\tif (!isFileAssetData(value)) return null\n\n\t\t\tconst isValidFileExtension =\n\t\t\t\tcontrol.allowedFileTypes.length === 0 || (value.extension && control.allowedFileTypes.includes(value.extension))\n\n\t\t\tif (!isValidFileExtension) return null\n\n\t\t\treturn getControlPropFromValue(\n\t\t\t\tcontrol,\n\t\t\t\tcurrentControlProp,\n\t\t\t\tcontext.assetResolver.getVekterAssetReference(value.id, undefined),\n\t\t\t)\n\t\t}\n\t\tcase ControlType.Enum: {\n\t\t\tconst titleIndex = (isString(value) && control.optionTitles?.indexOf(value)) || -1\n\t\t\tif (titleIndex === -1) return getControlPropFromValue(control, currentControlProp, value)\n\n\t\t\treturn getControlPropFromValue(control, currentControlProp, control.options[titleIndex])\n\t\t}\n\t\tcase ControlType.Array: {\n\t\t\tif (!isArray(value)) return null\n\n\t\t\tlet currentValues: readonly ArrayValue[] | undefined\n\n\t\t\tif (currentControlProp) {\n\t\t\t\tassert(currentControlProp.type === ControlType.Array)\n\t\t\t\tif (isReadonlyArray(currentControlProp.value)) {\n\t\t\t\t\tcurrentValues = currentControlProp.value\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst values = value.map((item, index) => {\n\t\t\t\tconst currentItemControlProp = currentValues?.[index]\n\n\t\t\t\treturn convertControlAttributeDataToControlProp(item, control.control, currentItemControlProp, context)\n\t\t\t})\n\n\t\t\treturn getControlProp(control, {\n\t\t\t\ttype: control.type,\n\t\t\t\t...currentControlProp,\n\t\t\t\tvalue: values,\n\t\t\t})\n\t\t}\n\t\tcase ControlType.Object: {\n\t\t\tif (control.optional && isNull(value)) {\n\t\t\t\treturn getControlPropFromValue(control, currentControlProp, value)\n\t\t\t}\n\n\t\t\tif (!isObject(value)) return null\n\n\t\t\tlet result: ObjectControlPropValue = {}\n\t\t\tif (currentControlProp) {\n\t\t\t\tassert(currentControlProp.type === ControlType.Object)\n\t\t\t\tresult = currentControlProp.value\n\t\t\t}\n\n\t\t\tfor (const key in value) {\n\t\t\t\tconst nestedControl = control.controls[key]\n\n\t\t\t\tlet currentKeyControlProp: ControlProp | undefined\n\t\t\t\tif (currentControlProp) {\n\t\t\t\t\tassert(currentControlProp.type === ControlType.Object)\n\t\t\t\t\tcurrentKeyControlProp = currentControlProp.value?.[key]\n\t\t\t\t}\n\n\t\t\t\tif (!nestedControl) continue\n\n\t\t\t\tconst updatedControlProp = convertControlAttributeDataToControlProp(\n\t\t\t\t\tvalue[key],\n\t\t\t\t\tnestedControl,\n\t\t\t\t\tcurrentKeyControlProp,\n\t\t\t\t\tcontext,\n\t\t\t\t)\n\n\t\t\t\tif (updatedControlProp) {\n\t\t\t\t\tresult ??= {}\n\t\t\t\t\tresult[key] = updatedControlProp\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn getControlProp(control, { type: control.type, value: result })\n\t\t}\n\t\tcase ControlType.RichText: {\n\t\t\tif (!isString(value)) return null\n\n\t\t\tconst sanitized = convertPluginHTMLToCanvasHTML(context.engine, value, null)\n\t\t\treturn getControlPropFromValue(control, currentControlProp, sanitized)\n\t\t}\n\t\tcase ControlType.Link: {\n\t\t\t// Allow clearing the link when value is null\n\t\t\tif (isNull(value)) return getControlPropFromValue(control, currentControlProp, null)\n\n\t\t\tif (!isString(value)) return null\n\n\t\t\tconst link = getVekterLinkFromURL(context.engine, value, null)\n\t\t\tif (!link) return null\n\n\t\t\treturn getControlPropFromValue(control, currentControlProp, link)\n\t\t}\n\t\tcase ControlType.Color: {\n\t\t\tif (control.optional && isNull(value)) {\n\t\t\t\treturn getControlPropFromValue(control, currentControlProp, value)\n\t\t\t}\n\n\t\t\tif (!isColorStyleData(value) && !isString(value)) return null\n\n\t\t\tif (isColorStyleData(value)) {\n\t\t\t\tconst colorToken = context.engine.tree.get(value.id)\n\t\t\t\tif (!isColorStyleTokenNode(colorToken) || colorToken.softDeleted) return null\n\n\t\t\t\tconst sanitized = tokenToCSSVariable(colorToken)\n\t\t\t\treturn getControlPropFromValue(control, currentControlProp, sanitized)\n\t\t\t}\n\n\t\t\treturn getControlPropFromValue(control, currentControlProp, value)\n\t\t}\n\t\tcase ControlType.Border: {\n\t\t\tif (!isObject(value) || !isColorStyleData(value[borderColorKey])) {\n\t\t\t\treturn getControlPropFromValue(control, currentControlProp, value)\n\t\t\t}\n\n\t\t\tconst colorToken = context.engine.tree.get(value[borderColorKey].id)\n\t\t\tif (!isColorStyleTokenNode(colorToken) || colorToken.softDeleted) {\n\t\t\t\treturn getControlPropFromValue(control, currentControlProp, value)\n\t\t\t}\n\n\t\t\tconst sanitized = { ...value, [borderColorKey]: tokenToCSSVariable(colorToken) }\n\t\t\treturn getControlPropFromValue(control, currentControlProp, sanitized)\n\t\t}\n\t\tdefault:\n\t\t\treturn getControlPropFromValue(control, currentControlProp, value)\n\t}\n}\n\nexport function controlPropsFromControlAttributes(\n\tnode: CodeComponentNode,\n\tcomponentDefinition: ReactComponentDefinition,\n\tcontrolAttributes: Record<string, unknown>,\n\tcontext: ActivePluginContext,\n): ControlProps {\n\tconst result: Mutable<ControlProps> = {}\n\n\t// Contains any keys the user might possibly use from code.\n\tconst controlByAttributeKey = new Map<string, VerifiedControlDescription>()\n\n\t// Get the key we actually use in the data model.\n\tconst controlKeyByControl = new Map<ControlDescription, string>()\n\n\tfor (const key in componentDefinition.properties) {\n\t\tconst control = componentDefinition.properties[key]\n\t\tif (!control) continue\n\t\tcontrolByAttributeKey.set(key, control)\n\t\tcontrolKeyByControl.set(control, key)\n\t}\n\n\tfor (const key in componentDefinition.properties) {\n\t\tconst control = componentDefinition.properties[key]\n\t\tif (!control) continue\n\n\t\tconst title = control.title\n\t\tif (!title) continue\n\n\t\tif (!controlByAttributeKey.has(title)) {\n\t\t\tcontrolByAttributeKey.set(title, control)\n\t\t}\n\n\t\t// Safe property names are used by the generated code of smart components\n\t\tconst safeTitle = safeProperty(control.title)\n\t\tif (!safeTitle) continue\n\t\tif (!controlByAttributeKey.has(safeTitle)) {\n\t\t\tcontrolByAttributeKey.set(safeTitle, control)\n\t\t}\n\t}\n\n\tconst controlProps = node.getControlProps(componentDefinition.properties)\n\n\tfor (const attributeKey in controlAttributes) {\n\t\tconst control = controlByAttributeKey.get(attributeKey)\n\t\tif (!control) continue\n\n\t\tconst controlKey = controlKeyByControl.get(control)\n\t\tif (!controlKey) continue\n\n\t\tconst currentControlProp = controlProps[controlKey]\n\n\t\tconst rawValue = controlAttributes[attributeKey]\n\t\tconst controlProp = convertControlAttributeDataToControlProp(rawValue, control, currentControlProp, context)\n\t\tif (!controlProp) continue\n\n\t\tresult[controlKey] = controlProp\n\t}\n\n\treturn result\n}\n", "import { shouldBeNever } from \"@framerjs/shared\"\nimport { disableStackAndGridLayout } from \"document/components/chrome/properties/panels/utils/stackAndGridLayoutActions.ts\"\nimport { enableGridLayoutForNode } from \"document/components/tools/utils/gridCreateHelper.ts\"\nimport { enableStackLayoutForNode } from \"document/components/tools/utils/stackCreateHelper.ts\"\nimport { updateRichTextNodeLink } from \"document/components/utils/updateRichTextLink.ts\"\nimport type { AnyNodeUpdate, CanvasNode, RichTextNode } from \"document/models/CanvasTree/index.ts\"\nimport type { MaybeCanvasNode } from \"document/models/CanvasTree/nodes/CanvasNode.ts\"\nimport {\n\tisCodeComponentNode,\n\tisColorStyleTokenNode,\n\tisGridComponent,\n\tisRichTextNode,\n\tisStackComponent,\n\tisTextStylePresetNode,\n} from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport { isDynamicValue } from \"document/models/CanvasTree/traits/DynamicValue.ts\"\nimport type { VariableReference } from \"document/models/CanvasTree/traits/VariableReference.ts\"\nimport { withAltText } from \"document/models/CanvasTree/traits/WithAltText.ts\"\nimport { withAspectRatio } from \"document/models/CanvasTree/traits/WithAspectRatio.ts\"\nimport { type BorderValues, type WithBorder, withBorder } from \"document/models/CanvasTree/traits/WithBorder.ts\"\nimport { withFill, withOptionalFill } from \"document/models/CanvasTree/traits/WithFill.ts\"\nimport {\n\tisSupportedGridItemAlignment,\n\twithGridItemLayout,\n} from \"document/models/CanvasTree/traits/WithGridItemLayout.ts\"\nimport { withGridItemSize } from \"document/models/CanvasTree/traits/WithGridItemSize.ts\"\nimport { withImageRendering } from \"document/models/CanvasTree/traits/WithImageRendering.ts\"\nimport {\n\ttype LayoutType,\n\tdefaultStackAlignment,\n\tdefaultStackDirection,\n\tdefaultStackDistribution,\n\thasGridLayout,\n\thasStackLayout,\n\tisGridColumnWidthType,\n\tisGridContentAlignment,\n\tisGridRowHeightType,\n\tisLayoutType,\n\tisStackAlignment,\n\tisStackDirection,\n\tisStackDistribution,\n\twithLayout,\n} from \"document/models/CanvasTree/traits/WithLayout.ts\"\nimport { type WithLinkUpdate, shouldOpenLinkInNewTab, withLink } from \"document/models/CanvasTree/traits/WithLink.ts\"\nimport { withLock } from \"document/models/CanvasTree/traits/WithLock.ts\"\nimport { withName } from \"document/models/CanvasTree/traits/WithName.ts\"\nimport { withOpacity } from \"document/models/CanvasTree/traits/WithOpacity.ts\"\nimport { isOverflowValue, withOverflow } from \"document/models/CanvasTree/traits/WithOverflow.ts\"\nimport { isPinnable } from \"document/models/CanvasTree/traits/WithPins.ts\"\nimport { withPositionType } from \"document/models/CanvasTree/traits/WithPositionType.ts\"\nimport { withRadius, withRelativeRadius } from \"document/models/CanvasTree/traits/WithRadius.ts\"\nimport { withRadiusPerCorner } from \"document/models/CanvasTree/traits/WithRadiusPerCorner.ts\"\nimport { withRotation } from \"document/models/CanvasTree/traits/WithRotation.ts\"\nimport type { WithSizeConstraints } from \"document/models/CanvasTree/traits/WithSizeConstraints.ts\"\nimport { supportsSizeConstraints } from \"document/models/CanvasTree/traits/WithSizeConstraints.ts\"\nimport { withTextTruncation } from \"document/models/CanvasTree/traits/WithTextTruncation.ts\"\nimport { withVisibility } from \"document/models/CanvasTree/traits/WithVisibility.ts\"\nimport { withZIndex } from \"document/models/CanvasTree/traits/WithZIndex.ts\"\nimport type { Link } from \"document/models/CanvasTree/traits/utils/Link.ts\"\nimport { NotFound, isFound } from \"document/models/CanvasTree/traits/utils/Reduced.ts\"\nimport {\n\tcanBePositionAbsolute,\n\tcanBePositionFixed,\n\tcanBePositionSticky,\n} from \"document/models/CanvasTree/traits/utils/positionTypeHelpers.ts\"\nimport { supportsViewportSizing } from \"document/models/CanvasTree/traits/utils/viewportHelpers.ts\"\nimport { tokenToCSSVariable } from \"document/models/CanvasTree/utils/tokens.ts\"\nimport { ConicGradient } from \"document/models/ConicGradientClass.ts\"\nimport type { Gradient } from \"document/models/Gradient.ts\"\nimport { GradientColorStop } from \"document/models/GradientColorStop.ts\"\nimport { LinearGradient } from \"document/models/LinearGradientClass.ts\"\nimport { RadialGradient } from \"document/models/RadialGradientClass.ts\"\nimport { type SupportedLinkRelValue, isSupportedLinkRelValueArray } from \"document/models/SupportedRelValue.ts\"\nimport {\n\tfromBorderReactCSSProperties,\n\tfromNodeBorderValues,\n\tisBorderValues,\n\tisValidBorderReactCSSProperties,\n} from \"document/models/controlProps/BorderControlPropValue.ts\"\nimport { prefixControlProps } from \"document/models/controlProps/controlPropKey.ts\"\nimport { DimensionType } from \"library/render/types/Constraints.ts\"\nimport { roundedNumber } from \"library/render/utils/roundedNumber.ts\"\nimport { objectKeys } from \"library/utils/objectKeys.ts\"\nimport { getVekterLinkFromURL } from \"utils/resolveLink.ts\"\nimport { isArray, isBoolean, isNull, isNumber, isObject, isString, isUndefined } from \"utils/typeChecks.ts\"\nimport { type CSSDimension, CSSUnit as PluginCSSUnit } from \"#framer-plugin/css.ts\"\nimport type { GradientData } from \"#framer-plugin/gradients.ts\"\nimport { isSVGNode } from \"#framer-plugin/nodes.ts\"\nimport { isColorStyleData } from \"#framer-plugin/styles.ts\"\nimport * as pluginTraits from \"#framer-plugin/traits.ts\"\nimport type { ActivePluginContext } from \"./ActivePlugin.ts\"\nimport { getVekterBorderValuesFromPluginBorder } from \"./borders.ts\"\nimport { controlPropsFromControlAttributes } from \"./controlPropsFromControlAttributes.ts\"\nimport { parsePluginCSSDimension, parsePluginCSSDimensions } from \"./css.ts\"\nimport { verifyForPlugin } from \"./pluginErrors.ts\"\n\ntype ReadonlyAttributes = Readonly<Record<string, unknown>>\n\nexport function getVekterNodeDataFromPlugin(\n\tnode: CanvasNode,\n\tattributes: ReadonlyAttributes,\n\tcontext: ActivePluginContext,\n\tparent: MaybeCanvasNode,\n): AnyNodeUpdate {\n\tconst update: AnyNodeUpdate = {}\n\n\tif (!isObject(attributes)) return update\n\n\tcollectPosition(node, attributes, update, context, parent)\n\tcollectPins(node, attributes, update, context)\n\tcollectSize(node, attributes, update, context, parent)\n\tcollectSizeConstraints(node, attributes, update)\n\tcollectAspectRatio(node, attributes, update)\n\tcollectName(node, attributes, update)\n\tcollectVisible(node, attributes, update)\n\tcollectLocked(node, attributes, update)\n\tcollectRotation(node, attributes, update)\n\tcollectBackground(node, attributes, update, context)\n\tcollectRadius(node, attributes, update)\n\tcollectBorder(node, attributes, update, context)\n\tcollectOpacity(node, attributes, update)\n\tcollectOverflow(node, attributes, update)\n\tcollectTextTruncation(node, attributes, update)\n\tcollectZIndex(node, attributes, update)\n\tcollectComponentInstanceControls(node, attributes, update, context)\n\tcollectFont(node, attributes, update, context)\n\tcollectTextStyle(node, attributes, update, context)\n\tcollectLink(node, attributes, update, context)\n\tcollectImageRendering(node, attributes, update)\n\tapplyLayoutAttributes(node, attributes, update, context)\n\tcollectGridItemSize(node, attributes, update, parent)\n\tcollectGridItemLayout(node, attributes, update, parent)\n\n\t// We should make applying updates and collecting a node Update (AnyNodeUpdate) consistent\n\t// See: https://github.com/framer/company/issues/30410\n\tapplyRichTextNodeLink(node, attributes, context)\n\n\treturn update\n}\n\nconst layoutKey = \"layout\" as const satisfies keyof pluginTraits.WithLayoutTrait\nconst gapKey = \"gap\" as const satisfies keyof pluginTraits.WithLayoutTrait\nconst paddingKey = \"padding\" as const satisfies keyof pluginTraits.WithLayoutTrait\n\n// Stack layout keys\nconst stackDirectionKey = \"stackDirection\" as const satisfies keyof pluginTraits.StackLayout\nconst stackDistributionKey = \"stackDistribution\" as const satisfies keyof pluginTraits.StackLayout\nconst stackAlignmentKey = \"stackAlignment\" as const satisfies keyof pluginTraits.StackLayout\nconst stackWrapEnabledKey = \"stackWrapEnabled\" as const satisfies keyof pluginTraits.StackLayout\n\n// Grid layout keys\nconst gridColumnCountKey = \"gridColumnCount\" as const satisfies keyof pluginTraits.WithLayoutTrait\nconst gridRowCountKey = \"gridRowCount\" as const satisfies keyof pluginTraits.WithLayoutTrait\nconst gridAlignmentKey = \"gridAlignment\" as const satisfies keyof pluginTraits.WithLayoutTrait\nconst gridColumnWidthTypeKey = \"gridColumnWidthType\" as const satisfies keyof pluginTraits.WithLayoutTrait\nconst gridColumnWidthKey = \"gridColumnWidth\" as const satisfies keyof pluginTraits.WithLayoutTrait\nconst gridColumnMinWidthKey = \"gridColumnMinWidth\" as const satisfies keyof pluginTraits.WithLayoutTrait\nconst gridRowHeightTypeKey = \"gridRowHeightType\" as const satisfies keyof pluginTraits.WithLayoutTrait\nconst gridRowHeightKey = \"gridRowHeight\" as const satisfies keyof pluginTraits.WithLayoutTrait\n\nfunction collectStackLayout(attributes: ReadonlyAttributes, update: AnyNodeUpdate) {\n\tconst stackDirection = attributes[stackDirectionKey]\n\tconst stackDistribution = attributes[stackDistributionKey]\n\tconst stackAlignment = attributes[stackAlignmentKey]\n\tconst stackWrapEnabled = attributes[stackWrapEnabledKey]\n\n\tif (isNull(stackDirection)) {\n\t\tupdate.stackDirection = defaultStackDirection\n\t} else if (isStackDirection(stackDirection)) {\n\t\tupdate.stackDirection = stackDirection\n\t}\n\n\tif (isNull(stackDistribution)) {\n\t\tupdate.stackDistribution = defaultStackDistribution\n\t} else if (isStackDistribution(stackDistribution)) {\n\t\tupdate.stackDistribution = stackDistribution\n\t}\n\n\tif (isNull(stackAlignment)) {\n\t\tupdate.stackAlignment = defaultStackAlignment\n\t} else if (isStackAlignment(stackAlignment)) {\n\t\tupdate.stackAlignment = stackAlignment\n\t}\n\n\tif (isNull(stackWrapEnabled)) {\n\t\tupdate.stackWrapEnabled = undefined\n\t} else if (isBoolean(stackWrapEnabled)) {\n\t\tupdate.stackWrapEnabled = stackWrapEnabled\n\t}\n}\n\nfunction collectGridLayout(attributes: ReadonlyAttributes, update: AnyNodeUpdate) {\n\tconst gridColumnCount = attributes[gridColumnCountKey]\n\tconst gridRowCount = attributes[gridRowCountKey]\n\tconst gridAlignment = attributes[gridAlignmentKey]\n\tconst gridColumnWidthType = attributes[gridColumnWidthTypeKey]\n\tconst gridColumnWidth = attributes[gridColumnWidthKey]\n\tconst gridColumnMinWidth = attributes[gridColumnMinWidthKey]\n\tconst gridRowHeightType = attributes[gridRowHeightTypeKey]\n\tconst gridRowHeight = attributes[gridRowHeightKey]\n\n\tif (isNull(gridColumnCount)) {\n\t\tupdate.gridColumnCount = undefined\n\t} else if (isNumber(gridColumnCount) || gridColumnCount === \"auto-fill\") {\n\t\tupdate.gridColumnCount = gridColumnCount\n\t}\n\n\tif (isNull(gridRowCount)) {\n\t\tupdate.gridRowCount = undefined\n\t} else if (isNumber(gridRowCount)) {\n\t\tupdate.gridRowCount = gridRowCount\n\t}\n\n\tif (isNull(gridAlignment)) {\n\t\tupdate.gridAlignment = undefined\n\t} else if (isGridContentAlignment(gridAlignment)) {\n\t\tupdate.gridAlignment = gridAlignment\n\t}\n\n\tif (isNull(gridColumnWidthType)) {\n\t\tupdate.gridColumnWidthType = undefined\n\t} else if (isGridColumnWidthType(gridColumnWidthType)) {\n\t\tupdate.gridColumnWidthType = gridColumnWidthType\n\t}\n\n\tif (isNull(gridColumnWidth)) {\n\t\tupdate.gridColumnWidth = undefined\n\t} else if (isNumber(gridColumnWidth)) {\n\t\tupdate.gridColumnWidth = gridColumnWidth\n\t}\n\n\tif (isNull(gridColumnMinWidth)) {\n\t\tupdate.gridColumnMinWidth = undefined\n\t} else if (isNumber(gridColumnMinWidth)) {\n\t\tupdate.gridColumnMinWidth = gridColumnMinWidth\n\t}\n\n\tif (isNull(gridRowHeightType)) {\n\t\tupdate.gridRowHeightType = undefined\n\t} else if (isGridRowHeightType(gridRowHeightType)) {\n\t\tupdate.gridRowHeightType = gridRowHeightType\n\t}\n\n\tif (isNull(gridRowHeight)) {\n\t\tupdate.gridRowHeight = undefined\n\t} else if (isNumber(gridRowHeight)) {\n\t\tupdate.gridRowHeight = gridRowHeight\n\t}\n}\n\n/**\n * Applies layout attributes from plugin data to the node update.\n *\n * This function both collects layout data AND schedules side effects to enable/disable stack and\n * grid layouts. The layout enable/disable operations are deferred using processWhenReady() to\n * ensure they run after the current update cycle completes. This is necessary because:\n * 1. Layout changes can cascade to affect child nodes\n * 2. The layout functions need accurate rect calculations from the current state\n * 3. Modifying layouts during an active render cycle could cause inconsistencies\n */\nfunction applyLayoutAttributes(\n\tnode: CanvasNode,\n\tattributes: ReadonlyAttributes,\n\tupdate: AnyNodeUpdate,\n\tcontext: ActivePluginContext,\n) {\n\tif (!withLayout(node)) return\n\n\t// Collect common layout properties (gap and padding)\n\tconst gap = attributes[gapKey]\n\tif (isNull(gap)) {\n\t\tupdate.gap = undefined\n\t} else if (isString(gap)) {\n\t\tconst values = parsePluginCSSDimensions(gap)\n\t\tif (isNull(values)) {\n\t\t\tupdate.gap = undefined\n\t\t} else if (values.length === 1) {\n\t\t\tconst value = values[0]\n\t\t\tverifyForPlugin(value?.unit === PluginCSSUnit.Pixel, \"Gap must be a pixel value\")\n\t\t\tupdate.gap = `${value.value}${value.unit}`\n\t\t} else if (values.length === 2) {\n\t\t\tconst [gapX, gapY] = values\n\t\t\tverifyForPlugin(gapX?.unit === PluginCSSUnit.Pixel, \"Gap X must be a pixel value\")\n\t\t\tverifyForPlugin(gapY?.unit === PluginCSSUnit.Pixel, \"Gap Y must be a pixel value\")\n\n\t\t\tupdate.gap = `${gapX.value}${gapX.unit} ${gapY.value}${gapY.unit}`\n\t\t}\n\t}\n\n\tconst padding = attributes[paddingKey]\n\tif (isNull(padding)) {\n\t\tupdate.padding = undefined\n\t} else if (isString(padding)) {\n\t\tconst values = parsePluginCSSDimensions(padding)\n\t\tif (isNull(values)) {\n\t\t\tupdate.padding = undefined\n\t\t} else if (values.length === 1) {\n\t\t\tconst value = values[0]\n\t\t\tverifyForPlugin(value, \"Padding value should be defined when parsing single CSS dimension\")\n\t\t\tupdate.padding = value.value\n\t\t\tupdate.paddingPerSide = false\n\t\t} else if (values.length === 4) {\n\t\t\tconst [paddingTop, paddingRight, paddingBottom, paddingLeft] = values\n\t\t\tverifyForPlugin(paddingTop?.unit === PluginCSSUnit.Pixel, \"Padding top must be a pixel value\")\n\t\t\tverifyForPlugin(paddingRight?.unit === PluginCSSUnit.Pixel, \"Padding right must be a pixel value\")\n\t\t\tverifyForPlugin(paddingBottom?.unit === PluginCSSUnit.Pixel, \"Padding bottom must be a pixel value\")\n\t\t\tverifyForPlugin(paddingLeft?.unit === PluginCSSUnit.Pixel, \"Padding left must be a pixel value\")\n\n\t\t\tupdate.paddingPerSide = true\n\t\t\tupdate.paddingTop = paddingTop.value\n\t\t\tupdate.paddingRight = paddingRight.value\n\t\t\tupdate.paddingBottom = paddingBottom.value\n\t\t\tupdate.paddingLeft = paddingLeft.value\n\t\t}\n\t}\n\n\tconst layout = attributes[layoutKey]\n\tif (isUndefined(layout)) {\n\t\t// Attribute not provided: collect for existing layout without toggling layout state\n\t\tif (hasStackLayout(node)) {\n\t\t\tcollectStackLayout(attributes, update)\n\t\t} else if (hasGridLayout(node)) {\n\t\t\tcollectGridLayout(attributes, update)\n\t\t}\n\t} else if (isNull(layout)) {\n\t\t// Explicit null: disable any applied layout\n\t\tupdate.layout = undefined\n\t\tcontext.engine.scheduler.processWhenReady(() => {\n\t\t\tdisableStackAndGridLayout(context.engine, [node.id])\n\t\t})\n\t} else if (isLayoutType(layout)) {\n\t\tswitch (layout) {\n\t\t\tcase \"stack\":\n\t\t\t\tcollectStackLayout(attributes, update)\n\t\t\t\tcontext.engine.scheduler.processWhenReady(() => {\n\t\t\t\t\tenableStackLayoutForNode(context.engine, node)\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase \"grid\":\n\t\t\t\tcollectGridLayout(attributes, update)\n\t\t\t\tcontext.engine.scheduler.processWhenReady(() => {\n\t\t\t\t\tenableGridLayoutForNode(node)\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tshouldBeNever(layout)\n\t\t\t\tbreak\n\t\t}\n\t}\n}\n\nfunction collectGridItemSize(\n\tnode: CanvasNode,\n\tattributes: ReadonlyAttributes,\n\tupdate: AnyNodeUpdate,\n\tparent: MaybeCanvasNode,\n) {\n\tif (!parent || !isGridComponent(parent)) return\n\tif (!withGridItemSize(node)) return\n\n\t// Set defaults if not already defined\n\tif (isUndefined(update.gridItemFillCellWidth) && isUndefined(node.gridItemFillCellWidth)) {\n\t\tupdate.gridItemFillCellWidth = true\n\t}\n\tif (isUndefined(update.gridItemFillCellHeight) && isUndefined(node.gridItemFillCellHeight)) {\n\t\tupdate.gridItemFillCellHeight = true\n\t}\n\n\t// Collect from attributes\n\tif (isBoolean(attributes.gridItemFillCellWidth)) {\n\t\tupdate.gridItemFillCellWidth = attributes.gridItemFillCellWidth\n\t}\n\tif (isBoolean(attributes.gridItemFillCellHeight)) {\n\t\tupdate.gridItemFillCellHeight = attributes.gridItemFillCellHeight\n\t}\n}\n\nfunction collectGridItemLayout(\n\tnode: CanvasNode,\n\tattributes: ReadonlyAttributes,\n\tupdate: AnyNodeUpdate,\n\tparent: MaybeCanvasNode,\n) {\n\tif (!parent || !isGridComponent(parent)) return\n\tif (!withGridItemLayout(node)) return\n\n\t// Set defaults if not already defined\n\tif (isUndefined(attributes.gridItemHorizontalAlignment) && isUndefined(node.gridItemHorizontalAlignment)) {\n\t\tupdate.gridItemHorizontalAlignment = \"center\"\n\t}\n\tif (isUndefined(attributes.gridItemVerticalAlignment) && isUndefined(node.gridItemVerticalAlignment)) {\n\t\tupdate.gridItemVerticalAlignment = \"center\"\n\t}\n\tif (isUndefined(attributes.gridItemColumnSpan) && isUndefined(node.gridItemColumnSpan)) {\n\t\tupdate.gridItemColumnSpan = 1\n\t}\n\tif (isUndefined(attributes.gridItemRowSpan) && isUndefined(node.gridItemRowSpan)) {\n\t\tupdate.gridItemRowSpan = 1\n\t}\n\n\t// Collect from attributes\n\tif (isSupportedGridItemAlignment(attributes.gridItemHorizontalAlignment)) {\n\t\tupdate.gridItemHorizontalAlignment = attributes.gridItemHorizontalAlignment\n\t}\n\tif (isSupportedGridItemAlignment(attributes.gridItemVerticalAlignment)) {\n\t\tupdate.gridItemVerticalAlignment = attributes.gridItemVerticalAlignment\n\t}\n\tif (attributes.gridItemColumnSpan === \"all\" || isNumber(attributes.gridItemColumnSpan)) {\n\t\tupdate.gridItemColumnSpan = attributes.gridItemColumnSpan\n\t}\n\tif (isNumber(attributes.gridItemRowSpan)) {\n\t\tupdate.gridItemRowSpan = attributes.gridItemRowSpan\n\t}\n}\n\nfunction collectPosition(\n\tnode: CanvasNode,\n\tattributes: ReadonlyAttributes,\n\tupdate: AnyNodeUpdate,\n\tcontext: ActivePluginContext,\n\tparent: MaybeCanvasNode,\n) {\n\tif (!pluginTraits.supportsPosition(attributes)) return\n\n\tif (attributes.position === \"fixed\") {\n\t\tif (canBePositionFixed(context.engine.tree, node)) {\n\t\t\tupdate.position = \"fixed\"\n\t\t}\n\t\treturn\n\t}\n\tif (attributes.position === \"absolute\") {\n\t\tif (canBePositionAbsolute(node, parent)) {\n\t\t\tupdate.position = \"absolute\"\n\t\t}\n\t\treturn\n\t}\n\tif (attributes.position === \"relative\") {\n\t\tupdate.position = undefined\n\t\treturn\n\t}\n\tif (attributes.position === \"sticky\") {\n\t\tif (canBePositionSticky(node, parent)) {\n\t\t\tupdate.position = \"sticky\"\n\t\t}\n\t\treturn\n\t}\n\tshouldBeNever(attributes.position)\n}\n\nfunction getPinValue(value: unknown): number | null | NotFound {\n\tif (isUndefined(value)) return NotFound\n\tconst parsedValue = parsePluginCSSDimension(value)\n\tif (isNull(parsedValue)) return null\n\treturn parsedValue.unit === PluginCSSUnit.Pixel ? parsedValue.value : NotFound\n}\n\nconst topKey: keyof pluginTraits.WithPinsTrait = \"top\"\nconst rightKey: keyof pluginTraits.WithPinsTrait = \"right\"\nconst bottomKey: keyof pluginTraits.WithPinsTrait = \"bottom\"\nconst leftKey: keyof pluginTraits.WithPinsTrait = \"left\"\nconst centerXKey: keyof pluginTraits.WithPinsTrait = \"centerX\"\nconst centerYKey: keyof pluginTraits.WithPinsTrait = \"centerY\"\n\nfunction collectPins(\n\tnode: CanvasNode,\n\tattributes: ReadonlyAttributes,\n\tupdate: AnyNodeUpdate,\n\tcontext: ActivePluginContext,\n) {\n\tif (!isPinnable(node)) return\n\n\tconst top = getPinValue(attributes[topKey])\n\tconst right = getPinValue(attributes[rightKey])\n\tconst bottom = getPinValue(attributes[bottomKey])\n\tconst left = getPinValue(attributes[leftKey])\n\n\tconst isSticky =\n\t\twithPositionType(node) && canBePositionSticky(node) && (update.position === \"sticky\" || node.position === \"sticky\")\n\tif (isSticky) {\n\t\tif (isFound(top)) update.positionStickyTop = top ?? undefined\n\t\tif (isFound(right)) update.positionStickyRight = right ?? undefined\n\t\tif (isFound(bottom)) update.positionStickyBottom = bottom ?? undefined\n\t\tif (isFound(left)) update.positionStickyLeft = left ?? undefined\n\t} else if (context.engine.tree.isGroundNode(node)) {\n\t\t// Ground nodes have a X-Y position in the UI which translates to top/left pins.\n\t\t// It is not possible to clear the position\n\t\tif (isFound(top) && !isNull(top)) update.top = top\n\t\tif (isFound(left) && !isNull(left)) update.left = left\n\t} else {\n\t\tif (isFound(top)) update.top = top\n\t\tif (isFound(right)) update.right = right\n\t\tif (isFound(bottom)) update.bottom = bottom\n\t\tif (isFound(left)) update.left = left\n\t}\n\n\tconst parsedCenterX = parsePluginCSSDimension(attributes[centerXKey])\n\tconst parsedCenterY = parsePluginCSSDimension(attributes[centerYKey])\n\n\tif (parsedCenterX && parsedCenterX.unit === PluginCSSUnit.Percentage) {\n\t\tupdate.centerAnchorX = parsedCenterX.value / 100\n\t}\n\n\tif (parsedCenterY && parsedCenterY.unit === PluginCSSUnit.Percentage) {\n\t\tupdate.centerAnchorY = parsedCenterY.value / 100\n\t}\n}\n\nconst widthKey: keyof pluginTraits.WithSizeTrait = \"width\"\nconst heightKey: keyof pluginTraits.WithSizeTrait = \"height\"\n\nfunction getParentLayoutType(parent: MaybeCanvasNode): LayoutType | null {\n\tif (!parent) return null\n\n\tif (isStackComponent(parent)) return \"stack\"\n\tif (isGridComponent(parent)) return \"grid\"\n\n\treturn null\n}\n\nfunction collectSize(\n\tnode: CanvasNode,\n\tattributes: ReadonlyAttributes,\n\tupdate: AnyNodeUpdate,\n\tcontext: ActivePluginContext,\n\tparent: MaybeCanvasNode,\n) {\n\tif (!isPinnable(node)) return\n\n\tconst width = attributes[widthKey]\n\tconst height = attributes[heightKey]\n\tconst parsedWidth = parsePluginCSSDimension(width)\n\tconst parsedHeight = parsePluginCSSDimension(height)\n\n\tconst hasParent = parent !== null || !context.engine.tree.isGroundNode(node)\n\tconst parentLayoutType = getParentLayoutType(parent)\n\tconst isGridItem = parentLayoutType === \"grid\"\n\n\tif (width === \"fit-content\") {\n\t\t// FIXME: check if allowed\n\t\tupdate.widthType = DimensionType.Auto\n\n\t\t// When setting grid items to auto size, disable fill cell width\n\t\tif (isGridItem && withGridItemSize(node)) {\n\t\t\tupdate.gridItemFillCellWidth = false\n\t\t}\n\t} else if (width === \"fit-image\") {\n\t\tupdate.widthType = DimensionType.FitImage\n\t} else if (parsedWidth) {\n\t\tswitch (parsedWidth.unit) {\n\t\t\tcase PluginCSSUnit.Pixel:\n\t\t\t\tupdate.width = parsedWidth.value\n\t\t\t\tupdate.widthType = DimensionType.FixedNumber\n\t\t\t\tbreak\n\t\t\tcase PluginCSSUnit.Percentage:\n\t\t\t\tif (hasParent) {\n\t\t\t\t\tupdate.width = parsedWidth.value / 100\n\t\t\t\t\tupdate.widthType = DimensionType.Percentage\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase PluginCSSUnit.Fraction:\n\t\t\t\tif (parentLayoutType) {\n\t\t\t\t\tupdate.width = parsedWidth.value\n\t\t\t\t\tupdate.widthType = DimensionType.FractionOfFreeSpace\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase PluginCSSUnit.ViewportWidth:\n\t\t\tcase PluginCSSUnit.ViewportHeight:\n\t\t\tcase PluginCSSUnit.Rem:\n\t\t\tcase PluginCSSUnit.Em:\n\t\t\t\t// Ignore unsupported units\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tshouldBeNever(parsedWidth.unit)\n\t\t}\n\t}\n\n\tif (height === \"fit-content\") {\n\t\t// FIXME: check if allowed\n\t\tupdate.heightType = DimensionType.Auto\n\n\t\t// When setting grid items to auto size, disable fill cell height\n\t\tif (isGridItem && withGridItemSize(node)) {\n\t\t\tupdate.gridItemFillCellHeight = false\n\t\t}\n\t} else if (height === \"fit-image\") {\n\t\tupdate.heightType = DimensionType.FitImage\n\t} else if (parsedHeight) {\n\t\tswitch (parsedHeight.unit) {\n\t\t\tcase PluginCSSUnit.Pixel:\n\t\t\t\tupdate.height = parsedHeight.value\n\t\t\t\tupdate.heightType = DimensionType.FixedNumber\n\t\t\t\tbreak\n\t\t\tcase PluginCSSUnit.Percentage:\n\t\t\t\tif (hasParent) {\n\t\t\t\t\tupdate.height = parsedHeight.value / 100\n\t\t\t\t\tupdate.heightType = DimensionType.Percentage\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase PluginCSSUnit.Fraction:\n\t\t\t\tif (parentLayoutType) {\n\t\t\t\t\tupdate.height = parsedHeight.value\n\t\t\t\t\tupdate.heightType = DimensionType.FractionOfFreeSpace\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase PluginCSSUnit.ViewportHeight:\n\t\t\t\tif (supportsViewportSizing(context.engine.tree, node)) {\n\t\t\t\t\tupdate.height = parsedHeight.value / 100\n\t\t\t\t\tupdate.heightType = DimensionType.Viewport\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase PluginCSSUnit.ViewportWidth:\n\t\t\tcase PluginCSSUnit.Rem:\n\t\t\tcase PluginCSSUnit.Em:\n\t\t\t\t// Ignore unsupported units\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tshouldBeNever(parsedHeight.unit)\n\t\t}\n\t}\n}\n\nconst maxWidthKey = \"maxWidth\" as const satisfies keyof WithSizeConstraints\nconst minWidthKey = \"minWidth\" as const satisfies keyof WithSizeConstraints\nconst maxHeightKey = \"maxHeight\" as const satisfies keyof WithSizeConstraints\nconst minHeightKey = \"minHeight\" as const satisfies keyof WithSizeConstraints\n\nfunction collectSizeConstraints(node: CanvasNode, attributes: ReadonlyAttributes, update: AnyNodeUpdate) {\n\tif (!supportsSizeConstraints(node)) return\n\n\tconst maxWidth = attributes[maxWidthKey]\n\tconst minWidth = attributes[minWidthKey]\n\tconst maxHeight = attributes[maxHeightKey]\n\tconst minHeight = attributes[minHeightKey]\n\n\tif (maxWidth === null) {\n\t\tupdate.maxWidth = undefined\n\t} else {\n\t\tconst parsedMaxWidth = parsePluginCSSDimension(maxWidth)\n\t\tif (\n\t\t\tparsedMaxWidth &&\n\t\t\t(parsedMaxWidth.unit === PluginCSSUnit.Pixel || parsedMaxWidth.unit === PluginCSSUnit.Percentage)\n\t\t) {\n\t\t\tupdate.maxWidth = `${parsedMaxWidth.value}${parsedMaxWidth.unit}`\n\t\t}\n\t}\n\n\tif (minWidth === null) {\n\t\tupdate.minWidth = undefined\n\t} else {\n\t\tconst parsedMinWidth = parsePluginCSSDimension(minWidth)\n\t\tif (\n\t\t\tparsedMinWidth &&\n\t\t\t(parsedMinWidth.unit === PluginCSSUnit.Pixel || parsedMinWidth.unit === PluginCSSUnit.Percentage)\n\t\t) {\n\t\t\tupdate.minWidth = `${parsedMinWidth.value}${parsedMinWidth.unit}`\n\t\t}\n\t}\n\n\tif (maxHeight === null) {\n\t\tupdate.maxHeight = undefined\n\t} else {\n\t\tconst parsedMaxHeight = parsePluginCSSDimension(maxHeight)\n\t\tif (\n\t\t\tparsedMaxHeight &&\n\t\t\t(parsedMaxHeight.unit === PluginCSSUnit.Pixel ||\n\t\t\t\tparsedMaxHeight.unit === PluginCSSUnit.Percentage ||\n\t\t\t\tparsedMaxHeight.unit === PluginCSSUnit.ViewportHeight)\n\t\t) {\n\t\t\tupdate.maxHeight = `${parsedMaxHeight.value}${parsedMaxHeight.unit}`\n\t\t}\n\t}\n\n\tif (minHeight === null) {\n\t\tupdate.minHeight = undefined\n\t} else {\n\t\tconst parsedMinHeight = parsePluginCSSDimension(minHeight)\n\t\tif (\n\t\t\tparsedMinHeight &&\n\t\t\t(parsedMinHeight.unit === PluginCSSUnit.Pixel ||\n\t\t\t\tparsedMinHeight.unit === PluginCSSUnit.Percentage ||\n\t\t\t\tparsedMinHeight.unit === PluginCSSUnit.ViewportHeight)\n\t\t) {\n\t\t\tupdate.minHeight = `${parsedMinHeight.value}${parsedMinHeight.unit}`\n\t\t}\n\t}\n}\n\nfunction collectAspectRatio(node: CanvasNode, attributes: ReadonlyAttributes, update: AnyNodeUpdate) {\n\tif (!withAspectRatio(node)) return\n\t// While these nodes have the trait, they don't use the actual aspect ratio value, it only\n\t// impacts the behavior when resizing.\n\tif (isSVGNode(node) || isRichTextNode(node)) return\n\tif (!pluginTraits.supportsAspectRatio(attributes)) return\n\tif (isNumber(attributes.aspectRatio) && attributes.aspectRatio <= 0) return\n\tupdate.aspectRatio = attributes.aspectRatio\n}\n\nfunction collectName(node: CanvasNode, attributes: ReadonlyAttributes, update: AnyNodeUpdate) {\n\tif (!withName(node)) return\n\tif (!pluginTraits.supportsName(attributes)) return\n\tupdate.name = attributes.name\n}\n\nfunction collectVisible(node: CanvasNode, attributes: ReadonlyAttributes, update: AnyNodeUpdate) {\n\tif (!withVisibility(node)) return\n\tif (!pluginTraits.supportsVisible(attributes)) return\n\tupdate.visible = attributes.visible\n}\n\nfunction collectLocked(node: CanvasNode, attributes: ReadonlyAttributes, update: AnyNodeUpdate) {\n\tif (!withLock(node)) return\n\tif (!pluginTraits.supportsLocked(attributes)) return\n\tupdate.locked = attributes.locked\n}\n\nfunction collectRotation(node: CanvasNode, attributes: ReadonlyAttributes, update: AnyNodeUpdate) {\n\tif (!withRotation(node)) return\n\tif (!pluginTraits.supportsRotation(attributes)) return\n\tupdate.rotation = attributes.rotation\n}\n\nfunction collectOpacity(node: CanvasNode, attributes: ReadonlyAttributes, update: AnyNodeUpdate) {\n\tif (!withOpacity(node)) return\n\tif (!pluginTraits.supportsOpacity(attributes)) return\n\tupdate.opacity = roundedNumber(attributes.opacity, 2)\n}\n\nconst overflowKey = \"overflow\" as const satisfies keyof pluginTraits.WithOverflowTrait\nconst overflowXKey = \"overflowX\" as const satisfies keyof pluginTraits.WithOverflowTrait\nconst overflowYKey = \"overflowY\" as const satisfies keyof pluginTraits.WithOverflowTrait\nfunction collectOverflow(node: CanvasNode, attributes: ReadonlyAttributes, update: AnyNodeUpdate) {\n\tif (!withOverflow(node)) return\n\n\tconst overflow = attributes[overflowKey]\n\tif (overflow === null) {\n\t\tupdate.overflow = undefined\n\t} else if (isOverflowValue(overflow)) {\n\t\tupdate.overflow = overflow\n\t}\n\n\tconst overflowX = attributes[overflowXKey]\n\tif (overflowX === null) {\n\t\tupdate.overflowX = undefined\n\t} else if (isOverflowValue(overflowX)) {\n\t\tupdate.overflowX = overflowX\n\t}\n\n\tconst overflowY = attributes[overflowYKey]\n\tif (overflowY === null) {\n\t\tupdate.overflowY = undefined\n\t} else if (isOverflowValue(overflowY)) {\n\t\tupdate.overflowY = overflowY\n\t}\n}\n\nconst textTruncationKey = \"textTruncation\" as const satisfies keyof pluginTraits.WithTextTruncationTrait\nfunction collectTextTruncation(node: CanvasNode, attributes: ReadonlyAttributes, update: AnyNodeUpdate) {\n\tif (!withTextTruncation(node)) return\n\tconst value = attributes[textTruncationKey]\n\tif (value === null) {\n\t\tupdate.textTruncation = undefined\n\t\treturn\n\t}\n\tif (isNumber(value)) {\n\t\tupdate.textTruncation = value\n\t}\n}\n\nconst zIndexKey = \"zIndex\" as const\nfunction collectZIndex(node: CanvasNode, attributes: ReadonlyAttributes, update: AnyNodeUpdate) {\n\tif (!withZIndex(node)) return\n\tconst value = attributes[zIndexKey]\n\tif (value === null) {\n\t\tupdate.zIndex = undefined\n\t\treturn\n\t}\n\tif (isNumber(value)) {\n\t\tupdate.zIndex = value\n\t}\n}\n\nfunction collectComponentInstanceControls(\n\tnode: CanvasNode,\n\tattributes: ReadonlyAttributes,\n\tupdate: AnyNodeUpdate,\n\tcontext: ActivePluginContext,\n) {\n\tif (!isCodeComponentNode(node)) return\n\tconst controlsKey: keyof pluginTraits.WithControlAttributesTrait = \"controls\"\n\tconst controls = attributes[controlsKey]\n\tif (!isObject(controls)) return\n\n\tconst componentDefinition = context.engine.componentLoader.reactComponentForIdentifier(node.codeComponentIdentifier)\n\tif (!componentDefinition) return\n\n\tconst controlProps = controlPropsFromControlAttributes(node, componentDefinition, controls, context)\n\tconst prefixedControlProps = prefixControlProps(controlProps)\n\tObject.assign(update, prefixedControlProps)\n}\n\nfunction gradientStopsFromGradientDataStops(stops: GradientData[\"stops\"]): GradientColorStop[] | null {\n\tif (!isArray(stops) || stops.length < 2) return null\n\treturn stops.map(stop => {\n\t\treturn new GradientColorStop({\n\t\t\tposition: isNumber(stop.position) ? stop.position : 0,\n\t\t\tvalue: isString(stop.color) ? stop.color : \"#000000\",\n\t\t})\n\t})\n}\n\nfunction percentageToFraction(percentage: CSSDimension<PluginCSSUnit.Percentage>): number {\n\tconst value = Number.parseFloat(percentage)\n\tif (!isNumber(value)) return 0\n\treturn roundedNumber(value / 100, 3)\n}\n\nfunction gradientFromGradientData(gradientData: GradientData): Gradient | null {\n\tconst stops = gradientStopsFromGradientDataStops(gradientData.stops)\n\tif (!stops) return null\n\n\tswitch (gradientData.__class) {\n\t\tcase \"LinearGradient\":\n\t\t\treturn new LinearGradient({\n\t\t\t\tangle: isNumber(gradientData.angle) ? gradientData.angle : 0,\n\t\t\t\tstops,\n\t\t\t})\n\t\tcase \"RadialGradient\":\n\t\t\treturn new RadialGradient({\n\t\t\t\twidthFactor: percentageToFraction(gradientData.width),\n\t\t\t\theightFactor: percentageToFraction(gradientData.height),\n\t\t\t\tcenterAnchorX: percentageToFraction(gradientData.x),\n\t\t\t\tcenterAnchorY: percentageToFraction(gradientData.y),\n\t\t\t\tstops,\n\t\t\t})\n\t\tcase \"ConicGradient\":\n\t\t\treturn new ConicGradient({\n\t\t\t\tcenterAnchorX: percentageToFraction(gradientData.x),\n\t\t\t\tcenterAnchorY: percentageToFraction(gradientData.y),\n\t\t\t\tangle: isNumber(gradientData.angle) ? gradientData.angle : 0,\n\t\t\t\tstops,\n\t\t\t})\n\t\tdefault:\n\t\t\tshouldBeNever(gradientData)\n\t\t\treturn null\n\t}\n}\n\nfunction collectBackground(\n\tnode: CanvasNode,\n\tattributes: ReadonlyAttributes,\n\tupdate: AnyNodeUpdate,\n\tcontext: ActivePluginContext,\n) {\n\tif (!withFill(node)) return\n\n\tif (withOptionalFill(node)) {\n\t\tif (pluginTraits.supportsBackgroundColorData(attributes) && !attributes.backgroundColor) {\n\t\t\tupdate.fillEnabled = false\n\t\t}\n\t\tif (pluginTraits.supportsBackgroundImageData(attributes) && !attributes.backgroundImage) {\n\t\t\tupdate.fillEnabled = false\n\t\t}\n\n\t\tif (pluginTraits.supportsBackgroundGradient(attributes) && !attributes.backgroundGradient) {\n\t\t\tupdate.fillEnabled = false\n\t\t}\n\t}\n\n\tif (pluginTraits.supportsBackgroundColorData(attributes) && attributes.backgroundColor) {\n\t\tif (withOptionalFill(node)) {\n\t\t\tupdate.fillEnabled = true\n\t\t}\n\n\t\tupdate.fillType = \"color\"\n\n\t\tif (isString(attributes.backgroundColor)) {\n\t\t\tupdate.fillColor = attributes.backgroundColor\n\t\t}\n\n\t\tif (isColorStyleData(attributes.backgroundColor)) {\n\t\t\tconst token = context.engine.tree.getNode(attributes.backgroundColor.id)\n\t\t\tif (!isColorStyleTokenNode(token)) return\n\n\t\t\tupdate.fillColor = tokenToCSSVariable(token)\n\t\t}\n\n\t\treturn\n\t}\n\n\tif (pluginTraits.supportsBackgroundImageData(attributes) && attributes.backgroundImage) {\n\t\tif (withOptionalFill(node)) {\n\t\t\tupdate.fillEnabled = true\n\t\t}\n\n\t\tupdate.fillType = \"image\"\n\t\tupdate.fillImage = context.assetResolver.getVekterAssetReference(\n\t\t\tattributes.backgroundImage.id,\n\t\t\tattributes.backgroundImage.resolution,\n\t\t)\n\n\t\tif (!isUndefined(attributes.backgroundImage.altText) && withAltText(node)) {\n\t\t\tupdate.altAttribute = attributes.backgroundImage.altText ?? undefined\n\t\t}\n\n\t\treturn\n\t}\n\n\tif (pluginTraits.supportsBackgroundGradientData(attributes) && attributes.backgroundGradient) {\n\t\tconst gradient = gradientFromGradientData(attributes.backgroundGradient)\n\t\tif (!gradient) return\n\n\t\tif (withOptionalFill(node)) {\n\t\t\tupdate.fillEnabled = true\n\t\t}\n\n\t\tif (node.fillLinearGradient) {\n\t\t\tupdate.fillLinearGradient = node.fillLinearGradient.updated({ stops: gradient.stops })\n\t\t} else {\n\t\t\tupdate.fillLinearGradient = new LinearGradient({ stops: gradient.stops })\n\t\t}\n\n\t\tif (node.fillRadialGradient) {\n\t\t\tupdate.fillRadialGradient = node.fillRadialGradient.updated({ stops: gradient.stops })\n\t\t} else {\n\t\t\tupdate.fillRadialGradient = new RadialGradient({ stops: gradient.stops })\n\t\t}\n\n\t\tif (node.fillConicGradient) {\n\t\t\tupdate.fillConicGradient = node.fillConicGradient.updated({ stops: gradient.stops })\n\t\t} else {\n\t\t\tupdate.fillConicGradient = new ConicGradient({ stops: gradient.stops })\n\t\t}\n\n\t\tif (gradient instanceof LinearGradient) {\n\t\t\tupdate.fillType = \"linear-gradient\"\n\t\t\tupdate.fillLinearGradient = gradient\n\t\t\treturn\n\t\t}\n\n\t\tif (gradient instanceof RadialGradient) {\n\t\t\tupdate.fillType = \"radial-gradient\"\n\t\t\tupdate.fillRadialGradient = gradient\n\t\t\treturn\n\t\t}\n\n\t\tif (gradient instanceof ConicGradient) {\n\t\t\tupdate.fillType = \"conic-gradient\"\n\t\t\tupdate.fillConicGradient = gradient\n\t\t\treturn\n\t\t}\n\n\t\tshouldBeNever(gradient)\n\t\treturn\n\t}\n}\n\nfunction collectRadius(node: CanvasNode, attributes: ReadonlyAttributes, update: AnyNodeUpdate) {\n\tif (!withRadius(node)) return\n\tif (!pluginTraits.supportsBorderRadius(attributes)) return\n\n\tif (attributes.borderRadius === null) {\n\t\tupdate.radius = undefined\n\n\t\tif (withRadiusPerCorner(node)) {\n\t\t\tupdate.radiusPerCorner = false\n\t\t}\n\n\t\treturn\n\t}\n\n\tconst dimensions = parsePluginCSSDimensions(attributes.borderRadius)\n\tif (!dimensions || dimensions.length === 0) return\n\n\tif (dimensions.length === 1) {\n\t\tconst [radius] = dimensions\n\t\tif (radius?.unit !== PluginCSSUnit.Pixel && radius?.unit !== PluginCSSUnit.Percentage) return\n\n\t\tconst radiusIsRelative = radius.unit === PluginCSSUnit.Percentage\n\t\tif (radiusIsRelative && !withRelativeRadius(node)) return\n\n\t\tupdate.radius = radius.value\n\t\tupdate.radiusPerCorner = false\n\t\tupdate.radiusIsRelative = radiusIsRelative\n\t} else if (dimensions.length === 4) {\n\t\tif (!withRadiusPerCorner(node)) return\n\n\t\tconst [topLeft, topRight, bottomRight, bottomLeft] = dimensions\n\t\tif (!topLeft || !topRight || !bottomRight || !bottomLeft) return\n\n\t\tconst allPixels = dimensions.every(d => d.unit === PluginCSSUnit.Pixel)\n\t\tif (!allPixels) return\n\n\t\tupdate.radiusPerCorner = true\n\t\tupdate.radiusIsRelative = false\n\t\tupdate.radiusTopLeft = topLeft.value\n\t\tupdate.radiusTopRight = topRight.value\n\t\tupdate.radiusBottomRight = bottomRight.value\n\t\tupdate.radiusBottomLeft = bottomLeft.value\n\t}\n}\n\nfunction getResolvedBorderValues(node: CanvasNode & WithBorder): BorderValues {\n\tif (isDynamicValue(node.borderEnabled)) {\n\t\tconst resolvedValue = node.resolveValue(\"borderEnabled\") as unknown\n\t\tif (isBorderValues(resolvedValue)) {\n\t\t\treturn resolvedValue\n\t\t} else if (isValidBorderReactCSSProperties(resolvedValue)) {\n\t\t\treturn fromBorderReactCSSProperties(resolvedValue)\n\t\t}\n\t}\n\n\treturn fromNodeBorderValues(node)\n}\n\nfunction collectBorder(\n\tnode: CanvasNode,\n\tattributes: ReadonlyAttributes,\n\tupdate: AnyNodeUpdate,\n\tcontext: ActivePluginContext,\n) {\n\tif (!withBorder(node)) return\n\n\tconst { border } = attributes\n\n\tif (border === null) {\n\t\tupdate.borderEnabled = false\n\t\treturn\n\t}\n\n\tconst newBorderValues = getVekterBorderValuesFromPluginBorder(context.engine, border)\n\tif (!newBorderValues) return\n\n\t// Object.assign is pretty any-happy by default\n\tObject.assign<AnyNodeUpdate, BorderValues, Partial<BorderValues>>(\n\t\tupdate,\n\t\tgetResolvedBorderValues(node),\n\t\tnewBorderValues,\n\t)\n\n\tupdate.borderEnabled = true\n}\n\nfunction collectFont(\n\tnode: CanvasNode,\n\tattributes: ReadonlyAttributes,\n\t_update: AnyNodeUpdate,\n\tcontext: ActivePluginContext,\n) {\n\tif (!isRichTextNode(node)) return\n\tif (!pluginTraits.supportsFontData(attributes)) return\n\n\tif (attributes.font) {\n\t\tconst font = context.fontStore.getFontBySelector(attributes.font.selector)\n\t\tif (!font) return\n\n\t\tnode.setFont(attributes.font.selector, false)\n\t}\n}\n\nfunction collectTextStyle(\n\tnode: CanvasNode,\n\tattributes: ReadonlyAttributes,\n\t_update: AnyNodeUpdate,\n\tcontext: ActivePluginContext,\n) {\n\tif (!isRichTextNode(node)) return\n\tif (!pluginTraits.supportsInlineTextStyleData(attributes)) return\n\n\tif (attributes.inlineTextStyle) {\n\t\tconst preset = context.engine.tree.getNode(attributes.inlineTextStyle.id)\n\t\tif (!isTextStylePresetNode(preset)) return\n\n\t\tnode.setTextStylePreset(preset, false)\n\t}\n\n\tif (attributes.inlineTextStyle === null) {\n\t\tconst presetIds = node.getTextStylePresets(false)\n\t\tif (presetIds.length !== 1) return\n\n\t\tconst [presetId] = presetIds\n\t\tif (!presetId) return\n\n\t\tnode.removeTextStylePreset(presetId, false)\n\t}\n}\n\nfunction getRichTextNodeLink(node: RichTextNode): Link | VariableReference | undefined {\n\tconst links = node.getLinks(false)\n\tif (links.length > 1) return undefined\n\n\treturn links[0]\n}\n\nfunction getRichTextNodeOpenInNewTab(node: RichTextNode): boolean | VariableReference | undefined {\n\tconst openInNewTabs = node.getLinkOpenInNewTabs(false)\n\tif (openInNewTabs.length > 1) return undefined\n\n\treturn openInNewTabs[0]\n}\n\nfunction getRichTextNodeSmoothScroll(node: RichTextNode): boolean | VariableReference | undefined {\n\tconst smoothScroll = node.getLinkSmoothScroll(false)\n\tif (smoothScroll.length > 1) return undefined\n\n\treturn smoothScroll[0]\n}\n\nfunction getRichTextNodeClickTrackingId(node: RichTextNode): string | VariableReference | undefined {\n\tconst clickTrackingId = node.getLinkClickTrackingId(false)\n\tif (clickTrackingId.length > 1) return undefined\n\n\treturn clickTrackingId[0]\n}\n\nfunction getRichTextNodeRelValues(\n\tnode: RichTextNode,\n): readonly SupportedLinkRelValue[] | VariableReference | undefined {\n\tconst relValues = node.getLinkRelValues(false)\n\tif (relValues.length > 1) return undefined\n\n\treturn relValues[0]\n}\n\nfunction getRichTextNodePreserveParams(node: RichTextNode): boolean | VariableReference | undefined {\n\tconst preserveParams = node.getLinkPreserveParams(false)\n\tif (preserveParams.length > 1) return undefined\n\n\treturn preserveParams[0]\n}\n\nfunction collectLink(\n\tnode: CanvasNode,\n\tattributes: ReadonlyAttributes,\n\tupdate: AnyNodeUpdate,\n\tcontext: ActivePluginContext,\n) {\n\tif (!withLink(node)) return\n\n\tif (!pluginTraits.supportsLink(attributes)) return\n\tif (isUndefined(attributes.link)) return\n\n\tif (isNull(attributes.link)) {\n\t\tupdate.link = undefined\n\t} else if (isString(attributes.link)) {\n\t\tconst resolvedLink = getVekterLinkFromURL(context.engine, attributes.link, node)\n\t\tif (resolvedLink) {\n\t\t\tupdate.link = resolvedLink\n\t\t}\n\t}\n\n\tif (isNull(attributes.linkOpenInNewTab)) {\n\t\tupdate.linkOpenInNewTab = undefined\n\t} else if (isBoolean(attributes.linkOpenInNewTab)) {\n\t\tupdate.linkOpenInNewTab = attributes.linkOpenInNewTab\n\t} else if (update.link && isUndefined(node.linkOpenInNewTab)) {\n\t\tupdate.linkOpenInNewTab = shouldOpenLinkInNewTab(update.link)\n\t}\n\n\tif (isNull(attributes.linkSmoothScroll)) {\n\t\tupdate.linkSmoothScroll = undefined\n\t} else if (isBoolean(attributes.linkSmoothScroll)) {\n\t\tupdate.linkSmoothScroll = attributes.linkSmoothScroll\n\t}\n\n\tif (isNull(attributes.linkClickTrackingId)) {\n\t\tupdate.linkClickTrackingId = undefined\n\t} else if (isString(attributes.linkClickTrackingId)) {\n\t\tupdate.linkClickTrackingId = attributes.linkClickTrackingId\n\t}\n\n\tif (isNull(attributes.linkRelValues)) {\n\t\tupdate.linkRelValues = undefined\n\t} else if (isSupportedLinkRelValueArray(attributes.linkRelValues)) {\n\t\tupdate.linkRelValues = attributes.linkRelValues\n\t}\n\n\tif (isNull(attributes.linkPreserveParams)) {\n\t\tupdate.linkPreserveParams = undefined\n\t} else if (isBoolean(attributes.linkPreserveParams)) {\n\t\tupdate.linkPreserveParams = attributes.linkPreserveParams\n\t}\n}\n\nfunction applyRichTextNodeLink(node: CanvasNode, attributes: ReadonlyAttributes, context: ActivePluginContext) {\n\tif (!isRichTextNode(node)) return\n\n\tif (isNull(attributes.link)) {\n\t\tupdateRichTextNodeLink(context.engine, node, undefined, {})\n\t\treturn\n\t}\n\n\tconst link = isString(attributes.link)\n\t\t? getVekterLinkFromURL(context.engine, attributes.link, node)\n\t\t: getRichTextNodeLink(node)\n\n\t// We cannot update link attributes on Rich Text Nodes without a link\n\t// because its based on HTML.\n\tif (!link) return\n\n\t// TODO: support unsetting individual link attributes in rich text with null\n\tconst update: WithLinkUpdate = {\n\t\tlinkOpenInNewTab: isBoolean(attributes.linkOpenInNewTab)\n\t\t\t? attributes.linkOpenInNewTab\n\t\t\t: getRichTextNodeOpenInNewTab(node),\n\t\tlinkSmoothScroll: isBoolean(attributes.linkSmoothScroll)\n\t\t\t? attributes.linkSmoothScroll\n\t\t\t: getRichTextNodeSmoothScroll(node),\n\t\tlinkClickTrackingId: isString(attributes.linkClickTrackingId)\n\t\t\t? attributes.linkClickTrackingId\n\t\t\t: getRichTextNodeClickTrackingId(node),\n\t\tlinkRelValues: isSupportedLinkRelValueArray(attributes.linkRelValues)\n\t\t\t? attributes.linkRelValues\n\t\t\t: getRichTextNodeRelValues(node),\n\t\tlinkPreserveParams: isBoolean(attributes.linkPreserveParams)\n\t\t\t? attributes.linkPreserveParams\n\t\t\t: getRichTextNodePreserveParams(node),\n\t}\n\n\tupdateRichTextNodeLink(context.engine, node, link, update)\n}\n\nfunction collectImageRendering(node: CanvasNode, attributes: ReadonlyAttributes, update: AnyNodeUpdate) {\n\tif (!withImageRendering(node)) return\n\tif (!pluginTraits.supportsImageRendering(attributes)) return\n\n\tif (attributes.imageRendering === null) {\n\t\tupdate.imageRendering = undefined\n\t} else {\n\t\tupdate.imageRendering = attributes.imageRendering\n\t}\n}\n\n/**\n * Used for narrowing AnyNodeUpdate to an update that only contains keys that are supported by the given node.\n */\nexport function narrowNodeUpdate<T extends CanvasNode>(node: T, update: AnyNodeUpdate): Partial<T> {\n\tconst narrowedUpdate = { ...update }\n\n\tdelete narrowedUpdate.id\n\n\tfor (const key of objectKeys(narrowedUpdate)) {\n\t\tif (key in node) continue\n\t\tdelete narrowedUpdate[key]\n\t}\n\n\treturn narrowedUpdate as Partial<T>\n}\n", "import { assert } from \"@framerjs/shared\"\nimport { Dictionary } from \"app/dictionary.ts\"\nimport type { CanvasNode, CodeComponentNode } from \"document/models/CanvasTree/index.ts\"\nimport { type WithAltText as WithAltTextTrait, withAltText } from \"document/models/CanvasTree/traits/WithAltText.ts\"\nimport {\n\ttype WithImageRendering as WithImageRenderingTrait,\n\twithImageRendering,\n} from \"document/models/CanvasTree/traits/WithImageRendering.ts\"\nimport type { ControlProps, ImageControlProp } from \"document/models/controlProps/ControlProp.ts\"\nimport { prefixControlProps } from \"document/models/controlProps/controlPropKey.ts\"\nimport { createAssetReferenceForUploadImageResult } from \"document/utils/createAssetReferenceFromImageUpload.ts\"\nimport { ControlType } from \"library/index.ts\"\nimport type { Mutable } from \"utils/Mutable.ts\"\nimport { isUndefined } from \"utils/typeChecks.ts\"\nimport type { BatchAssetUploader } from \"web/lib/BatchAssetUploader.ts\"\nimport type { ImageUploadResult } from \"web/pages/project/lib/UploadService.ts\"\nimport type { ImageOptions, NamedImageTransfer } from \"#framer-plugin/assets.ts\"\nimport type { ActivePluginContext } from \"./ActivePlugin.ts\"\n\nexport function createFileFromBytesData(image: Extract<NamedImageTransfer, { type: \"bytes\" }>): File {\n\tconst buffer = new Uint8Array(image.bytes)\n\tconst blob = new Blob([buffer], { type: image.mimeType })\n\tconst file = new File([blob], image.name ?? Dictionary.Unknown, { type: image.mimeType })\n\n\treturn file\n}\n\nexport async function uploadImageFromDataTransfer(\n\tassetUploader: BatchAssetUploader,\n\timage: NamedImageTransfer,\n): Promise<ImageUploadResult> {\n\tconst file = image.type === \"bytes\" ? createFileFromBytesData(image) : image.url\n\n\tconst imageResult = await assetUploader.add(file)\n\tassert(imageResult.type === \"image\", \"Expected an image result\")\n\n\treturn imageResult\n}\n\ninterface SingleImageControlProp {\n\tkey: string\n\tcontrolProp: ImageControlProp\n}\n\nfunction getSingleImageControlPropAndKey(controlProps: ControlProps): SingleImageControlProp | null {\n\tlet imageControl: SingleImageControlProp | null = null\n\tfor (const key in controlProps) {\n\t\tconst controlProp = controlProps[key]\n\t\tassert(controlProp)\n\n\t\tif (controlProp.type === ControlType.Image) {\n\t\t\t// More than 1 image control - skip\n\t\t\tif (imageControl) return null\n\n\t\t\timageControl = { key, controlProp }\n\t\t}\n\t}\n\n\treturn imageControl\n}\n\n/**\n * Applies an image to a code component node if that component has a single Image Control.\n */\nexport async function applyImageToCodeComponentNode(\n\tassetUploader: BatchAssetUploader,\n\tnode: CodeComponentNode,\n\timage: NamedImageTransfer,\n\tcontext: ActivePluginContext,\n) {\n\tconst component = context.engine.componentLoader.reactComponentForIdentifier(node.codeComponentIdentifier)\n\tif (!component) return {}\n\n\tconst controlProps = node.getControlProps(component.properties)\n\n\tconst imageControl = getSingleImageControlPropAndKey(controlProps)\n\tif (!imageControl) return\n\n\tconst uploadedImage = await uploadImageFromDataTransfer(assetUploader, image)\n\tconst assetReference = createAssetReferenceForUploadImageResult(uploadedImage)\n\n\tconst nextControl: ImageControlProp = {\n\t\t...imageControl.controlProp,\n\t\tvalue: assetReference,\n\t}\n\n\tif (!isUndefined(image.altText)) {\n\t\tnextControl.alt = image.altText\n\t}\n\n\tconst update = prefixControlProps({\n\t\t[imageControl.key]: nextControl,\n\t})\n\n\tawait context.engine.scheduler.processWhenReadyAsync(() => {\n\t\tnode.set(update)\n\t})\n}\n\nexport function applyImageOptionsToNode(node: CanvasNode, options: ImageOptions) {\n\tif (!withAltText(node) || !withImageRendering(node)) return\n\n\tconst attributes: Mutable<Partial<WithAltTextTrait & WithImageRenderingTrait>> = {}\n\n\tif (!isUndefined(options.altText)) {\n\t\tattributes.altAttribute = options.altText\n\t}\n\n\tif (!isUndefined(options.preferredImageRendering)) {\n\t\tattributes.imageRendering = options.preferredImageRendering\n\t}\n\n\tnode.set(attributes)\n}\n", "import { assert, assertNever } from \"@framerjs/shared\"\nimport { experiments } from \"app/experiments.ts\"\nimport type { EngineStores } from \"document/EngineStores.ts\"\nimport type { VekterEngine } from \"document/VekterEngine.ts\"\nimport type { WrapInsertionInfo } from \"document/components/tools/utils/stackInsertionHelpers.ts\"\nimport {\n\tgetStackOrGridInRange,\n\tgetStackOrGridInsertionIndexAndLine,\n} from \"document/components/tools/utils/stackInsertionHelpers.ts\"\nimport { getInsertionParent } from \"document/components/utils/insertComponent.ts\"\nimport type { CanvasNode, NodeID } from \"document/models/CanvasTree/index.ts\"\nimport { CodeComponentNode, FrameNode, SVGNode, isCanvasScopeNode } from \"document/models/CanvasTree/index.ts\"\nimport type { CanvasScopeNode } from \"document/models/CanvasTree/nodes/CanvasScopeNode.ts\"\nimport { generateReplicaChildId } from \"document/models/CanvasTree/nodes/TemplateHelper.ts\"\nimport { getVariantForNode } from \"document/models/CanvasTree/nodes/utils/breakpointHelpers.ts\"\nimport {\n\tisSmartComponentNode,\n\tisStackComponent,\n\tisWebPageNode,\n} from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport { getNumericColumnGapFromShorthand } from \"document/models/CanvasTree/traits/NumberShorthand.ts\"\nimport type { ImageRenderingValue } from \"document/models/CanvasTree/traits/WithImageRendering.ts\"\nimport { isReplica, isReplicaOrReplicaChild } from \"document/models/CanvasTree/traits/WithTemplate.ts\"\nimport { convertFrameToCanvas } from \"document/models/CanvasTree/utils/geometry.ts\"\nimport { getNodesInRect } from \"document/models/CanvasTree/utils/hitTesting.ts\"\nimport { paddingFromNode } from \"document/utils/StackComponent/paddingFromNode.ts\"\nimport { DimensionType } from \"library/render/types/Constraints.ts\"\nimport type { Line } from \"library/render/types/Line.ts\"\nimport type { Point } from \"library/render/types/Point.ts\"\nimport { Rect } from \"library/render/types/Rect.ts\"\nimport type { Size } from \"library/render/types/Size.ts\"\nimport { getId } from \"utils/getId.ts\"\n\nfunction getLastVisibleChildForInsertionIndex(parent: CanvasNode, insertionIndex: number): CanvasNode | null {\n\tconst children = parent.children\n\tif (!children) return null\n\n\tconst index = insertionIndex < 0 ? children.length - 1 : insertionIndex - 1\n\n\tfor (let i = index; i >= 0; i--) {\n\t\tconst child = children.at(i)\n\t\tif (!child) continue\n\t\tif (!child.cache.visible) continue\n\t\treturn child\n\t}\n\treturn null\n}\n\nfunction getInsertionRect(engine: VekterEngine, parent: FrameNode, insertionIndex: number, size: Size): Rect {\n\tconst parentRect = convertFrameToCanvas(engine.tree, parent)\n\tconst canvasRect: Rect = {\n\t\twidth: parentRect.width,\n\t\theight: size.height,\n\t\tx: parentRect.x,\n\t\ty: parentRect.y,\n\t}\n\tconst lastVisibleChild = getLastVisibleChildForInsertionIndex(parent, insertionIndex)\n\tif (!lastVisibleChild) return canvasRect\n\n\tconst childRect = convertFrameToCanvas(engine.tree, lastVisibleChild)\n\tconst resolvedGap = parent.resolveValue(\"gap\")\n\tconst gap = getNumericColumnGapFromShorthand(resolvedGap)\n\tcanvasRect.y = childRect.y + childRect.height + gap\n\treturn canvasRect\n}\n\nexport function zoomInsertedNodeToCenterOfCanvas({ canvasStore }: EngineStores, target: InsertTarget) {\n\tconst { canvasRect } = target\n\n\tconst { zoom: currentZoom } = canvasStore\n\tconst visibleCanvasRect = canvasStore.getCanvasVisibleRectTakingOverlaysIntoAccount()\n\n\tconst visibleCanvasWidth = visibleCanvasRect.width * currentZoom\n\tconst visibleCanvasHeight = visibleCanvasRect.height * currentZoom\n\n\tconst margin = 40\n\tconst visualRectWidth = Math.max(visibleCanvasWidth - margin * 2, 100)\n\tconst visualRectHeight = Math.max(visibleCanvasHeight - margin * 2, 100)\n\tconst zoomForWidth = visualRectWidth / (canvasRect.width || 1)\n\tconst zoomForHeight = visualRectHeight / (canvasRect.height || 1)\n\tconst zoom = Math.min(zoomForWidth, zoomForHeight, 0.5)\n\tconst center = Rect.center(canvasRect)\n\tcanvasStore.scrollToCenter(center, { animate: true, zoom })\n}\n\nexport function updateInsertTargetLayoutIfNeeded(engine: VekterEngine, target: InsertTarget) {\n\tconst originalParentId = target.parent ? target.parent.getPrimaryId() : undefined\n\tif (!originalParentId) return\n\tconst originalParent = engine.tree.getNode(originalParentId)\n\tif (!originalParent) return\n\n\tconst scope = engine.stores.scopeStore.active\n\tif (!isWebPageNode(scope)) return\n\n\tconst primaryVariant = scope.getPrimaryVariant()\n\tif (primaryVariant.id !== originalParent.id) return\n\n\tif (primaryVariant.children.length === 0 && !primaryVariant.layout) {\n\t\tprimaryVariant.set({\n\t\t\tlayout: \"stack\",\n\t\t\tstackDirection: \"vertical\",\n\t\t\tstackDistribution: \"start\",\n\t\t\tstackAlignment: \"center\",\n\t\t\theightType: DimensionType.Auto,\n\t\t})\n\t\treturn\n\t}\n\n\tif (\n\t\tprimaryVariant.layout === \"stack\" &&\n\t\tprimaryVariant.stackDirection === \"vertical\" &&\n\t\tprimaryVariant.heightType === DimensionType.FixedNumber &&\n\t\tprimaryVariant.children.length > 0\n\t) {\n\t\tconst lastVisibleChild = Array.from(primaryVariant.children)\n\t\t\t.reverse()\n\t\t\t.find(child => child.cache.visible)\n\t\tif (lastVisibleChild) {\n\t\t\tconst childRect = engine.tree.getRect(lastVisibleChild)\n\t\t\tconst childBottom = childRect.y + childRect.height\n\t\t\tconst resolvedGap = primaryVariant.resolveValue(\"gap\")\n\t\t\tconst gap = getNumericColumnGapFromShorthand(resolvedGap)\n\t\t\tconst resolvedPadding = paddingFromNode(primaryVariant)\n\t\t\tconst newContentHeight = childBottom + target.canvasRect.height + gap + resolvedPadding.bottom\n\t\t\tif (newContentHeight > primaryVariant.height) {\n\t\t\t\tprimaryVariant.set({ heightType: DimensionType.Auto })\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport type InsertType = \"component\" | \"image\" | \"layoutBlock\" | \"frame\" | \"svg\"\n\ninterface InsertInput {\n\tengine: VekterEngine\n\ttype: InsertType\n\tscope: CanvasScopeNode\n\tsize: Size\n}\n\ninterface InsertTarget {\n\tparent: CanvasNode | null\n\toriginalParent: CanvasNode | null\n\tinsertionIndex: number\n\tinsertionLine: Line | null\n\twrap: WrapInsertionInfo | null\n\tcanvasRect: Rect\n\tzoomToCenter: boolean\n}\n\nfunction getLayerSize(engine: VekterEngine, input: InsertInput, parent: CanvasNode | null): Size {\n\tif (input.type !== \"image\") return input.size\n\n\tconst scope = engine.stores.scopeStore.active\n\tassert(isCanvasScopeNode(scope))\n\n\tconst primaryVariant = isWebPageNode(scope) || isSmartComponentNode(scope) ? scope.getPrimaryVariant() : null\n\tconst primaryVariantRect = primaryVariant ? engine.tree.getRect(primaryVariant) : null\n\tconst primaryVariantWidth = primaryVariantRect ? primaryVariantRect.width : 1200\n\tconst parentRect = parent ? engine.tree.getRect(parent) : null\n\tconst maxWidth = parentRect ? parentRect.width : primaryVariantWidth\n\n\tconst imageSize = input.size\n\tconst width = Math.round(Math.min(imageSize.width, maxWidth))\n\tconst scaleRatio = width / Math.max(imageSize.width, 1)\n\tconst height = Math.round(imageSize.height * scaleRatio)\n\treturn { width, height }\n}\n\nfunction getInsertTargetWithoutDrag(input: InsertInput): InsertTarget {\n\tconst { engine, type, scope } = input\n\n\tconst { canvasStore, selectionStore, scopeStore } = engine.stores\n\n\tif (type === \"layoutBlock\" || type === \"image\") {\n\t\t// TODO Check and handle shallow/fully loaded scope state\n\t\tif (isWebPageNode(scope) && scope.isLoaded()) {\n\t\t\tconst primaryBreakpoint = scope.loaded.getPrimaryVariant()\n\n\t\t\tif (\n\t\t\t\tprimaryBreakpoint.children.length === 0 ||\n\t\t\t\t(isStackComponent(primaryBreakpoint) && primaryBreakpoint.stackDirection === \"vertical\")\n\t\t\t) {\n\t\t\t\tconst primaryBreakpointRect = convertFrameToCanvas(engine.tree, primaryBreakpoint)\n\t\t\t\tconst visibleRect = canvasStore.getCanvasVisibleRect()\n\t\t\t\tconst primaryBreakpointIsVisible = Rect.intersects(primaryBreakpointRect, visibleRect)\n\t\t\t\tif (primaryBreakpointIsVisible) {\n\t\t\t\t\tlet insertionIndex = -1\n\n\t\t\t\t\tconst singleSelectedNode = selectionStore.ids.length === 1 ? selectionStore.nodes[0] : null\n\t\t\t\t\tif (singleSelectedNode) {\n\t\t\t\t\t\tconst ancestors = Array.from(singleSelectedNode.ancestors())\n\t\t\t\t\t\tconst selectionAncestorIds = new Set([singleSelectedNode.id, ...ancestors.map(getId)])\n\t\t\t\t\t\tconst childIndex = primaryBreakpoint.children.findIndex(child => selectionAncestorIds.has(child.id))\n\t\t\t\t\t\tif (childIndex !== -1) insertionIndex = childIndex + 1\n\t\t\t\t\t}\n\n\t\t\t\t\tconst size = getLayerSize(engine, input, primaryBreakpoint)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tparent: primaryBreakpoint,\n\t\t\t\t\t\toriginalParent: primaryBreakpoint,\n\t\t\t\t\t\tinsertionIndex,\n\t\t\t\t\t\tinsertionLine: null,\n\t\t\t\t\t\twrap: null,\n\t\t\t\t\t\tcanvasRect: getInsertionRect(engine, primaryBreakpoint, insertionIndex, size),\n\t\t\t\t\t\tzoomToCenter: true,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tconst canvasCenter = canvasStore.getViewportCenterTakingOverlaysIntoAccount()\n\tconst size = getLayerSize(engine, input, null)\n\tconst canvasRect = Rect.pixelAligned({\n\t\tx: canvasCenter.x - size.width / 2,\n\t\ty: canvasCenter.y - size.height / 2,\n\t\twidth: size.width,\n\t\theight: size.height,\n\t})\n\n\tlet zoomToCenter = false\n\tconst gap = 100\n\tlet canvasRectWithGap = Rect.inflate(canvasRect, gap)\n\tlet nodesWithinRect = getNodesInRect(engine.tree, scopeStore.active, canvasRectWithGap, true)\n\twhile (nodesWithinRect.length > 0) {\n\t\tconst nodeCanvasRects = nodesWithinRect.map(node => convertFrameToCanvas(engine.tree, node))\n\t\tconst nodeMaxXs = nodeCanvasRects.map(rect => rect.x + rect.width)\n\t\tconst nodeMinYs = nodeCanvasRects.map(rect => rect.y)\n\t\tconst maxX = Math.max(...nodeMaxXs)\n\t\tconst minY = Math.min(...nodeMinYs)\n\t\tcanvasRect.y = Math.floor(minY)\n\t\tcanvasRect.x = Math.ceil(maxX + gap)\n\t\tcanvasRectWithGap = Rect.inflate(canvasRect, gap)\n\t\tnodesWithinRect = getNodesInRect(engine.tree, scopeStore.active, canvasRectWithGap, true)\n\t\tzoomToCenter = true\n\t}\n\n\treturn {\n\t\tparent: null,\n\t\toriginalParent: null,\n\t\tinsertionIndex: -1,\n\t\tinsertionLine: null,\n\t\twrap: null,\n\t\tcanvasRect,\n\t\tzoomToCenter,\n\t}\n}\n\nexport function getInsertTarget(input: { canvasPosition: Point | null } & InsertInput): InsertTarget {\n\tconst { engine, type, scope, canvasPosition, size } = input\n\tif (!canvasPosition) {\n\t\treturn getInsertTargetWithoutDrag({ engine, type, scope, size })\n\t}\n\n\t// FIXME: doesn't make sense to instantiate these nodes here\n\tlet node: CanvasNode\n\tswitch (type) {\n\t\tcase \"svg\":\n\t\t\tnode = new SVGNode({ width: size.width, height: size.height })\n\t\t\tbreak\n\t\tcase \"component\":\n\t\t\tnode = new CodeComponentNode({\n\t\t\t\twidth: size.width,\n\t\t\t\theight: size.height,\n\t\t\t\tslotsAreChildNodes: experiments.isOn(\"componentSlotsAreChildNodes\"),\n\t\t\t})\n\t\t\tbreak\n\t\tcase \"image\":\n\t\tcase \"frame\":\n\t\tcase \"layoutBlock\":\n\t\t\tnode = new FrameNode({ width: size.width, height: size.height })\n\t\t\tbreak\n\t\tdefault:\n\t\t\tassertNever(type)\n\t}\n\n\tconst isLayout = type === \"layoutBlock\" || type === \"image\"\n\tconst stackInRange = getStackOrGridInRange(engine, canvasPosition, [node], null, isLayout)\n\tconst layerSize = getLayerSize(engine, input, stackInRange)\n\n\tif (stackInRange) {\n\t\tconst { insertionLine, insertionIndex, wrap } = getStackOrGridInsertionIndexAndLine(\n\t\t\tstackInRange,\n\t\t\tengine,\n\t\t\tcanvasPosition,\n\t\t\tsize,\n\t\t\t{ allowWrapping: !isLayout },\n\t\t)\n\t\tconst originalParent = stackInRange.originalid ? engine.tree.getNode(stackInRange.originalid) : stackInRange\n\t\treturn {\n\t\t\tparent: stackInRange,\n\t\t\toriginalParent,\n\t\t\tinsertionLine,\n\t\t\tinsertionIndex: insertionIndex ?? -1,\n\t\t\twrap: wrap ?? null,\n\t\t\tcanvasRect: Rect.atOrigin(layerSize),\n\t\t\tzoomToCenter: false,\n\t\t}\n\t}\n\n\tconst canvasRect = Rect.pixelAligned({\n\t\tx: canvasPosition.x - layerSize.width / 2,\n\t\ty: canvasPosition.y - layerSize.height / 2,\n\t\twidth: layerSize.width,\n\t\theight: layerSize.height,\n\t})\n\n\tconst parent = getInsertionParent(engine, node, canvasPosition, isLayout)\n\tconst originalParent = parent?.originalid ? engine.tree.getNode(parent.originalid) : parent\n\treturn {\n\t\tparent,\n\t\toriginalParent,\n\t\tinsertionIndex: -1,\n\t\tinsertionLine: null,\n\t\twrap: null,\n\t\tcanvasRect,\n\t\tzoomToCenter: false,\n\t}\n}\n\nexport function createInsertImagePlaceholder(\n\tengine: VekterEngine,\n\ttarget: InsertTarget,\n\timageSize: Size,\n\tname: string | undefined,\n\timageRendering: ImageRenderingValue | undefined,\n): { placeholderId: NodeID; placeholderRect: Rect } {\n\tconst { scopeStore, selectionStore } = engine.stores\n\tconst scope = scopeStore.active\n\tassert(isCanvasScopeNode(scope))\n\n\tconst { canvasRect } = target\n\tconst { width, height } = target.canvasRect\n\n\tconst localPoint = target.parent ? engine.tree.convertPointToNode(target.parent, canvasRect) : canvasRect\n\n\tconst frame = new FrameNode({\n\t\ttop: localPoint.y,\n\t\tleft: localPoint.x,\n\t\twidth: target.parent ? 1 : width,\n\t\twidthType: target.parent ? DimensionType.Percentage : DimensionType.FixedNumber,\n\t\tname,\n\t\theight,\n\t\tfillType: \"image\",\n\t\tfillEnabled: true,\n\t\taspectRatio: imageSize.width / Math.max(1, imageSize.height),\n\t\timageRendering,\n\t})\n\n\tupdateInsertTargetLayoutIfNeeded(engine, target)\n\n\tscopeStore.insertNode(frame, target.originalParent?.id, target.insertionIndex)\n\tselectionStore.set(frame.id)\n\n\tif (target.parent && isReplicaOrReplicaChild(target.parent)) {\n\t\tconst replicaVariant = getVariantForNode(engine.tree, target.parent.id)\n\t\tif (isReplica(replicaVariant)) {\n\t\t\tselectionStore.set(generateReplicaChildId(replicaVariant.id, frame.id))\n\t\t}\n\t}\n\n\treturn { placeholderId: frame.id, placeholderRect: canvasRect }\n}\n", "import { assert, assertNever } from \"@framerjs/shared\"\nimport { reservedPropNames } from \"code-generation/components/createControlsTypesAndReactProps.ts\"\nimport { createUnique } from \"code-generation/utils/BindingCollector.ts\"\nimport type { VekterEngine } from \"document/VekterEngine.ts\"\nimport { wrapStackBeforeInsertion } from \"document/components/tools/utils/stackInsertionHelpers.ts\"\nimport { RenamedIds } from \"document/components/tools/utils/updateNodeConnections.ts\"\nimport type {\n\tExternalModuleIdToLocalIdMap,\n\tLocalIdToExternalIdentifierMap,\n\tUnlinkDependencies,\n} from \"document/components/unlinking/utils.ts\"\nimport {\n\tcloneWithRenamedIdMap,\n\tcollectTextStylePresets,\n\tcollectUnlinkIdentifiers,\n\tfetchUnlinkResources,\n\timportUnlinkAssets,\n} from \"document/components/unlinking/utils.ts\"\nimport type {\n\tFrameNode,\n\tLoadedSmartComponentNode,\n\tNodeID,\n\tSmartComponentNode,\n} from \"document/models/CanvasTree/index.ts\"\nimport { isCanvasScopeNode } from \"document/models/CanvasTree/index.ts\"\nimport { generateReplicaChildId } from \"document/models/CanvasTree/nodes/TemplateHelper.ts\"\nimport type { TextStylePresetNode } from \"document/models/CanvasTree/nodes/TextStylePresetNode.ts\"\nimport { getVariantForNode } from \"document/models/CanvasTree/nodes/utils/breakpointHelpers.ts\"\nimport {\n\tisFrameNode,\n\tisGridComponent,\n\tisRichTextNode,\n\tisSmartComponentNode,\n\tisStackComponent,\n\tisWebPageNode,\n} from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport type { CombinedVariableProviderValueMap } from \"document/models/CanvasTree/traits/VariableProvider.ts\"\nimport { withGridItemSize } from \"document/models/CanvasTree/traits/WithGridItemSize.ts\"\nimport type { ReplicaOverrides } from \"document/models/CanvasTree/traits/WithTemplate.ts\"\nimport { isReplica, isReplicaOrReplicaChild } from \"document/models/CanvasTree/traits/WithTemplate.ts\"\nimport type { VariableDefinition } from \"document/models/CanvasTree/traits/WithVariables.ts\"\nimport { EagerVariableProviderMap } from \"document/models/CanvasTree/traits/utils/EagerVariableProviderMap.ts\"\nimport { convertCanvasFrameToNode } from \"document/models/CanvasTree/utils/geometry.ts\"\nimport { getNodeUpdateResolvingDynamicValues } from \"document/models/CanvasTree/utils/getNodeUpdateResolvingDynamicValues.ts\"\nimport { shouldGuessPinToBottom } from \"document/models/shouldGuessPinToBottom.ts\"\nimport { shouldGuessPinToRight } from \"document/models/shouldGuessPinToRight.ts\"\nimport type { ComponentInfo } from \"document/stores/ModulesStore.ts\"\nimport { DimensionType } from \"library/render/types/Constraints.ts\"\nimport type { Point } from \"library/render/types/Point.ts\"\nimport { ControlType } from \"library/render/types/PropertyControls.ts\"\nimport { ModuleMetadata } from \"modules/types.ts\"\nimport { lookUpModuleURL } from \"utils/clipboard/helpers/modules.ts\"\nimport { safeProperty } from \"utils/names.ts\"\nimport { tryParseNumber } from \"utils/tryParseNumber.ts\"\nimport { isArray, isBoolean, isNumber, isString } from \"utils/typeChecks.ts\"\nimport { getInsertTarget, updateInsertTargetLayoutIfNeeded, zoomInsertedNodeToCenterOfCanvas } from \"./insertTarget.ts\"\nimport { PluginOnlyError } from \"./pluginErrors.ts\"\n\ninterface VariableByName {\n\tvariableByName: ReadonlyMap<string, VariableDefinition>\n\tvariableByLowercaseName: ReadonlyMap<string, VariableDefinition>\n}\n\nfunction generateVariableByName(variables: readonly VariableDefinition[]): VariableByName {\n\tconst names = new Set<string>(reservedPropNames)\n\n\tconst variableByName: Map<string, VariableDefinition> = new Map()\n\tconst variableByLowercaseName: Map<string, VariableDefinition> = new Map()\n\n\tfor (const variable of variables) {\n\t\tconst name = createUnique(safeProperty(variable.name) ?? variable.id, names)\n\t\tvariableByName.set(name, variable)\n\t\tconst lowerCaseName = name.toLowerCase()\n\t\tif (!variableByLowercaseName.has(lowerCaseName)) {\n\t\t\tvariableByLowercaseName.set(lowerCaseName, variable)\n\t\t}\n\t}\n\n\treturn { variableByName, variableByLowercaseName }\n}\n\nfunction mapAttributeKeyToVariableId(\n\tattributes: Record<string, unknown>,\n\tbyName: VariableByName,\n): Record<string, unknown> {\n\tconst result: Record<string, unknown> = {}\n\n\tfor (const key in attributes) {\n\t\tconst value = attributes[key]\n\t\tconst variable = byName.variableByName.get(key) ?? byName.variableByLowercaseName.get(key.toLowerCase())\n\t\tif (!variable || variable.id in result) continue\n\t\tresult[variable.id] = value\n\t}\n\n\treturn result\n}\n\nfunction isValidVariableValue(value: unknown, variable: VariableDefinition): boolean {\n\tswitch (variable.type) {\n\t\tcase ControlType.Boolean:\n\t\t\treturn isBoolean(value)\n\t\tcase ControlType.Color:\n\t\tcase ControlType.Enum:\n\t\tcase ControlType.String:\n\t\tcase ControlType.TrackingId:\n\t\t\treturn isString(value)\n\t\tcase ControlType.Number:\n\t\t\treturn isNumber(value)\n\t\tcase ControlType.RichText:\n\t\t\t// FIXME: make sure we sanitize the value\n\t\t\treturn false\n\t\tcase ControlType.File:\n\t\tcase ControlType.Image:\n\t\t\t// TODO: make sure we either import the external file or we have a valid asset reference\n\t\t\treturn false\n\t\tcase ControlType.Gap:\n\t\tcase ControlType.Padding:\n\t\tcase ControlType.BorderRadius:\n\t\t\t// FIXME: make sure this is valid\n\t\t\treturn isString(value)\n\t\tcase ControlType.CollectionReference:\n\t\t\treturn isString(value)\n\t\tcase ControlType.LinkRelValues:\n\t\tcase ControlType.MultiCollectionReference:\n\t\t\treturn isArray(value) && value.every(isString)\n\t\tcase ControlType.Date:\n\t\tcase ControlType.Border:\n\t\tcase ControlType.Link:\n\t\tcase ControlType.Transition:\n\t\tcase ControlType.CustomCursor:\n\t\tcase \"controlReference\":\n\t\tcase \"nodePropertyControlReference\":\n\t\tcase ControlType.Array:\n\t\t\t// TODO: validate\n\t\t\treturn false\n\t\tcase \"slug\":\n\t\tcase ControlType.EventHandler:\n\t\t\treturn false\n\t\tcase ControlType.BoxShadow:\n\t\tcase ControlType.ScrollSectionRef:\n\t\tcase ControlType.Cursor:\n\t\tcase ControlType.Location:\n\t\tcase ControlType.VectorSetItem:\n\t\t\t// FIXME: can we support these?\n\t\t\treturn false\n\t\tdefault:\n\t\t\tassertNever(variable)\n\t}\n}\n\nfunction getComponentInstanceProps(\n\tnode: SmartComponentNode,\n\tattributes: Record<string, unknown>,\n): Record<string, unknown> {\n\tconst variableByName = generateVariableByName(node.variables)\n\n\tconst result: Record<string, unknown> = {}\n\n\tconst attributesByVariableId = mapAttributeKeyToVariableId(attributes, variableByName)\n\n\tfor (const variable of node.variables) {\n\t\tswitch (variable.type) {\n\t\t\tcase ControlType.Array:\n\t\t\tcase ControlType.Boolean:\n\t\t\tcase ControlType.Color:\n\t\t\tcase ControlType.Enum:\n\t\t\tcase ControlType.Number:\n\t\t\tcase ControlType.String:\n\t\t\tcase ControlType.RichText:\n\t\t\tcase ControlType.File:\n\t\t\tcase ControlType.Image:\n\t\t\tcase ControlType.Gap:\n\t\t\tcase ControlType.Padding:\n\t\t\tcase ControlType.BorderRadius:\n\t\t\tcase ControlType.Border:\n\t\t\tcase ControlType.Date:\n\t\t\tcase ControlType.Link:\n\t\t\tcase ControlType.LinkRelValues:\n\t\t\tcase ControlType.Transition:\n\t\t\tcase ControlType.CustomCursor:\n\t\t\tcase ControlType.CollectionReference:\n\t\t\tcase ControlType.MultiCollectionReference:\n\t\t\tcase ControlType.TrackingId:\n\t\t\tcase \"controlReference\":\n\t\t\tcase \"nodePropertyControlReference\": {\n\t\t\t\tconst attributeValue = attributesByVariableId[variable.id]\n\t\t\t\tif (isValidVariableValue(attributeValue, variable)) {\n\t\t\t\t\tresult[variable.id] = attributeValue\n\t\t\t\t} else {\n\t\t\t\t\tresult[variable.id] = variable.initialValue\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase \"slug\":\n\t\t\tcase ControlType.EventHandler:\n\t\t\t\t// Unsupported types are ignored\n\t\t\t\tbreak\n\t\t\tcase ControlType.BoxShadow:\n\t\t\tcase ControlType.ScrollSectionRef:\n\t\t\tcase ControlType.Cursor:\n\t\t\tcase ControlType.Location:\n\t\t\t\t// FIXME: can we support these?\n\t\t\t\tbreak\n\t\t\tcase ControlType.VectorSetItem:\n\t\t\t\t// VECTOR @TODO - Use the control value, or resolve the initial value to a module in\n\t\t\t\t// the project otherwise.\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tassertNever(variable)\n\t\t}\n\t}\n\n\treturn result\n}\n\nfunction flattenSelectedVariant({\n\tengine,\n\tsmartComponentNode,\n\tattributes,\n\tlocalIdsToExternalIdentifiers,\n\texternalModuleIdsToLocalIds,\n}: {\n\tengine: VekterEngine\n\tsmartComponentNode: SmartComponentNode\n\tattributes: Record<string, unknown> | undefined\n\tlocalIdsToExternalIdentifiers: LocalIdToExternalIdentifierMap\n\texternalModuleIdsToLocalIds: ExternalModuleIdToLocalIdMap\n}): { node: FrameNode; variantOverridesByWidth: ReadonlyMap<number, ReplicaOverrides | null> } {\n\tconst primaryVariantNode = smartComponentNode.children.find(child => child.id === smartComponentNode.baseVariantId)\n\tassert(isFrameNode(primaryVariantNode), \"Expected a primary variant node\")\n\n\tconst variants: Map<NodeID, FrameNode> = new Map()\n\tconst replicaVariants = smartComponentNode.getTopLevelReplicaVariants()\n\treplicaVariants.forEach(groundNode => variants.set(groundNode.id, groundNode))\n\n\tconst props = getComponentInstanceProps(smartComponentNode, attributes ?? {})\n\n\tconst selectedVariant = (isString(props.variant) && variants.get(props.variant)) || primaryVariantNode\n\n\tconst renamedIds = new RenamedIds()\n\tconst replacement = cloneWithRenamedIdMap(\n\t\tselectedVariant,\n\t\tlocalIdsToExternalIdentifiers,\n\t\texternalModuleIdsToLocalIds,\n\t\trenamedIds,\n\t)\n\n\treplacement.set({\n\t\tname: smartComponentNode.name ?? null,\n\t\tisVariant: false,\n\t\tisMaster: false,\n\t\tgesture: undefined,\n\t\treplicaInfo: null,\n\t\toriginalid: null,\n\t})\n\n\tconst variableValues = new EagerVariableProviderMap(Object.entries(props))\n\tconst variableValuesByProvider: CombinedVariableProviderValueMap = new Map()\n\tvariableValuesByProvider.set(smartComponentNode.id, variableValues)\n\n\tfor (const descendant of replacement.walk()) {\n\t\tconst update = getNodeUpdateResolvingDynamicValues(\n\t\t\tengine.tree,\n\t\t\tsmartComponentNode.id,\n\t\t\tdescendant,\n\t\t\tvariableValuesByProvider,\n\t\t)\n\t\tif (!update) continue\n\n\t\tdescendant.set(update)\n\t}\n\n\tconst variantOverridesByWidth: Map<number, ReplicaOverrides | null> = new Map()\n\tif (primaryVariantNode.widthType === DimensionType.FixedNumber) {\n\t\tvariantOverridesByWidth.set(primaryVariantNode.width, null)\n\n\t\tfor (const replica of replicaVariants) {\n\t\t\tif (replica.widthType !== DimensionType.FixedNumber) continue\n\t\t\tif (variantOverridesByWidth.has(replica.width)) continue\n\t\t\tconst overrides: ReplicaOverrides = {}\n\n\t\t\tfor (const overrideNodeId in replica.replicaInfo.overrides) {\n\t\t\t\tconst renamedId = renamedIds.get(overrideNodeId)\n\t\t\t\tconst override = replica.replicaInfo.overrides[overrideNodeId]\n\t\t\t\tif (!renamedId || !override) continue\n\t\t\t\tconst clonedOverride = { ...override }\n\t\t\t\tconst isGroundNode = overrideNodeId === replica.originalid\n\t\t\t\tif (isGroundNode) {\n\t\t\t\t\t// The original node is a ground node, which canvas location has no meaning when\n\t\t\t\t\t// inserted and should be ignored.\n\t\t\t\t\tdelete clonedOverride.width\n\t\t\t\t\tdelete clonedOverride.widthType\n\t\t\t\t\tdelete clonedOverride.top\n\t\t\t\t\tdelete clonedOverride.left\n\t\t\t\t}\n\t\t\t\toverrides[renamedId] = clonedOverride\n\t\t\t}\n\n\t\t\tvariantOverridesByWidth.set(replica.width, Object.keys(overrides).length > 0 ? overrides : null)\n\t\t}\n\t}\n\n\treturn { node: replacement, variantOverridesByWidth }\n}\n\nfunction getBreakpointOverridesForWidth(\n\twidth: number,\n\tvariantOverridesByWidth: ReadonlyMap<number, ReplicaOverrides | null>,\n) {\n\tlet distance = Infinity\n\tlet bestOverrides: ReplicaOverrides | null = null\n\n\tfor (const [variantWidth, overrides] of variantOverridesByWidth) {\n\t\tconst newDistance = Math.abs(width - variantWidth)\n\t\tif (newDistance < distance) {\n\t\t\tdistance = newDistance\n\t\t\tbestOverrides = overrides\n\t\t}\n\t}\n\n\treturn bestOverrides\n}\n\nexport interface PreloadedDetachedComponentLayers {\n\tsmartComponentNode: LoadedSmartComponentNode\n\tlocalIdsToExternalIdentifiers: LocalIdToExternalIdentifierMap\n\tcomponentLookupInfo: ComponentInfo[]\n\texternalModuleIdsToLocalIds: ExternalModuleIdToLocalIdMap\n\ttextStylePresetsToDetach: TextStylePresetNode[]\n\tintrinsicWidth: number\n\tintrinsicHeight: number\n}\n\nexport async function preloadDetachedComponentLayers({\n\tengine,\n\turl,\n}: {\n\tengine: VekterEngine\n\turl: string\n}): Promise<PreloadedDetachedComponentLayers> {\n\tconst { externalIdentifier, module } = await lookUpModuleURL(engine, url)\n\n\tlet smartComponentNode: LoadedSmartComponentNode\n\tlet dependencies: UnlinkDependencies\n\n\ttry {\n\t\tconst unlinkResources = await fetchUnlinkResources(engine, externalIdentifier)\n\t\tassert(isSmartComponentNode(unlinkResources.node), \"Expected a smart component node\")\n\t\tassert(unlinkResources.node.isLoaded(), \"Smart component node is not fully loaded\")\n\t\tsmartComponentNode = unlinkResources.node.loaded\n\t\tdependencies = unlinkResources.dependencies\n\t} catch {\n\t\tthrow new PluginOnlyError(\"Failed to load component for detaching. It might not be a visual component.\")\n\t}\n\n\tawait importUnlinkAssets(engine, dependencies, externalIdentifier)\n\n\tconst intrinsicWidth = tryParseNumber(module.metadata[ModuleMetadata.IntrinsicWidth], true) ?? 200\n\tconst intrinsicHeight = tryParseNumber(module.metadata[ModuleMetadata.IntrinsicHeight], true) ?? 200\n\n\tconst { identifiers, localIdsToExternalIdentifiers, externalModuleIdsToLocalIds } = collectUnlinkIdentifiers(\n\t\tsmartComponentNode,\n\t\tengine.stores.modulesStore,\n\t\tdependencies,\n\t)\n\n\tconst [textStylePresetsToDetach, componentLookupInfo] = await Promise.all([\n\t\tcollectTextStylePresets(dependencies.imports),\n\t\tengine.stores.modulesStore.preloadExternalModules(identifiers),\n\t])\n\n\treturn {\n\t\tsmartComponentNode,\n\t\ttextStylePresetsToDetach,\n\t\tcomponentLookupInfo,\n\t\tlocalIdsToExternalIdentifiers,\n\t\texternalModuleIdsToLocalIds,\n\t\tintrinsicWidth,\n\t\tintrinsicHeight,\n\t}\n}\n\nexport async function insertDetachedComponentLayers({\n\tengine,\n\tpreloadedDetachedComponentLayers,\n\tcanvasPosition,\n\tattributes,\n\tlayout,\n}: {\n\tengine: VekterEngine\n\tpreloadedDetachedComponentLayers: PreloadedDetachedComponentLayers\n\tcanvasPosition: Point | null\n\tattributes: Record<string, unknown> | undefined\n\tlayout: boolean\n}): Promise<FrameNode> {\n\tconst {\n\t\tsmartComponentNode,\n\t\tcomponentLookupInfo,\n\t\tlocalIdsToExternalIdentifiers,\n\t\texternalModuleIdsToLocalIds,\n\t\ttextStylePresetsToDetach,\n\t\tintrinsicWidth,\n\t\tintrinsicHeight,\n\t} = preloadedDetachedComponentLayers\n\n\tconst { modulesStore, selectionStore, scopeStore } = engine.stores\n\n\treturn modulesStore.updateExternalModuleNodes(componentLookupInfo, {\n\t\tonTreeUpdate: () => {\n\t\t\tconst { node, variantOverridesByWidth } = flattenSelectedVariant({\n\t\t\t\tengine,\n\t\t\t\tsmartComponentNode,\n\t\t\t\tattributes,\n\t\t\t\tlocalIdsToExternalIdentifiers,\n\t\t\t\texternalModuleIdsToLocalIds,\n\t\t\t})\n\n\t\t\tconst scope = scopeStore.active\n\t\t\tassert(isCanvasScopeNode(scope))\n\t\t\tconst target = getInsertTarget({\n\t\t\t\tengine,\n\t\t\t\ttype: layout ? \"layoutBlock\" : \"frame\",\n\t\t\t\tscope,\n\t\t\t\tcanvasPosition,\n\t\t\t\tsize: { width: intrinsicWidth, height: intrinsicHeight },\n\t\t\t})\n\n\t\t\tconst { insertionIndex, wrap, canvasRect, zoomToCenter } = target\n\n\t\t\tif (zoomToCenter) {\n\t\t\t\tzoomInsertedNodeToCenterOfCanvas(engine.stores, target)\n\t\t\t}\n\n\t\t\tlet { originalParent } = target\n\n\t\t\tif (wrap && originalParent && !isReplicaOrReplicaChild(originalParent) && isStackComponent(originalParent)) {\n\t\t\t\tconst newParent = wrapStackBeforeInsertion(engine, originalParent, wrap)\n\t\t\t\tif (newParent) {\n\t\t\t\t\toriginalParent = newParent\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst parentId = originalParent?.id ?? scope.id\n\n\t\t\tlet insertRect = canvasRect\n\n\t\t\tif (parentId !== scope.id) {\n\t\t\t\tinsertRect = {\n\t\t\t\t\t...convertCanvasFrameToNode(engine.tree, originalParent, insertRect),\n\t\t\t\t\twidth: intrinsicWidth,\n\t\t\t\t\theight: intrinsicHeight,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst rectUpdate = node.updateForRect({\n\t\t\t\trect: insertRect,\n\t\t\t\tparentSizeInfo: null,\n\t\t\t\tconstraintsLocked: false,\n\t\t\t\tshouldGuessPinToBottom: originalParent ? shouldGuessPinToBottom(engine.tree, node, originalParent) : true,\n\t\t\t\tshouldGuessPinToRight: originalParent ? shouldGuessPinToRight(engine.tree, node, originalParent) : true,\n\t\t\t})\n\n\t\t\tnode.set(rectUpdate, engine.tree)\n\n\t\t\tif (layout && isFrameNode(originalParent)) {\n\t\t\t\tnode.set({ left: 0, width: 1, widthType: DimensionType.Percentage })\n\n\t\t\t\tif (isGridComponent(originalParent) && withGridItemSize(node)) {\n\t\t\t\t\tnode.set({ gridItemFillCellWidth: true, gridItemFillCellHeight: true })\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (layout && originalParent && isWebPageNode(scope)) {\n\t\t\t\tconst primaryVariant = scope.getPrimaryVariant()\n\t\t\t\tconst groundNode = engine.tree.getGroundNodeFor(originalParent)\n\t\t\t\tif (primaryVariant === groundNode) {\n\t\t\t\t\tconst breakpoints = scope.getTopLevelReplicaVariants()\n\t\t\t\t\tfor (const breakpoint of breakpoints) {\n\t\t\t\t\t\tif (breakpoint.widthType === DimensionType.FixedNumber) {\n\t\t\t\t\t\t\tconst width = breakpoint.width\n\t\t\t\t\t\t\tconst overrides = getBreakpointOverridesForWidth(width, variantOverridesByWidth)\n\t\t\t\t\t\t\tif (!overrides) continue\n\t\t\t\t\t\t\tbreakpoint.set({\n\t\t\t\t\t\t\t\treplicaInfo: {\n\t\t\t\t\t\t\t\t\t...breakpoint.replicaInfo,\n\t\t\t\t\t\t\t\t\toverrides: { ...overrides, ...breakpoint.replicaInfo.overrides },\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (const descendant of node.walk()) {\n\t\t\t\tif (!isRichTextNode(descendant)) continue\n\t\t\t\tconst presetIds = descendant.getStylePresetIdsForCodeGeneration()\n\t\t\t\tfor (const presetToDetach of textStylePresetsToDetach) {\n\t\t\t\t\tif (!presetIds.has(presetToDetach.id)) continue\n\t\t\t\t\tdescendant.detachTextStylePreset(presetToDetach, false)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tupdateInsertTargetLayoutIfNeeded(engine, target)\n\n\t\t\tscopeStore.insertNode(node, originalParent?.id, insertionIndex)\n\t\t\tselectionStore.set(node.id)\n\n\t\t\tif (target.parent && isReplicaOrReplicaChild(target.parent)) {\n\t\t\t\tconst replicaVariant = getVariantForNode(engine.tree, target.parent.id)\n\t\t\t\tif (isReplica(replicaVariant)) {\n\t\t\t\t\tselectionStore.set(generateReplicaChildId(replicaVariant.id, node.id))\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn node\n\t\t},\n\t})\n}\n", "/** A visual separator between menu items. */\nexport interface SeparatorMenuItem {\n\ttype: \"separator\"\n}\n\n/** An actionable menu item with a label and optional submenu. */\nexport interface NormalMenuItem {\n\ttype?: never\n\tlabel: string\n\tsecondaryLabel?: string\n\tenabled?: boolean\n\tvisible?: boolean\n\tchecked?: boolean\n\tsubmenu?: MenuItem[]\n\tonAction?: () => void\n}\n\n/** A menu item, either a normal action item or a separator. */\nexport type MenuItem = NormalMenuItem | SeparatorMenuItem\n\nexport function isSeparatorMenuItem(menuItem: MenuItem | MenuItemSerializable): menuItem is SeparatorMenuItem {\n\treturn menuItem.type === \"separator\"\n}\n\ntype NormalMenuItemSerializable = Omit<NormalMenuItem, \"onAction\" | \"submenu\"> & {\n\tactionId?: number\n\tsubmenu?: MenuItemSerializable[]\n}\n\nexport type MenuItemSerializable = NormalMenuItemSerializable | SeparatorMenuItem\n\ntype MenuPlacementVertical = \"top\" | \"bottom\"\ntype MenuPlacementHorizontal = \"left\" | \"right\"\nexport type MenuPlacement =\n\t| MenuPlacementVertical\n\t| MenuPlacementHorizontal\n\t| `${MenuPlacementVertical}-${MenuPlacementHorizontal}`\n\n/** Configuration for positioning and sizing a context menu. */\nexport interface ContextMenuConfig {\n\t/**\n\t * Coordinates of the anchor point.\n\t */\n\tlocation: { x: number; y: number }\n\t/**\n\t * Placement of the menu relative to the anchor point.\n\t */\n\tplacement?: MenuPlacement\n\t/**\n\t * Sets fixed width for the menu. If not set, the menu width is based on the content.\n\t */\n\twidth?: number\n}\n\nexport function addMenuItemsToOnActionCallbackMap(\n\tmenuItems: MenuItem[],\n\tcallbackMap: Map<number, () => void>,\n): MenuItemSerializable[] {\n\tconst menuItemsSerializable: MenuItemSerializable[] = []\n\n\tfor (const menuItem of menuItems) {\n\t\tif (isSeparatorMenuItem(menuItem)) {\n\t\t\tmenuItemsSerializable.push(menuItem)\n\t\t\tcontinue\n\t\t}\n\n\t\tconst { onAction, ...menuItemProperties } = menuItem\n\n\t\tconst menuItemSerializable: MenuItemSerializable = menuItemProperties\n\n\t\tif (menuItem.onAction) {\n\t\t\tconst actionId = Math.random()\n\t\t\tcallbackMap.set(actionId, menuItem.onAction)\n\t\t\tmenuItemSerializable.actionId = actionId\n\t\t}\n\n\t\tif (menuItem.submenu) {\n\t\t\tmenuItemSerializable.submenu = addMenuItemsToOnActionCallbackMap(menuItem.submenu, callbackMap)\n\t\t}\n\n\t\tmenuItemsSerializable.push(menuItemSerializable)\n\t}\n\n\treturn menuItemsSerializable\n}\n", "import type { MenuItemOptions } from \"app/menu.ts\"\nimport type { MenuItemOptionsWithPath } from \"menu/types.ts\"\nimport { isDefined } from \"utils/typeChecks.ts\"\nimport { type MenuItemSerializable, isSeparatorMenuItem } from \"#framer-plugin/menu.ts\"\nimport type { PluginMenuAction, VekterToPluginMessage } from \"#framer-plugin/messages.ts\"\n\nexport function getMenuItemOptionsFromMenuItemsSerializable(\n\tmenuItemsSerialized: MenuItemSerializable[],\n\tsendMessage: (message: VekterToPluginMessage) => void,\n\tactionType: PluginMenuAction[\"actionType\"],\n): MenuItemOptions[] {\n\tconst menuItems: MenuItemOptions[] = []\n\n\tfor (const menuItemSerialized of menuItemsSerialized) {\n\t\tif (isSeparatorMenuItem(menuItemSerialized)) {\n\t\t\tmenuItems.push(menuItemSerialized)\n\t\t\tcontinue\n\t\t}\n\t\tif (menuItemSerialized.visible === false) continue\n\n\t\tconst { actionId, secondaryLabel, submenu, ...menuItemSerializedProperties } = menuItemSerialized\n\n\t\tconst menuItem: MenuItemOptions = menuItemSerializedProperties\n\n\t\tif (isDefined(secondaryLabel)) {\n\t\t\tmenuItem.acceleratorLabel = secondaryLabel\n\t\t}\n\n\t\tif (isDefined(actionId)) {\n\t\t\tmenuItem.click = () => {\n\t\t\t\tsendMessage({ type: \"menuAction\", actionId, actionType })\n\t\t\t}\n\t\t}\n\n\t\tif (submenu) {\n\t\t\tmenuItem.submenu = getMenuItemOptionsFromMenuItemsSerializable(submenu, sendMessage, actionType)\n\t\t}\n\n\t\tmenuItems.push(menuItem)\n\t}\n\n\treturn menuItems\n}\n\n/**\n * Note that this is comparing unprocessed MenuItemOptions[] to the processed MenuItemOptionsWithPath[]\n */\nexport function areMenuItemsEqual(\n\tmenuItemsA: readonly MenuItemOptions[],\n\tmenuItemsB: readonly MenuItemOptionsWithPath[],\n): boolean {\n\tfor (let i = 0; i < menuItemsA.length; i++) {\n\t\tconst menuItemA = menuItemsA[i]\n\t\tconst menuItemB = menuItemsB[i]\n\n\t\tif (!menuItemA || !menuItemB) return false\n\n\t\tif (menuItemA.label !== menuItemB.label) return false\n\n\t\tif (Array.isArray(menuItemA.submenu) && Array.isArray(menuItemB.submenu)) {\n\t\t\tif (!areMenuItemsEqual(menuItemA.submenu, menuItemB.submenu)) return false\n\t\t} else if (menuItemA.submenu !== menuItemB.submenu) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n", "import { assertNever, shouldBeNever } from \"@framerjs/shared\"\nimport type { AnyNodeKey, CanvasNode, CodeComponentNode, SmartComponentNode } from \"document/models/CanvasTree/index.ts\"\nimport { TemplateHelper } from \"document/models/CanvasTree/nodes/TemplateHelper.ts\"\nimport {\n\tisCodeComponentNode,\n\tisRichTextNode,\n\tisSVGNode,\n\tisSmartComponentNode,\n\tisWebPageNode,\n} from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport { withAspectRatio } from \"document/models/CanvasTree/traits/WithAspectRatio.ts\"\nimport { withBorder } from \"document/models/CanvasTree/traits/WithBorder.ts\"\nimport { hasFillEnabled, withFill } from \"document/models/CanvasTree/traits/WithFill.ts\"\nimport { withGridItemLayout } from \"document/models/CanvasTree/traits/WithGridItemLayout.ts\"\nimport { withGridItemSize } from \"document/models/CanvasTree/traits/WithGridItemSize.ts\"\nimport { withImageRendering } from \"document/models/CanvasTree/traits/WithImageRendering.ts\"\nimport { hasGridLayout, hasStackLayout, withLayout } from \"document/models/CanvasTree/traits/WithLayout.ts\"\nimport { withLink } from \"document/models/CanvasTree/traits/WithLink.ts\"\nimport { withLock } from \"document/models/CanvasTree/traits/WithLock.ts\"\nimport { withName } from \"document/models/CanvasTree/traits/WithName.ts\"\nimport { withOpacity } from \"document/models/CanvasTree/traits/WithOpacity.ts\"\nimport { withOverflow } from \"document/models/CanvasTree/traits/WithOverflow.ts\"\nimport { withPadding } from \"document/models/CanvasTree/traits/WithPadding.ts\"\nimport { isPinnable } from \"document/models/CanvasTree/traits/WithPins.ts\"\nimport { withPositionType } from \"document/models/CanvasTree/traits/WithPositionType.ts\"\nimport { withRadius } from \"document/models/CanvasTree/traits/WithRadius.ts\"\nimport { withRotation } from \"document/models/CanvasTree/traits/WithRotation.ts\"\nimport { supportsSizeConstraints } from \"document/models/CanvasTree/traits/WithSizeConstraints.ts\"\nimport { withStylePresets } from \"document/models/CanvasTree/traits/WithStylePresets.ts\"\nimport { withTextStyle } from \"document/models/CanvasTree/traits/WithTextStyle.ts\"\nimport { withTextTruncation } from \"document/models/CanvasTree/traits/WithTextTruncation.ts\"\nimport {\n\tisReplicaVariantOrReplicaVariantChild,\n\twithBreakpoint,\n\twithGesture,\n\twithVariant,\n} from \"document/models/CanvasTree/traits/WithVariant.ts\"\nimport { withVisibility } from \"document/models/CanvasTree/traits/WithVisibility.ts\"\nimport { withZIndex } from \"document/models/CanvasTree/traits/WithZIndex.ts\"\nimport { isPositionSticky } from \"document/models/CanvasTree/traits/utils/positionTypeHelpers.ts\"\nimport { containsPrefixedControlProp } from \"document/models/controlProps/controlPropKey.ts\"\nimport { capitalizeFirstLetter } from \"utils/capitalizeFirstLetter.ts\"\nimport { isKeySetAndNotInherited } from \"utils/isKeySetAndNotInherited.ts\"\nimport { isNullish, isNumber, isString } from \"utils/typeChecks.ts\"\nimport type { NodeAttributeKey, Position } from \"#framer-plugin/traits.ts\"\nimport type { ActivePluginContext } from \"./ActivePlugin.ts\"\nimport { getPositionFromPositionType } from \"./getPluginNodeDataFromVekter.ts\"\n\nfunction isSmartComponentOrCodeComponentNode(node: CanvasNode): node is SmartComponentNode | CodeComponentNode {\n\treturn isCodeComponentNode(node) || isSmartComponentNode(node)\n}\n\nexport function getTraitForNodeAttribute(key: NodeAttributeKey): ((node: CanvasNode) => boolean) | undefined {\n\tswitch (key) {\n\t\tcase \"backgroundColor\":\n\t\tcase \"backgroundImage\":\n\t\tcase \"backgroundGradient\":\n\t\t\treturn withFill\n\t\tcase \"aspectRatio\":\n\t\t\treturn withAspectRatio\n\t\tcase \"borderRadius\":\n\t\t\treturn withRadius\n\t\tcase \"border\":\n\t\t\treturn withBorder\n\t\tcase \"bottom\":\n\t\tcase \"top\":\n\t\tcase \"left\":\n\t\tcase \"right\":\n\t\tcase \"centerX\":\n\t\tcase \"centerY\":\n\t\tcase \"height\":\n\t\tcase \"width\":\n\t\t\treturn isPinnable\n\t\tcase \"layout\":\n\t\tcase \"padding\":\n\t\tcase \"gap\":\n\t\tcase \"gridAlignment\":\n\t\tcase \"gridColumnCount\":\n\t\tcase \"gridRowCount\":\n\t\tcase \"gridRowHeight\":\n\t\tcase \"gridColumnWidthType\":\n\t\tcase \"gridColumnWidth\":\n\t\tcase \"gridColumnMinWidth\":\n\t\tcase \"gridRowHeightType\":\n\t\tcase \"stackAlignment\":\n\t\tcase \"stackDistribution\":\n\t\tcase \"stackWrapEnabled\":\n\t\tcase \"stackDirection\":\n\t\t\treturn withLayout\n\t\tcase \"gridItemFillCellWidth\":\n\t\tcase \"gridItemFillCellHeight\":\n\t\t\treturn withGridItemSize\n\t\tcase \"gridItemHorizontalAlignment\":\n\t\tcase \"gridItemVerticalAlignment\":\n\t\tcase \"gridItemColumnSpan\":\n\t\tcase \"gridItemRowSpan\":\n\t\t\treturn withGridItemLayout\n\t\tcase \"overflow\":\n\t\tcase \"overflowX\":\n\t\tcase \"overflowY\":\n\t\t\treturn withOverflow\n\t\tcase \"zIndex\":\n\t\t\treturn withZIndex\n\t\tcase \"textTruncation\":\n\t\t\treturn withTextTruncation\n\t\tcase \"rotation\":\n\t\t\treturn withRotation\n\t\tcase \"componentIdentifier\":\n\t\tcase \"insertURL\":\n\t\tcase \"componentName\":\n\t\t\treturn isSmartComponentOrCodeComponentNode\n\t\tcase \"controls\":\n\t\tcase \"typedControls\":\n\t\t\treturn isCodeComponentNode\n\t\tcase \"locked\":\n\t\t\treturn withLock\n\t\tcase \"maxHeight\":\n\t\tcase \"maxWidth\":\n\t\tcase \"minHeight\":\n\t\tcase \"minWidth\":\n\t\t\treturn supportsSizeConstraints\n\t\tcase \"name\":\n\t\t\treturn withName\n\t\tcase \"opacity\":\n\t\t\treturn withOpacity\n\t\tcase \"position\":\n\t\t\treturn withPositionType\n\t\tcase \"svg\":\n\t\t\treturn isSVGNode\n\t\tcase \"visible\":\n\t\t\treturn withVisibility\n\t\tcase \"font\":\n\t\t\treturn withTextStyle\n\t\tcase \"inlineTextStyle\":\n\t\t\treturn withStylePresets\n\t\tcase \"linkOpenInNewTab\":\n\t\tcase \"linkSmoothScroll\":\n\t\tcase \"linkClickTrackingId\":\n\t\tcase \"linkRelValues\":\n\t\tcase \"linkPreserveParams\":\n\t\tcase \"link\":\n\t\t\treturn withLink\n\t\tcase \"collectionId\":\n\t\tcase \"path\":\n\t\t\treturn isWebPageNode\n\t\tcase \"imageRendering\":\n\t\t\treturn withImageRendering\n\t\tcase \"isPrimaryVariant\":\n\t\tcase \"isVariant\":\n\t\t\treturn withVariant\n\t\tcase \"gesture\":\n\t\tcase \"inheritsFromId\":\n\t\t\treturn withGesture\n\t\tcase \"isBreakpoint\":\n\t\tcase \"isPrimaryBreakpoint\":\n\t\t\treturn withBreakpoint\n\t\tdefault:\n\t\t\tshouldBeNever(key)\n\t}\n}\n\nfunction getNodePosition(node: CanvasNode, context: ActivePluginContext): Position {\n\tif (node.cache.slotPropertyAncestorId && node.__unsafeIsSlotPropertyChildNode()) {\n\t\treturn \"relative\"\n\t}\n\t// Nodes can only have a relative layout if their parent is a stack or grid. They are when\n\t// parentDirected is truthy.\n\tif (!withPositionType(node)) return node.cache.parentDirected ? \"relative\" : \"absolute\"\n\treturn getPositionFromPositionType(node, context)\n}\n\nfunction nodeSupportsPinning(node: CanvasNode, context: ActivePluginContext): boolean {\n\tconst position = getNodePosition(node, context)\n\tswitch (position) {\n\t\tcase \"absolute\":\n\t\tcase \"fixed\":\n\t\tcase \"sticky\":\n\t\t\treturn true\n\t\tcase \"relative\":\n\t\t\treturn false\n\t\tdefault:\n\t\t\tassertNever(position)\n\t}\n}\n\nfunction nodeSupportsCentering(node: CanvasNode, context: ActivePluginContext): boolean {\n\tconst position = getNodePosition(node, context)\n\tswitch (position) {\n\t\tcase \"absolute\":\n\t\tcase \"fixed\":\n\t\t\treturn true\n\t\tcase \"relative\":\n\t\tcase \"sticky\":\n\t\t\treturn false\n\t\tdefault:\n\t\t\tassertNever(position)\n\t}\n}\n\nfunction getNodeAttributesForPluginAttribute(\n\tnode: CanvasNode,\n\tkey: Exclude<NodeAttributeKey, \"controls\" | \"typedControls\">,\n): AnyNodeKey[] | undefined {\n\tswitch (key) {\n\t\tcase \"backgroundColor\":\n\t\t\tif (!hasFillEnabled(node)) return undefined\n\t\t\tif (node.fillType !== \"color\") return undefined\n\n\t\t\treturn [\"fillColor\"]\n\t\tcase \"backgroundImage\":\n\t\t\tif (!hasFillEnabled(node)) return undefined\n\t\t\tif (node.fillType !== \"image\") return undefined\n\n\t\t\treturn [\"fillImage\"]\n\t\tcase \"backgroundGradient\":\n\t\t\tif (!hasFillEnabled(node)) return undefined\n\n\t\t\tif (node.fillType === \"conic-gradient\") {\n\t\t\t\treturn [\"fillConicGradient\"]\n\t\t\t}\n\n\t\t\tif (node.fillType === \"linear-gradient\") {\n\t\t\t\treturn [\"fillLinearGradient\"]\n\t\t\t}\n\n\t\t\tif (node.fillType === \"radial-gradient\") {\n\t\t\t\treturn [\"fillRadialGradient\"]\n\t\t\t}\n\n\t\t\treturn undefined\n\t\tcase \"borderRadius\":\n\t\t\treturn [\n\t\t\t\t\"radius\",\n\t\t\t\t\"radiusBottomLeft\",\n\t\t\t\t\"radiusBottomRight\",\n\t\t\t\t\"radiusTopLeft\",\n\t\t\t\t\"radiusTopRight\",\n\t\t\t\t\"radiusPerCorner\",\n\t\t\t\t\"radius\",\n\t\t\t\t\"radiusIsRelative\",\n\t\t\t]\n\t\tcase \"border\":\n\t\t\tif (!withBorder(node)) return undefined\n\t\t\tif (!node.borderEnabled) return undefined\n\n\t\t\treturn [\n\t\t\t\t\"borderEnabled\",\n\t\t\t\t\"borderWidth\",\n\t\t\t\t\"borderTop\",\n\t\t\t\t\"borderRight\",\n\t\t\t\t\"borderBottom\",\n\t\t\t\t\"borderLeft\",\n\t\t\t\t\"borderPerSide\",\n\t\t\t\t\"borderColor\",\n\t\t\t\t\"borderStyle\",\n\t\t\t]\n\n\t\tcase \"componentIdentifier\": {\n\t\t\treturn [\"codeComponentIdentifier\"]\n\t\t}\n\t\tcase \"centerX\":\n\t\t\treturn [\"centerAnchorX\"]\n\t\tcase \"centerY\":\n\t\t\treturn [\"centerAnchorY\"]\n\t\tcase \"bottom\":\n\t\tcase \"top\":\n\t\tcase \"left\":\n\t\tcase \"right\": {\n\t\t\tif (isPositionSticky(node)) {\n\t\t\t\treturn [`positionSticky${capitalizeFirstLetter(key)}`]\n\t\t\t}\n\n\t\t\treturn [key]\n\t\t}\n\t\tcase \"aspectRatio\":\n\t\tcase \"height\":\n\t\tcase \"width\":\n\t\tcase \"rotation\":\n\t\tcase \"locked\":\n\t\tcase \"maxHeight\":\n\t\tcase \"maxWidth\":\n\t\tcase \"minHeight\":\n\t\tcase \"minWidth\":\n\t\tcase \"name\":\n\t\tcase \"opacity\":\n\t\tcase \"svg\":\n\t\tcase \"visible\":\n\t\tcase \"font\":\n\t\tcase \"link\":\n\t\tcase \"linkOpenInNewTab\":\n\t\tcase \"linkSmoothScroll\":\n\t\tcase \"linkClickTrackingId\":\n\t\tcase \"linkRelValues\":\n\t\tcase \"linkPreserveParams\":\n\t\tcase \"position\":\n\t\tcase \"layout\":\n\t\tcase \"gap\":\n\t\tcase \"padding\":\n\t\tcase \"stackDirection\":\n\t\tcase \"stackDistribution\":\n\t\tcase \"stackAlignment\":\n\t\tcase \"stackWrapEnabled\":\n\t\tcase \"gridAlignment\":\n\t\tcase \"gridColumnWidthType\":\n\t\tcase \"gridColumnCount\":\n\t\tcase \"gridRowCount\":\n\t\tcase \"gridRowHeightType\":\n\t\tcase \"gridRowHeight\":\n\t\tcase \"gridColumnWidth\":\n\t\tcase \"gridColumnMinWidth\":\n\t\tcase \"gridItemFillCellWidth\":\n\t\tcase \"gridItemFillCellHeight\":\n\t\tcase \"gridItemHorizontalAlignment\":\n\t\tcase \"gridItemVerticalAlignment\":\n\t\tcase \"gridItemColumnSpan\":\n\t\tcase \"gridItemRowSpan\":\n\t\tcase \"isVariant\":\n\t\tcase \"isBreakpoint\":\n\t\tcase \"overflow\":\n\t\tcase \"overflowX\":\n\t\tcase \"overflowY\":\n\t\tcase \"imageRendering\": {\n\t\t\treturn [key]\n\t\t}\n\t\tcase \"textTruncation\":\n\t\t\treturn [\"textTruncation\"]\n\t\tcase \"zIndex\":\n\t\t\treturn [\"zIndex\"]\n\t\tcase \"isPrimaryBreakpoint\": {\n\t\t\treturn [\"isBreakpoint\", \"isMaster\"]\n\t\t}\n\t\tcase \"inlineTextStyle\":\n\t\t\t// There isn't a direct mapping and instead a method is used on the\n\t\t\t// rich text node to determine if it has presets.\n\t\t\treturn undefined\n\t\tcase \"componentName\":\n\t\tcase \"insertURL\": {\n\t\t\t// This is a computed attribute based on codeComponentIdentifier\n\t\t\treturn undefined\n\t\t}\n\t\tcase \"collectionId\":\n\t\tcase \"path\": {\n\t\t\t// This is a computed value for WebPage Nodes.\n\t\t\treturn undefined\n\t\t}\n\t\tcase \"isPrimaryVariant\":\n\t\t\treturn [\"isVariant\", \"isMaster\"]\n\t\tcase \"gesture\":\n\t\t\treturn [\"gesture\"]\n\t\tcase \"inheritsFromId\":\n\t\t\treturn [\"replicaInfo\"]\n\t\tdefault:\n\t\t\tshouldBeNever(key)\n\t\t\treturn undefined\n\t}\n}\n\nfunction isInheritedAttribute(node: CanvasNode, key: NodeAttributeKey, context: ActivePluginContext): boolean {\n\tif (!isReplicaVariantOrReplicaVariantChild(node)) return false\n\n\tif (key === \"controls\" || key === \"typedControls\") {\n\t\tconst replica = TemplateHelper.getReplicaForTemplateNode(context.engine.tree, node)\n\t\tif (!replica) return false\n\n\t\tconst { overrides } = replica.replicaInfo\n\t\tconst nodeOverrides = overrides[node.originalid]\n\t\tif (!nodeOverrides) return true\n\n\t\treturn !containsPrefixedControlProp(nodeOverrides)\n\t}\n\n\tconst nodeKeys = getNodeAttributesForPluginAttribute(node, key)\n\tif (nodeKeys) {\n\t\treturn nodeKeys.every(nodeKey => !isKeySetAndNotInherited(context.engine.tree, node, nodeKey))\n\t}\n\n\treturn false\n}\n\nexport function hasAttributeSet(node: CanvasNode, key: NodeAttributeKey, context: ActivePluginContext): boolean {\n\tconst trait = getTraitForNodeAttribute(key)\n\tif (!trait || !trait(node)) {\n\t\treturn false\n\t}\n\n\tif (isInheritedAttribute(node, key, context)) return false\n\n\tswitch (key) {\n\t\tcase \"backgroundColor\":\n\t\t\treturn hasFillEnabled(node) && node.fillType === \"color\" && Boolean(node.fillColor)\n\t\tcase \"backgroundImage\":\n\t\t\treturn hasFillEnabled(node) && node.fillType === \"image\" && Boolean(node.fillImage)\n\t\tcase \"backgroundGradient\":\n\t\t\tif (!hasFillEnabled(node)) return false\n\t\t\tswitch (node.fillType) {\n\t\t\t\tcase \"conic-gradient\":\n\t\t\t\t\treturn Boolean(node.fillConicGradient)\n\t\t\t\tcase \"linear-gradient\":\n\t\t\t\t\treturn Boolean(node.fillLinearGradient)\n\t\t\t\tcase \"radial-gradient\":\n\t\t\t\t\treturn Boolean(node.fillRadialGradient)\n\t\t\t\tdefault:\n\t\t\t\t\treturn false\n\t\t\t}\n\t\tcase \"aspectRatio\":\n\t\t\treturn withAspectRatio(node) && isNumber(node.aspectRatio)\n\t\tcase \"borderRadius\":\n\t\t\treturn withRadius(node) && !isNullish(node.radius)\n\t\tcase \"layout\":\n\t\t\treturn withLayout(node) && !isNullish(node.layout)\n\t\tcase \"padding\":\n\t\t\treturn withPadding(node) && !isNullish(node.padding)\n\t\tcase \"gap\":\n\t\t\treturn withLayout(node) && !isNullish(node.gap)\n\t\tcase \"gridAlignment\":\n\t\t\treturn hasGridLayout(node) && !isNullish(node.gridAlignment)\n\t\tcase \"gridColumnCount\":\n\t\t\treturn hasGridLayout(node) && !isNullish(node.gridColumnCount)\n\t\tcase \"gridRowCount\":\n\t\t\treturn hasGridLayout(node) && !isNullish(node.gridRowCount)\n\t\tcase \"gridColumnWidthType\":\n\t\t\treturn hasGridLayout(node) && !isNullish(node.gridColumnWidthType)\n\t\tcase \"gridColumnWidth\":\n\t\t\treturn hasGridLayout(node) && !isNullish(node.gridColumnWidth)\n\t\tcase \"gridColumnMinWidth\":\n\t\t\treturn hasGridLayout(node) && !isNullish(node.gridColumnMinWidth)\n\t\tcase \"gridRowHeightType\":\n\t\t\treturn hasGridLayout(node) && !isNullish(node.gridRowHeightType)\n\t\tcase \"gridRowHeight\":\n\t\t\treturn hasGridLayout(node) && !isNullish(node.gridRowHeight)\n\t\tcase \"stackAlignment\":\n\t\t\treturn hasStackLayout(node) && !isNullish(node.stackAlignment)\n\t\tcase \"stackDistribution\":\n\t\t\treturn hasStackLayout(node) && !isNullish(node.stackDistribution)\n\t\tcase \"stackWrapEnabled\":\n\t\t\treturn hasStackLayout(node) && !isNullish(node.stackWrapEnabled)\n\t\tcase \"stackDirection\":\n\t\t\treturn hasStackLayout(node) && !isNullish(node.stackDirection)\n\t\tcase \"gridItemFillCellWidth\":\n\t\t\treturn withGridItemSize(node) && !isNullish(node.gridItemFillCellWidth)\n\t\tcase \"gridItemFillCellHeight\":\n\t\t\treturn withGridItemSize(node) && !isNullish(node.gridItemFillCellHeight)\n\t\tcase \"gridItemHorizontalAlignment\":\n\t\t\treturn withGridItemLayout(node) && !isNullish(node.gridItemHorizontalAlignment)\n\t\tcase \"gridItemVerticalAlignment\":\n\t\t\treturn withGridItemLayout(node) && !isNullish(node.gridItemVerticalAlignment)\n\t\tcase \"gridItemColumnSpan\":\n\t\t\treturn withGridItemLayout(node) && !isNullish(node.gridItemColumnSpan)\n\t\tcase \"gridItemRowSpan\":\n\t\t\treturn withGridItemLayout(node) && !isNullish(node.gridItemRowSpan)\n\t\tcase \"bottom\":\n\t\t\tif (!isPinnable(node) || !nodeSupportsPinning(node, context)) return false\n\t\t\treturn node.constraints().bottom\n\t\tcase \"top\":\n\t\t\tif (!isPinnable(node) || !nodeSupportsPinning(node, context)) return false\n\t\t\treturn node.constraints().top\n\t\tcase \"left\":\n\t\t\tif (!isPinnable(node) || !nodeSupportsPinning(node, context)) return false\n\t\t\treturn node.constraints().left\n\t\tcase \"right\":\n\t\t\tif (!isPinnable(node) || !nodeSupportsPinning(node, context)) return false\n\t\t\treturn node.constraints().right\n\t\tcase \"centerX\": {\n\t\t\tif (!isPinnable(node) || !nodeSupportsCentering(node, context)) return false\n\t\t\tconst constraints = node.constraints()\n\t\t\treturn !constraints.left && !constraints.right\n\t\t}\n\t\tcase \"centerY\": {\n\t\t\tif (!isPinnable(node) || !nodeSupportsCentering(node, context)) return false\n\t\t\tconst constraints = node.constraints()\n\t\t\treturn !constraints.top && !constraints.bottom\n\t\t}\n\t\tcase \"height\":\n\t\tcase \"width\":\n\t\t\treturn true\n\t\tcase \"rotation\":\n\t\t\treturn withRotation(node) && !isNullish(node.rotation) && node.rotation !== 0\n\t\tcase \"componentIdentifier\":\n\t\tcase \"controls\":\n\t\tcase \"typedControls\":\n\t\tcase \"insertURL\":\n\t\tcase \"componentName\":\n\t\t\treturn true\n\t\tcase \"locked\":\n\t\t\treturn withLock(node) && node.locked === true\n\t\tcase \"maxHeight\":\n\t\t\treturn supportsSizeConstraints(node) && !isNullish(node.maxHeight)\n\t\tcase \"maxWidth\":\n\t\t\treturn supportsSizeConstraints(node) && !isNullish(node.maxWidth)\n\t\tcase \"minHeight\":\n\t\t\treturn supportsSizeConstraints(node) && !isNullish(node.minHeight)\n\t\tcase \"minWidth\":\n\t\t\treturn supportsSizeConstraints(node) && !isNullish(node.minWidth)\n\t\tcase \"name\":\n\t\t\treturn withName(node) && isString(node.name)\n\t\tcase \"opacity\":\n\t\t\treturn withOpacity(node) && !isNullish(node.opacity) && node.opacity !== 1\n\t\tcase \"link\":\n\t\t\treturn withLink(node) && !isNullish(node.getLink())\n\t\tcase \"linkOpenInNewTab\":\n\t\t\treturn withLink(node) && !isNullish(node.linkOpenInNewTab)\n\t\tcase \"linkSmoothScroll\":\n\t\t\treturn withLink(node) && !isNullish(node.linkSmoothScroll)\n\t\tcase \"linkClickTrackingId\":\n\t\t\treturn withLink(node) && !isNullish(node.linkClickTrackingId)\n\t\tcase \"linkRelValues\":\n\t\t\treturn withLink(node) && !isNullish(node.linkRelValues)\n\t\tcase \"linkPreserveParams\":\n\t\t\treturn withLink(node) && !isNullish(node.linkPreserveParams)\n\t\tcase \"isBreakpoint\":\n\t\tcase \"isPrimaryBreakpoint\":\n\t\t\treturn withBreakpoint(node) && !isNullish(node.isBreakpoint)\n\t\tcase \"collectionId\":\n\t\tcase \"path\":\n\t\t\t// These are values on WebPageNode and cannot be inherited by breakpoints.\n\t\t\treturn false\n\t\tcase \"position\":\n\t\t\treturn true\n\t\tcase \"svg\":\n\t\t\treturn true\n\t\tcase \"visible\":\n\t\t\treturn true\n\t\tcase \"font\": {\n\t\t\tif (!isRichTextNode(node)) return false\n\n\t\t\tconst fonts = node.getFonts(false)\n\t\t\tif (fonts.length !== 1) return false\n\n\t\t\treturn true\n\t\t}\n\t\tcase \"inlineTextStyle\": {\n\t\t\tif (!isRichTextNode(node)) return false\n\n\t\t\tconst presetIds = node.getTextStylePresets(false)\n\t\t\tif (presetIds.length !== 1) return false\n\n\t\t\treturn true\n\t\t}\n\t\tcase \"overflow\":\n\t\t\treturn withOverflow(node) && !isNullish(node.overflow)\n\t\tcase \"overflowX\":\n\t\t\treturn withOverflow(node) && !isNullish(node.overflowX)\n\t\tcase \"overflowY\":\n\t\t\treturn withOverflow(node) && !isNullish(node.overflowY)\n\t\tcase \"zIndex\":\n\t\t\treturn withZIndex(node) && !isNullish((node as any).zIndex)\n\t\tcase \"textTruncation\":\n\t\t\treturn withTextTruncation(node) && !isNullish(node.textTruncation)\n\t\tcase \"imageRendering\": {\n\t\t\treturn withImageRendering(node) && !isNullish(node.imageRendering)\n\t\t}\n\t\tcase \"isVariant\":\n\t\t\treturn withVariant(node) && !isNullish(node.isVariant)\n\t\tcase \"isPrimaryVariant\":\n\t\t\treturn withVariant(node) && !isNullish(node.isVariant)\n\t\tcase \"gesture\":\n\t\t\treturn withGesture(node) && !isNullish(node.gesture)\n\t\tcase \"inheritsFromId\":\n\t\t\treturn withVariant(node) && !isNullish(node.replicaInfo)\n\t\tcase \"border\":\n\t\t\treturn withBorder(node) && node.borderEnabled === true\n\t\tdefault:\n\t\t\tshouldBeNever(key)\n\t\t\treturn false\n\t}\n}\n", "import { assert, unhandledError } from \"@framerjs/shared\"\nimport type { VekterEngine } from \"document/VekterEngine.ts\"\nimport { defaultPrimaryVariantAttributes } from \"document/components/utils/createSmartComponent.ts\"\nimport { type CanvasNode, FrameNode, type NodeID, type SmartComponentNode } from \"document/models/CanvasTree/index.ts\"\nimport { randomID } from \"document/models/CanvasTree/nodes/NodeID.ts\"\nimport { isSmartComponentNode } from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport { getGeneratedValue } from \"document/models/CanvasTree/traits/Generated.ts\"\nimport { acceptsChild } from \"document/models/CanvasTree/traits/utils/acceptsChild.ts\"\nimport { getNormalizedAssetNamePath } from \"document/utils/getNormalizedAssetNamePath.ts\"\nimport { isObject, isString } from \"utils/typeChecks.ts\"\nimport type { SomeNodeData } from \"#framer-plugin/nodes.ts\"\nimport type { NodeId } from \"#framer-plugin/traits.ts\"\nimport type { ActivePluginContext } from \"./ActivePlugin.ts\"\nimport { getPluginNodeDataFromVekter } from \"./getPluginNodeDataFromVekter.ts\"\nimport { getVekterNodeDataFromPlugin } from \"./getVekterNodeDataFromPlugin.ts\"\n\n/**\n * Returns the parent parentId where the given node should be inserted into based on the current selection.\n * This is used for high level plugin APIs to determine where a node should be inserted.\n */\nexport function getInsertionParentIdFromSelection(engine: VekterEngine, nodeToInsert: CanvasNode): NodeId {\n\tconst selection = engine.stores.selectionStore.nodes\n\tconst activeScope = engine.stores.scopeStore.active\n\n\tlet parentId: NodeID\n\n\tif (selection.length === 1) {\n\t\tconst selectedNode = selection[0]\n\t\tassert(selectedNode)\n\t\tconst parentNode = engine.tree.getParent(selectedNode.id)\n\n\t\t// First check if the node can be inserted as a child of the current selection\n\t\tif (acceptsChild(engine.tree, selectedNode, nodeToInsert, activeScope.id, engine.componentLoader)) {\n\t\t\tparentId = selectedNode.id\n\t\t}\n\t\t// Next check if the node can be inserted in the parent of the current selection\n\t\telse if (\n\t\t\tparentNode &&\n\t\t\tacceptsChild(engine.tree, parentNode, nodeToInsert, activeScope.id, engine.componentLoader)\n\t\t) {\n\t\t\tparentId = parentNode.id\n\t\t}\n\t}\n\n\t// If no valid parent was found insert into the active scope\n\tparentId ??= activeScope.id\n\n\treturn parentId\n}\n\nfunction insertSmartComponentNode(\n\tcontext: ActivePluginContext,\n\tnode: SmartComponentNode,\n\tattributes: unknown | undefined,\n): SomeNodeData | null {\n\tconst baseVariantId = randomID()\n\tnode.set({ baseVariantId })\n\n\tconst primaryVariant = new FrameNode({\n\t\t...defaultPrimaryVariantAttributes,\n\t\tid: baseVariantId,\n\t})\n\n\tif (isObject(attributes)) {\n\t\tconst update = getVekterNodeDataFromPlugin(primaryVariant, attributes, context, null)\n\t\tconst normalizedName = getNormalizedAssetNamePath(getGeneratedValue(update.name) || \"\")\n\t\tif (normalizedName) node.set({ name: normalizedName })\n\n\t\t// Apply the attributes to the primary variant\n\t\tprimaryVariant.set(update)\n\t}\n\n\tnode.addChild(primaryVariant)\n\tcontext.engine.tree.insertNode(node)\n\n\tvoid context.engine.stores.codeGenerationStore\n\t\t.createModuleFromComponentSource(node.draftOrCurrent())\n\t\t.catch(unhandledError)\n\n\treturn getPluginNodeDataFromVekter(node, context)\n}\n\nexport function insertNodeOnCanvas(\n\tcontext: ActivePluginContext,\n\tnode: CanvasNode,\n\tparentId: unknown,\n\tattributes: unknown | undefined,\n): SomeNodeData | null {\n\tif (isSmartComponentNode(node)) {\n\t\tassert(node.isLoaded(), \"Node is not loaded\")\n\t\treturn insertSmartComponentNode(context, node, attributes)\n\t}\n\n\tconst parent = isString(parentId) ? context.engine.tree.getNode(parentId) : null\n\n\tconst activeScope = context.engine.stores.scopeStore.active\n\tconst parentOrScope = parent ?? activeScope\n\tif (!acceptsChild(context.engine.tree, parentOrScope, node, activeScope.id, context.engine.componentLoader)) {\n\t\treturn null\n\t}\n\n\tconst update = getVekterNodeDataFromPlugin(node, isObject(attributes) ? attributes : {}, context, parent)\n\tnode.set(update)\n\n\tcontext.engine.stores.scopeStore.insertNode(node, parentOrScope.id)\n\n\tconst nodeData = getPluginNodeDataFromVekter(node, context)\n\treturn nodeData\n}\n", "import { getKeys } from \"utils/getKeys.ts\"\nimport { deepFreeze } from \"utils/updatable.ts\"\nimport {\n\ttype ExtendedPermissions,\n\ttype PermissionState,\n\tgetPermissions,\n} from \"web/pages/project/permissions/projectPermissions.ts\"\nimport {\n\tgetAiServiceInfoMessageType,\n\tgetCurrentUserMessageType,\n\tgetHTMLForNodeMessageType,\n\tgetProjectInfoMessageType,\n\tsendTrackingEventMessageType,\n\tsetHTMLForNodeMessageType,\n} from \"#framer-plugin/internal.ts\"\nimport type { PermissionMap, ProtectedMessageType, UnprotectedMessageType } from \"#framer-plugin/permissions.ts\"\n\nexport const unprotectedMessageType = \"__unprotectedMessageType\"\n\nexport const messageTypeToPermission = deepFreeze({\n\taddCollectionFields: \"canEditVariables\",\n\taddCollectionFields2: \"canEditVariables\",\n\taddCollectionItems: \"canEditContent\",\n\taddCollectionItems2: \"canEditContent\",\n\taddComponentInstance: \"canDesign\",\n\taddComponentInstancePlaceholder: unprotectedMessageType,\n\taddDetachedComponentLayers: \"canDesign\",\n\taddEnumCase: \"canEditVariables\",\n\taddImage: \"canDesign\",\n\taddImages: \"canDesign\",\n\taddManagedCollectionItems: \"canEditContent\",\n\taddManagedCollectionItems2: \"canEditContent\",\n\taddRedirects: \"canEditSiteSettings\",\n\taddSVG: \"canDesign\",\n\taddText: \"canDesign\",\n\tcloneNode: \"canDesign\", // See createFrameNode\n\tcloneDesignPage: \"canDesign\",\n\tcloneWebPage: \"canDesign\",\n\tcloseNotification: unprotectedMessageType,\n\tclosePlugin: unprotectedMessageType,\n\tcreateColorStyle: \"canDesign\",\n\tcreateDesignPage: \"canDesign\",\n\tcreateNode: \"canDesign\",\n\tcreateTextStyle: \"canDesign\",\n\tcreateWebPage: \"canDesign\",\n\tcreateCollection: \"canAddCollections\",\n\tcreateLocale: \"canEditLocales\",\n\tgetLocaleLanguages: unprotectedMessageType,\n\tgetLocaleRegions: unprotectedMessageType,\n\tgetActiveCollection: unprotectedMessageType,\n\tgetActiveLocale: unprotectedMessageType,\n\tgetActiveManagedCollection: unprotectedMessageType,\n\tgetCanvasRoot: unprotectedMessageType,\n\tgetChildren: unprotectedMessageType,\n\tgetCollection: unprotectedMessageType,\n\tgetCollectionFields: unprotectedMessageType,\n\tgetCollectionFields2: unprotectedMessageType,\n\tgetCollectionItems: unprotectedMessageType,\n\tgetCollectionItems2: unprotectedMessageType,\n\tgetCollections: unprotectedMessageType,\n\tgetColorStyle: unprotectedMessageType,\n\tgetColorStyles: unprotectedMessageType,\n\tgetCurrentUser: unprotectedMessageType,\n\tgetCurrentUser2: unprotectedMessageType,\n\tgetCustomCode: unprotectedMessageType,\n\tgetDefaultLocale: unprotectedMessageType,\n\tgetFont: unprotectedMessageType,\n\tgetFonts: unprotectedMessageType,\n\tgetImage: unprotectedMessageType,\n\tgetImageData: unprotectedMessageType,\n\tgetLocales: unprotectedMessageType,\n\tgetLocalizationGroups: unprotectedMessageType,\n\tgetManagedCollection: unprotectedMessageType,\n\tgetManagedCollectionFields: unprotectedMessageType,\n\tgetManagedCollectionFields2: unprotectedMessageType,\n\tgetManagedCollectionItemIds: unprotectedMessageType,\n\tgetManagedCollections: unprotectedMessageType,\n\tgetNode: unprotectedMessageType,\n\tgetNodesWithAttribute: unprotectedMessageType,\n\tgetNodesWithAttributeSet: unprotectedMessageType,\n\tgetNodesWithType: unprotectedMessageType,\n\tgetParent: unprotectedMessageType,\n\tgetPluginData: unprotectedMessageType,\n\tgetPluginDataForNode: unprotectedMessageType,\n\tgetPluginDataKeys: unprotectedMessageType,\n\tgetPluginDataKeysForNode: unprotectedMessageType,\n\tgetProjectInfo: unprotectedMessageType,\n\tgetProjectInfo2: unprotectedMessageType,\n\tgetPublishInfo: unprotectedMessageType,\n\tgetRect: unprotectedMessageType,\n\tgetRedirects: unprotectedMessageType,\n\tgetRuntimeErrorForCodeComponentNode: unprotectedMessageType,\n\tgetRuntimeErrorForModule: unprotectedMessageType,\n\tgetSelection: unprotectedMessageType,\n\tgetText: unprotectedMessageType,\n\tgetTextForNode: unprotectedMessageType,\n\tgetTextStyle: unprotectedMessageType,\n\tgetTextStyles: unprotectedMessageType,\n\tgetSVGForNode: unprotectedMessageType,\n\thideUI: unprotectedMessageType,\n\tsetBackgroundMessage: unprotectedMessageType,\n\tsetCloseWarning: unprotectedMessageType,\n\tnotify: unprotectedMessageType,\n\tonDrag: \"canDesign\", // See makeDraggable\n\tonDragEnd: \"canDesign\", // See makeDraggable\n\tonDragStart: \"canDesign\", // See makeDraggable\n\tonPointerDown: unprotectedMessageType,\n\tpreloadDetachedComponentLayers: \"canDesign\", // See makeDraggable\n\tpreloadDragPreviewImage: \"canDesign\", // See makeDraggable\n\tpreloadImageUrlForInsertion: \"canDesign\", // See makeDraggable\n\tremoveCollectionFields: \"canEditVariables\",\n\tremoveCollectionItems: \"canEditContent\",\n\tremoveColorStyle: \"canDesign\", // See ColorStyle.remove\n\tremoveComponentInstancePlaceholder: unprotectedMessageType,\n\tremoveEnumCase: \"canEditVariables\",\n\tremoveManagedCollectionItems: \"canEditContent\", // See ManagedCollection.removeItems\n\tremoveNode: \"canSendDiffs\",\n\tremoveNodes: \"canSendDiffs\",\n\tremoveNodes2: \"canDesign\",\n\tremoveProgressFromInstances: unprotectedMessageType,\n\tremoveRedirects: \"canEditSiteSettings\",\n\tremoveTextStyle: \"canDesign\", // See TextStyle.remove\n\treplaceComponentInstancePlaceholderWithComponentInstance: \"canDesign\",\n\tsetActiveCollection: unprotectedMessageType,\n\tsetAttributes: \"canDesign\",\n\tsetCollectionFieldOrder: \"canEditVariables\",\n\tsetCollectionItemAttributes: \"canEditContent\",\n\tsetCollectionItemAttributes2: \"canEditContent\",\n\tsetCollectionItemOrder: \"canEditContent\",\n\tsetColorStyleAttributes: \"canDesign\", // See ColorStyle.setAttributes\n\tsetCustomCode: \"canEditSiteSettings\",\n\tsetDragData: \"canDesign\", // See makeDraggable\n\tsetEnumCaseOrder: \"canEditVariables\",\n\tsetImage: \"canDesign\",\n\tsetLocalizationData: \"canEditLocalizedValues\",\n\tsetManagedCollectionFields: \"canEditVariables\", // See ManagedCollection.setFields\n\tsetManagedCollectionItemOrder: \"canEditContent\", // See ManagedCollection.setItemOrder\n\tsetMenu: unprotectedMessageType,\n\tshowContextMenu: unprotectedMessageType,\n\tsetParent: \"canDesign\",\n\tsetPluginData: \"canSendDiffs\",\n\tsetPluginDataForNode: \"canSendDiffs\", // See *.setPluginData\n\tsetRedirectOrder: \"canEditSiteSettings\",\n\tsetSelection: unprotectedMessageType,\n\tsetText: \"canDesign\",\n\tsetTextForNode: \"canDesign\", // See TextNode.setText\n\tsetTextStyleAttributes: \"canDesign\", // See TextStyle.setAttributes\n\tshowProgressOnInstances: unprotectedMessageType,\n\tshowUI: unprotectedMessageType,\n\tunstable_createCodeFile: \"canDesign\",\n\tcreateCodeFile: \"canDesign\",\n\tunstable_getDependencyVersion: unprotectedMessageType,\n\tunstable_ensureMinimumDependencyVersion: \"canDesign\",\n\tunstable_getCodeFile: unprotectedMessageType,\n\tgetCodeFile: unprotectedMessageType,\n\tunstable_getCodeFiles: unprotectedMessageType,\n\tgetCodeFiles: unprotectedMessageType,\n\tunstable_getCodeFileVersionContent: unprotectedMessageType,\n\tgetCodeFileVersionContent: unprotectedMessageType,\n\tunstable_getCodeFileLint2: unprotectedMessageType,\n\t/** @deprecated The lintCode API was removed. */\n\tlintCode: unprotectedMessageType,\n\tunstable_getCodeFileTypecheck2: unprotectedMessageType,\n\ttypecheckCode: unprotectedMessageType,\n\tunstable_getCodeFileVersions: unprotectedMessageType,\n\tgetCodeFileVersions: unprotectedMessageType,\n\tunstable_removeCodeFile: \"canDesign\",\n\tremoveCodeFile: \"canDesign\",\n\tunstable_renameCodeFile: \"canDesign\",\n\trenameCodeFile: \"canDesign\",\n\tunstable_setCodeFileContent: \"canDesign\",\n\tsetCodeFileContent: \"canDesign\",\n\tupdateComponentInstancePlaceholder: unprotectedMessageType,\n\tupdateEnumCase: \"canEditVariables\",\n\tuploadFile: unprotectedMessageType,\n\tuploadFiles: unprotectedMessageType,\n\tuploadImage: unprotectedMessageType,\n\tuploadImages: unprotectedMessageType,\n\tzoomIntoView: unprotectedMessageType,\n\tnavigateTo: unprotectedMessageType,\n\taddVariantToComponent: \"canDesign\",\n\taddGestureVariantToComponent: \"canDesign\",\n\tgetBreakpointSuggestionsForWebPage: unprotectedMessageType,\n\taddBreakpointToWebPage: \"canDesign\",\n\tgetActiveCollectionItemForWebPage: unprotectedMessageType,\n\tgetVariables: unprotectedMessageType,\n\taddVariables: \"canEditVariables\",\n\tupdateVariable: \"canEditVariables\",\n\tremoveVariables: \"canEditVariables\",\n\tsetVariableOrder: \"canEditVariables\",\n\tgetVectorSets: unprotectedMessageType,\n\tgetVectorSetItems: unprotectedMessageType,\n\tgetVectorSetItemVariables: unprotectedMessageType,\n\n\t// Headless api\n\treadProjectForAgent: unprotectedMessageType,\n\tgetAgentSystemPrompt: unprotectedMessageType,\n\tgetAgentContext: unprotectedMessageType,\n\tapplyAgentChanges: \"canDesign\",\n\tflattenComponentInstanceForAgent: \"canDesign\",\n\tmakeExternalComponentLocalForAgent: \"canDesign\",\n\tgetNodeForAgent: unprotectedMessageType,\n\tgetNodesForAgent: unprotectedMessageType,\n\tgetNodesOfTypesForAgent: unprotectedMessageType,\n\tgetScopeNodeForAgent: unprotectedMessageType,\n\tgetGroundNodeForAgent: unprotectedMessageType,\n\tgetParentNodeForAgent: unprotectedMessageType,\n\tgetAncestorsForAgent: unprotectedMessageType,\n\tserializeForAgent: unprotectedMessageType,\n\tserializeNodesForAgent: unprotectedMessageType,\n\tpaginateForAgent: unprotectedMessageType,\n\tpublishForAgent: \"canPublish\",\n\tqueryImagesForAgent: unprotectedMessageType,\n\treviewChangesForAgent: unprotectedMessageType,\n\tstartAgentConversation: \"canDesign\",\n\tcontinueAgentConversation: \"canDesign\",\n\tsubmitAgentClarification: \"canDesign\",\n\trunSupervisorAgentCommand: \"canDesign\",\n\tcreateManagedCollection: \"canAddCollections\",\n\tgetChangedPaths: unprotectedMessageType,\n\tgetChangeContributors: unprotectedMessageType,\n\tpublish: \"canPublish\",\n\tgetDeployments: unprotectedMessageType,\n\tdeploy: \"canPublish\",\n\n\t// Internal\n\t[getAiServiceInfoMessageType]: unprotectedMessageType,\n\t[sendTrackingEventMessageType]: unprotectedMessageType,\n\t[getCurrentUserMessageType]: unprotectedMessageType,\n\t[getProjectInfoMessageType]: unprotectedMessageType,\n\t[getHTMLForNodeMessageType]: unprotectedMessageType,\n\t[setHTMLForNodeMessageType]: \"canDesign\",\n\n\t// Deprecated internal\n\tgetAiServiceInfo: unprotectedMessageType,\n\tsendTrackingEvent: unprotectedMessageType,\n} as const satisfies { [K in ProtectedMessageType]: keyof ExtendedPermissions } & {\n\t[K in UnprotectedMessageType]: typeof unprotectedMessageType\n})\n\n// `PermissionState` and not `PermissionStateWithIsReady` because we don't want to conflate access\n// (something that rarely changes) with writability (something that could change all the time due to\n// network conditions and etcetera). `isReady` is something we should be taking care of without\n// plugins knowing anything about it.\nexport function createPermissionMap(state: PermissionState): PermissionMap {\n\tconst map = {} as PermissionMap // Inevitable cast\n\tconst permissions = getPermissions(state)\n\tfor (const messageType of getKeys(messageTypeToPermission)) {\n\t\tconst permissionName = messageTypeToPermission[messageType]\n\t\tmap[messageType] = permissionName === unprotectedMessageType || permissions[permissionName]\n\t}\n\n\treturn map\n}\n", "import { isRelativeUrl } from \"@framerjs/shared\"\nimport type { VekterEngine } from \"document/VekterEngine.ts\"\nimport { ensureRedirectLimits } from \"document/components/chrome/siteSettings/Redirects/ensureRedirectLimits.ts\"\nimport { getNonDefaultLocaleIdForPath } from \"document/components/chrome/siteSettings/Redirects/getNonDefaultLocaleForPath.ts\"\nimport { validateRedirectTo } from \"document/components/chrome/siteSettings/Redirects/validateRedirects.ts\"\nimport { getReadableWebPageLinkPaths } from \"document/components/utils/getReadableWebPageLinkPaths.ts\"\nimport type { RedirectRouteNode } from \"document/models/CanvasTree/nodes/RedirectRouteNode.ts\"\nimport { RoutesNode } from \"document/models/CanvasTree/nodes/RoutesNode.ts\"\nimport {\n\tgetRedirectToPath,\n\tgetWebPageLinksWithLocaleInfo,\n} from \"document/models/CanvasTree/nodes/utils/redirectRouteNode.ts\"\nimport {\n\taddRedirect,\n\tdeleteRedirects,\n\tmoveRedirects,\n\tupdateRedirect,\n} from \"document/models/CanvasTree/nodes/utils/routesNode.ts\"\nimport type { LinkToWebPage } from \"document/models/CanvasTree/traits/utils/Link.ts\"\nimport { assert, assertNever } from \"library/utils/assert.ts\"\nimport { isDefined, isUndefined } from \"utils/typeChecks.ts\"\nimport { validateRouteNodePath } from \"web/pages/projects/components/Domains/validation/validateRouteNode.ts\"\nimport type { RedirectData, RedirectInput } from \"#framer-plugin/redirects.ts\"\nimport { getLinkToWebPageFromPath } from \"../utils/getLinkToWebPageFromPath.ts\"\nimport { PluginOnlyError, verifyForPlugin } from \"./pluginErrors.ts\"\n\nfunction getRedirectData(\n\tengine: VekterEngine,\n\tredirectsRouteNodes: readonly RedirectRouteNode[],\n\tredirectNode: RedirectRouteNode,\n): RedirectData {\n\tassert(redirectNode.path)\n\n\tconst { linksWithLocale, linkWithLocaleByRedirect } = getWebPageLinksWithLocaleInfo(\n\t\tredirectsRouteNodes,\n\t\tengine.tree.root.locales,\n\t)\n\n\tconst readableWebPageLinkPaths = getReadableWebPageLinkPaths(engine.tree, linksWithLocale)\n\n\tconst readableWebPageLinkPathForRedirects = (redirect: RedirectRouteNode) => {\n\t\tconst linkWithLocale = linkWithLocaleByRedirect.get(redirect)\n\t\tif (!linkWithLocale) return null\n\t\treturn readableWebPageLinkPaths.get(linkWithLocale) ?? null\n\t}\n\n\tconst to = getRedirectToPath(redirectNode, readableWebPageLinkPathForRedirects)\n\tconst localeId = getNonDefaultLocaleIdForPath(redirectNode.path, engine.tree.root.locales)\n\n\treturn {\n\t\tid: redirectNode.id,\n\t\tfrom: redirectNode.path,\n\t\tto,\n\t\texpandToAllLocales: localeId ? false : redirectNode.shouldExpandToAllLocales(),\n\t}\n}\n\nfunction normalizeRedirectFromPath(from: string | undefined): string | undefined {\n\tif (!from) return undefined\n\n\tconst validatedFrom = validateRouteNodePath(\"redirect\", from)\n\tswitch (validatedFrom.result) {\n\t\tcase \"ok\":\n\t\t\tbreak\n\t\tcase \"empty\":\n\t\t\tthrow new PluginOnlyError(\"Invalid redirect \u201Cfrom\u201D: Path can\u2019t be empty\")\n\t\tcase \"warning\":\n\t\tcase \"error\":\n\t\t\tthrow new PluginOnlyError(`Invalid redirect \u201Cfrom\u201D: ${validatedFrom.message}`)\n\t}\n\n\treturn validatedFrom.normalizedValue\n}\n\nfunction normalizeRedirectToPath(\n\tengine: VekterEngine,\n\tto: string | undefined,\n\tnormalizedFrom: string | undefined,\n): string | LinkToWebPage | undefined {\n\tif (!to) return undefined\n\n\tlet toBeforeValidation: string | LinkToWebPage = to\n\tif (isRelativeUrl(to)) {\n\t\tconst linkToWebPage = getLinkToWebPageFromPath(to, engine, null)\n\t\tif (linkToWebPage) {\n\t\t\ttoBeforeValidation = linkToWebPage\n\t\t}\n\t}\n\n\tconst validatedTo = validateRedirectTo(engine.tree, toBeforeValidation, normalizedFrom)\n\tswitch (validatedTo.result) {\n\t\tcase \"ok\":\n\t\t\tbreak\n\t\tcase \"empty\":\n\t\t\tthrow new PluginOnlyError(\"Invalid redirect \u201Cto\u201D: Path can\u2019t be empty\")\n\t\tcase \"warning\":\n\t\tcase \"error\":\n\t\t\tthrow new PluginOnlyError(`Invalid redirect \u201Cto\u201D: ${validatedTo.message}`)\n\t}\n\n\treturn validatedTo.normalizedValue\n}\n\ninterface NormalizedRedirectPath {\n\tfrom: string\n\tto: string | LinkToWebPage\n}\n\ninterface NormalizedRedirectPathsUpdate extends Partial<NormalizedRedirectPath> {\n\taction: \"update\"\n}\n\ninterface NormalizedRedirectPathsCreate extends NormalizedRedirectPath {\n\taction: \"create\"\n}\n\nfunction normalizeRedirectPaths(\n\tengine: VekterEngine,\n\tredirect: RedirectInput,\n): NormalizedRedirectPathsUpdate | NormalizedRedirectPathsCreate {\n\tif (isUndefined(redirect.id)) {\n\t\tverifyForPlugin(redirect.from, `Missing redirect \u201Cfrom\u201D path`)\n\t\tverifyForPlugin(redirect.to, `Missing redirect \u201Cto\u201D path`)\n\t}\n\n\tconst normalizedFrom = normalizeRedirectFromPath(redirect.from)\n\tconst normalizedTo = normalizeRedirectToPath(engine, redirect.to, normalizedFrom)\n\n\tif (isDefined(redirect.id)) {\n\t\treturn {\n\t\t\taction: \"update\",\n\t\t\tfrom: normalizedFrom,\n\t\t\tto: normalizedTo,\n\t\t}\n\t}\n\n\tassert(normalizedFrom)\n\tassert(normalizedTo)\n\treturn {\n\t\taction: \"create\",\n\t\tfrom: normalizedFrom,\n\t\tto: normalizedTo,\n\t}\n}\n\nexport async function ensureRoutesNodeLoaded(engine: VekterEngine) {\n\tconst routesNode = RoutesNode.get(engine.tree)\n\tif (routesNode && !routesNode.isLoaded()) {\n\t\tawait routesNode.load()\n\t}\n}\n\nexport function upsertRedirects(engine: VekterEngine, redirects: RedirectInput[]): RedirectData[] {\n\tconst redirectsData: RedirectData[] = []\n\tconst routesNode = RoutesNode.ensure(engine.tree)\n\tassert(routesNode.isLoaded(), \"Routes node must be fully loaded when upserting redirects\")\n\n\tconst redirectsById: Record<string, RedirectRouteNode> = {}\n\tconst existingRedirects: Set<string> = new Set()\n\n\tfor (const redirectNode of routesNode.getRedirects()) {\n\t\tif (!redirectNode.path || !redirectNode.to) {\n\t\t\tcontinue\n\t\t}\n\t\tredirectsById[redirectNode.id] = redirectNode\n\t\texistingRedirects.add(redirectNode.path)\n\t}\n\n\tfor (const redirect of redirects) {\n\t\t// Check limits before we even start processing the input\n\t\tensureRedirectLimits(engine, isDefined(redirect.id) ? \"edit\" : \"add\")\n\n\t\tconst normalizedPaths = normalizeRedirectPaths(engine, redirect)\n\n\t\tswitch (normalizedPaths.action) {\n\t\t\tcase \"update\": {\n\t\t\t\tverifyForPlugin(redirect.id, `Missing redirect \u201Cid\u201D`)\n\n\t\t\t\tconst existingRedirectNode = redirectsById[redirect.id]\n\t\t\t\tverifyForPlugin(\n\t\t\t\t\texistingRedirectNode && existingRedirectNode.id === redirect.id,\n\t\t\t\t\t`Expected a redirect for the id \u201C${redirect.id}\u201D to exist`,\n\t\t\t\t)\n\n\t\t\t\tconst updatedRedirectNode: Partial<RedirectRouteNode> = {}\n\n\t\t\t\tif (isDefined(normalizedPaths.from)) {\n\t\t\t\t\t// If the from path has changed, we need to verify that the new path doesn't already exist as a redirect\n\t\t\t\t\tif (existingRedirectNode.path !== normalizedPaths.from) {\n\t\t\t\t\t\tverifyForPlugin(\n\t\t\t\t\t\t\t!existingRedirects.has(normalizedPaths.from),\n\t\t\t\t\t\t\t`A redirect for the path \u201C${normalizedPaths.from}\u201D already exists`,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tupdatedRedirectNode.path = normalizedPaths.from\n\t\t\t\t}\n\n\t\t\t\tif (isDefined(normalizedPaths.to)) {\n\t\t\t\t\tverifyForPlugin(\n\t\t\t\t\t\texistingRedirectNode.path !== normalizedPaths.to,\n\t\t\t\t\t\t\"Invalid redirect \u201Cto\u201D: Can\u2019t be the same as the old URL\",\n\t\t\t\t\t)\n\t\t\t\t\tupdatedRedirectNode.to = normalizedPaths.to\n\t\t\t\t}\n\n\t\t\t\tif (isDefined(redirect.expandToAllLocales)) {\n\t\t\t\t\tupdatedRedirectNode.expandToAllLocales = redirect.expandToAllLocales\n\t\t\t\t}\n\n\t\t\t\tconst updatedRedirect = updateRedirect(existingRedirectNode, updatedRedirectNode, () =>\n\t\t\t\t\tensureRedirectLimits(engine, \"edit\"),\n\t\t\t\t)\n\t\t\t\tconst latestRoutesNode = RoutesNode.ensure(engine.tree)\n\t\t\t\tassert(latestRoutesNode.isLoaded(), \"Routes node must be fully loaded when upserting redirects\")\n\t\t\t\tredirectsData.push(getRedirectData(engine, latestRoutesNode.getRedirects(), updatedRedirect))\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase \"create\": {\n\t\t\t\tverifyForPlugin(normalizedPaths.from)\n\t\t\t\tverifyForPlugin(normalizedPaths.to)\n\t\t\t\tverifyForPlugin(\n\t\t\t\t\t!existingRedirects.has(normalizedPaths.from),\n\t\t\t\t\t`A redirect for the path \u201C${normalizedPaths.from}\u201D already exists`,\n\t\t\t\t)\n\n\t\t\t\tconst redirectNode = addRedirect(\n\t\t\t\t\tengine.stores.treeStore,\n\t\t\t\t\tnormalizedPaths.from,\n\t\t\t\t\tnormalizedPaths.to,\n\t\t\t\t\t() => ensureRedirectLimits(engine, \"add\"),\n\t\t\t\t\tredirect.expandToAllLocales,\n\t\t\t\t)\n\t\t\t\tconst latestRoutesNode = RoutesNode.ensure(engine.tree)\n\t\t\t\tassert(latestRoutesNode.isLoaded(), \"Routes node must be fully loaded when upserting redirects\")\n\t\t\t\tredirectsData.push(getRedirectData(engine, latestRoutesNode.getRedirects(), redirectNode))\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tassertNever(normalizedPaths)\n\t\t}\n\t}\n\n\tassert(redirectsData.length === redirects.length, \"Expected all redirects to be created\")\n\treturn redirectsData\n}\n\nexport function removeRedirects(engine: VekterEngine, redirectIds: string[]) {\n\tdeleteRedirects(engine.stores.treeStore, redirectIds)\n}\n\nexport function getRedirects(engine: VekterEngine): RedirectData[] {\n\tconst routesNode = RoutesNode.get(engine.tree)\n\tif (!routesNode?.isLoaded()) {\n\t\treturn []\n\t}\n\n\tconst redirectsData: RedirectData[] = []\n\tconst redirectsRouteNodes = routesNode.getRedirects()\n\n\tfor (const redirect of redirectsRouteNodes) {\n\t\tconst redirectData = getRedirectData(engine, redirectsRouteNodes, redirect)\n\t\tif (!redirectData) continue\n\t\tredirectsData.push(redirectData)\n\t}\n\n\treturn redirectsData\n}\n\nexport function setRedirectOrder(engine: VekterEngine, redirectIds: string[]) {\n\tconst routesNode = RoutesNode.ensure(engine.tree)\n\tassert(routesNode.isLoaded(), \"Routes node must be fully loaded when setting redirect order\")\n\n\tconst existingRedirectIds = routesNode.getRedirects().map(existingRedirect => existingRedirect.id)\n\n\tfor (const redirectId of redirectIds) {\n\t\tverifyForPlugin(existingRedirectIds.includes(redirectId), `Expected redirect with id \u201C${redirectId}\u201D to exist`)\n\t}\n\n\tverifyForPlugin(\n\t\texistingRedirectIds.every(id => redirectIds.includes(id)),\n\t\t\"Expected all redirect IDs to be specified\",\n\t)\n\n\tmoveRedirects(engine.stores.treeStore, redirectIds, () => ensureRedirectLimits(engine, \"edit\"))\n}\n", "import { assert, emptyArray } from \"@framerjs/shared\"\nimport { generateText, stepCountIs, tool, type JSONValue, type ModelMessage, type ToolResultPart } from \"ai\"\nimport { assertValidAgentModelConfig, parseAgentModelConfig } from \"app/ai/agentModelConfig.ts\"\nimport { Agent, type AgentLifeCycleHooks } from \"app/ai/agents/Agent.ts\"\nimport type { AgentContextDependencies } from \"app/ai/agents/context/AgentContext.ts\"\nimport {\n\tbuildEvalExportArchiveSnapshot,\n\tbuildEvalExportZipBlob,\n\tcreateEvalExportTimestamp,\n\tcreateEvalExportZipFilename,\n} from \"app/ai/agents/evals/export/AgentStoreEvalExport.ts\"\nimport { AgentTrainingDataCollector } from \"app/ai/agents/evals/export/AgentTrainingDataCollector.ts\"\nimport { getPendingClarificationQuestions } from \"app/ai/agents/getPendingClarificationQuestions.ts\"\nimport type { ClarificationQuestion } from \"app/ai/agents/tools/askClarification.ts\"\nimport {\n\tisNodeScreenshotResult,\n\ttype Response as ScreenshotResponse,\n} from \"app/ai/agents/tools/utils/AgentScreenshots.ts\"\nimport type { TransientTurnMessage } from \"app/ai/agents/types.ts\"\nimport { createVekterOpenRouterExtraBody, openRouter } from \"app/ai/config/openRouter.ts\"\nimport type { LanguageModel as VekterLanguageModel } from \"app/ai/languageModels.ts\"\nimport { getProviderForModel, getReasoningForEffort, type AgentReasoningEffort } from \"app/ai/models.ts\"\nimport { createPageRouteLookup } from \"app/ai/utils/siteMap.ts\"\nimport type { VekterEngine } from \"document/VekterEngine.ts\"\nimport { createFixture } from \"document/components/chrome/downloadDocumentFixture/createFixture.ts\"\nimport { sanitizeTitle } from \"document/components/chrome/downloadDocumentFixture/sanitizeTitle.ts\"\nimport { type LoadedScopeNode, type NodeID, isScopeNode } from \"document/models/CanvasTree/index.ts\"\nimport { randomID } from \"document/models/CanvasTree/nodes/NodeID.ts\"\nimport { isWebPageNode } from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport { z } from \"zod/v4\"\nimport type {\n\tAgentClarificationQuestion,\n\tRunSupervisorAgentCommandOptions,\n\tRunSupervisorAgentCommandResult,\n} from \"#framer-plugin/agent.ts\"\nimport { PluginOnlyError } from \"./pluginErrors.ts\"\n\ntype InvokeAgentDependencies = ConstructorParameters<typeof Agent>[3]\n\ninterface AgentConversation {\n\tmodel: VekterLanguageModel\n\treasoningEffort?: AgentReasoningEffort\n\tagent: Agent\n\tinProgressResponse: Promise<{ responseMessages: readonly ModelMessage[] }> | null\n\t/** Tracks which visible agent messages have already been returned to the supervisor as tool output. */\n\tmessageBoundaryRequestId?: string\n\tmessageBoundaryIndex: number\n\twaitGeneration: number\n}\n\ninterface SupervisorAgentState {\n\t/** Screenshot promises emitted by the normal Raindrop capture path since the last supervisor tool result. */\n\treadonly screenshotRequests: Promise<SupervisorAgentToolScreenshot | undefined>[]\n}\n\ntype SupervisorAgentToolResult = SupervisorAgentToolCompletedResult | SupervisorAgentToolClarificationResult\n\ninterface SupervisorAgentToolCompletedResult {\n\tkind: \"completed\"\n\tmessages: readonly TransientTurnMessage[]\n\tscreenshots: readonly SupervisorAgentToolScreenshot[]\n}\n\ninterface SupervisorAgentToolClarificationResult {\n\tkind: \"clarification\"\n\tmessages: readonly TransientTurnMessage[]\n\tclarificationQuestions: readonly AgentClarificationQuestion[]\n\tscreenshots: readonly SupervisorAgentToolScreenshot[]\n}\n\ninterface SupervisorAgentToolScreenshot {\n\tid: NodeID\n\timageUrl: string\n}\n\nconst supervisorPromptToolInputSchema = z.object({\n\tmessage: z.string().min(1),\n})\n\nconst supervisorReplyToolInputSchema = z.object({\n\tanswers: z.array(\n\t\tz.object({\n\t\t\tquestionIndex: z.number().int().nonnegative(),\n\t\t\tanswer: z.union([\n\t\t\t\tz.string(),\n\t\t\t\tz.object({\n\t\t\t\t\tanswer: z.string(),\n\t\t\t\t\tdescription: z.string(),\n\t\t\t\t}),\n\t\t\t]),\n\t\t}),\n\t),\n})\n\nfunction buildDeps(engine: VekterEngine): AgentContextDependencies {\n\treturn {\n\t\ttreeStore: engine.stores.treeStore,\n\t\tmodulesStore: engine.stores.modulesStore,\n\t\tvectorsStore: engine.stores.vectorsStore,\n\t\tformsStore: engine.stores.formsStore,\n\t\tsessionStore: engine.stores.sessionStore,\n\t\tcodeGenerationStore: engine.stores.codeGenerationStore,\n\t\tscheduler: engine.scheduler,\n\t\tcomponentLoader: engine.componentLoader,\n\t\thooks: { getEngine: () => engine },\n\t\tsource: { agent: \"user-agent\", prompt: \"in-app\" },\n\t\tprojectId: engine.stores.projectStore.projectId,\n\t}\n}\n\nfunction buildInvokeAgentDependencies(engine: VekterEngine): InvokeAgentDependencies {\n\treturn {\n\t\t...buildDeps(engine),\n\t\tisFollowModeEnabled: () => false,\n\t\tselectScopeByAgent: () => {\n\t\t\tassert(\n\t\t\t\tfalse,\n\t\t\t\t\"Supervisor agent conversations do not support selectScopeByAgent; this should not be called with isFollowModeEnabled() === false\",\n\t\t\t)\n\t\t},\n\t\tgetActiveScopeId: () => engine.stores.scopeStore.active.id,\n\t}\n}\n\nasync function resolveScopeId(engine: VekterEngine, pagePath: string): Promise<string | undefined> {\n\tconst pageLookup = createPageRouteLookup(engine.tree)\n\tconst pageId = pageLookup.get(pagePath)\n\tif (!pageId) return undefined\n\n\tconst pageNode = engine.tree.getNode(pageId)\n\tif (!pageNode || !isWebPageNode(pageNode)) return undefined\n\n\tif (!pageNode.isLoaded()) await pageNode.load()\n\n\treturn pageId\n}\n\nasync function resolveScope(engine: VekterEngine, pagePath?: string): Promise<LoadedScopeNode> {\n\tconst scopeId = pagePath ? await resolveScopeId(engine, pagePath) : engine.stores.scopeStore.active.id\n\tassert(scopeId, `Page not found: ${pagePath}`)\n\n\treturn resolveScopeById(engine, scopeId)\n}\n\nasync function resolveScopeById(engine: VekterEngine, scopeId: string): Promise<LoadedScopeNode> {\n\tconst scopeNode = engine.tree.getNodeWithTrait(scopeId, isScopeNode)\n\tassert(scopeNode, `Scope node not found: ${scopeId}`)\n\tif (!scopeNode.isLoaded()) await scopeNode.load()\n\tassert(scopeNode.isLoaded(), \"Scope node must be loaded\")\n\n\treturn scopeNode\n}\n\nasync function createAgentConversation(\n\tengine: VekterEngine,\n\tconversationId: string,\n\tmodel: VekterLanguageModel,\n\treasoningEffort: AgentReasoningEffort | undefined,\n\toptions: { pagePath?: string },\n\tlifecycleHooks: AgentLifeCycleHooks,\n): Promise<AgentConversation> {\n\tconst scopeNode = await resolveScope(engine, options.pagePath)\n\n\treturn {\n\t\tmodel,\n\t\treasoningEffort,\n\t\tagent: new Agent(conversationId, scopeNode.id, undefined, buildInvokeAgentDependencies(engine), lifecycleHooks),\n\t\tinProgressResponse: null,\n\t\tmessageBoundaryIndex: 0,\n\t\twaitGeneration: 0,\n\t}\n}\n\nasync function requestAgentResponse(\n\tengine: VekterEngine,\n\tprompt: string,\n\tconversation: AgentConversation,\n): Promise<{ responseMessages: readonly ModelMessage[] }> {\n\tawait resolveScopeById(engine, conversation.agent.scopeId)\n\n\tconst result = await conversation.agent.send(\n\t\t[prompt],\n\t\temptyArray(),\n\t\tconversation.model,\n\t\tconversation.reasoningEffort,\n\t\temptyArray(),\n\t\temptyArray(),\n\t\t{\n\t\t\tpropagateErrors: true,\n\t\t\tskipTitleGeneration: true,\n\t\t},\n\t)\n\tif (!result) throw new PluginOnlyError(\"Agent turn was cancelled\")\n\n\treturn {\n\t\tresponseMessages: result.responseMessages,\n\t}\n}\n\n/**\n * Runs a headless Framer Agent turn under a separate supervisor model.\n * The supervisor is the outer model that repeatedly calls prompt/reply tools; the Framer Agent is the inner\n * product agent that edits the document and is exported as a debug-bar-compatible eval archive at the end.\n */\nexport async function runSupervisorAgentCommand(\n\tengine: VekterEngine,\n\toptions: RunSupervisorAgentCommandOptions,\n): Promise<RunSupervisorAgentCommandResult> {\n\tconst supervisorModelConfig = parseAgentModelConfig(options.model, \"MODEL\")\n\tconst userAgentModelConfig = options.userAgentModel\n\t\t? parseAgentModelConfig(options.userAgentModel, \"USER_AGENT_MODEL\")\n\t\t: supervisorModelConfig\n\tassertValidAgentModelConfig(supervisorModelConfig, \"MODEL\")\n\tassertValidAgentModelConfig(userAgentModelConfig, \"USER_AGENT_MODEL\")\n\tassert(options.goal.trim().length > 0, \"A non-empty goal is required\")\n\n\tconst conversationId = randomID()\n\tconst supervisorState = createSupervisorAgentState()\n\tconst trainingDataCollector = options.captureTrainingData === true ? new AgentTrainingDataCollector() : undefined\n\tconst conversation = await createAgentConversation(\n\t\tengine,\n\t\tconversationId,\n\t\tuserAgentModelConfig.model,\n\t\tuserAgentModelConfig.reasoningEffort,\n\t\t{ pagePath: options.pagePath },\n\t\tcreateSupervisorAgentLifecycleHooks(supervisorState, trainingDataCollector),\n\t)\n\tconst prompt = (message: string) =>\n\t\trunSupervisorPromptTurn(engine, conversationId, conversation, supervisorState, message)\n\tconst reply = (answers: z.infer<typeof supervisorReplyToolInputSchema>[\"answers\"]) =>\n\t\trunSupervisorReplyTurn(conversation, supervisorState, answers)\n\n\tawait generateText({\n\t\tmodel: openRouter(supervisorModelConfig.model, {\n\t\t\tprovider: getProviderForModel(supervisorModelConfig.model),\n\t\t\treasoning: getReasoningForEffort(supervisorModelConfig.reasoningEffort, supervisorModelConfig.model),\n\t\t\textraBody: createVekterOpenRouterExtraBody({\n\t\t\t\tfeatureCategory: \"agents\",\n\t\t\t\tfeatureName: \"agents\",\n\t\t\t\tmodel: supervisorModelConfig.model,\n\t\t\t\treasoningEffort: supervisorModelConfig.reasoningEffort,\n\t\t\t\tstep: \"user-agent-runner\",\n\t\t\t\tsessionId: conversationId,\n\t\t\t}),\n\t\t}),\n\t\tsystem: createSupervisorAgentSystemPrompt(options.goal),\n\t\tmessages: [\n\t\t\t{\n\t\t\t\trole: \"user\",\n\t\t\t\tcontent:\n\t\t\t\t\t\"Run the Framer Agent now. Use prompt first, answer clarifications with reply, and stop only once the agent has completed the goal.\",\n\t\t\t},\n\t\t],\n\t\ttools: {\n\t\t\tprompt: tool({\n\t\t\t\tdescription:\n\t\t\t\t\t\"Send a message to the Framer Agent and return its visible message delta or clarification request.\",\n\t\t\t\tinputSchema: supervisorPromptToolInputSchema,\n\t\t\t\texecute: async input => prompt(input.message),\n\t\t\t\ttoModelOutput: ({ output }) => getSupervisorAgentToolResultOutput(output),\n\t\t\t}),\n\t\t\treply: tool({\n\t\t\t\tdescription: \"Resolve the current Framer Agent clarification and continue the same in-progress turn.\",\n\t\t\t\tinputSchema: supervisorReplyToolInputSchema,\n\t\t\t\texecute: async input => reply(input.answers),\n\t\t\t\ttoModelOutput: ({ output }) => getSupervisorAgentToolResultOutput(output),\n\t\t\t}),\n\t\t},\n\t\ttoolChoice: \"auto\",\n\t\tstopWhen: stepCountIs(options.maxSteps ?? 20),\n\t})\n\n\tconst timestamp = createEvalExportTimestamp()\n\tconst snapshot = await buildEvalExportArchiveSnapshot({\n\t\toptions: {\n\t\t\tagentId: conversation.agent.id,\n\t\t\tfeatureFlags: getSupervisorAgentExportFeatureFlags(engine),\n\t\t},\n\t\tactiveChatAgentId: conversation.agent.id,\n\t\tgetAgent: agentId => (agentId === conversation.agent.id ? conversation.agent : undefined),\n\t\tassetStore: engine.stores.assetStore,\n\t\ttreeStore: engine.stores.treeStore,\n\t})\n\tconst blob = buildEvalExportZipBlob(snapshot, timestamp)\n\tconst bytes = new Uint8Array(await blob.arrayBuffer())\n\n\tconst filename = createEvalExportZipFilename(timestamp)\n\tconst trainingDataJsonl = trainingDataCollector?.toJsonl()\n\tconst trainingDataFilename =\n\t\ttrainingDataJsonl !== undefined ? filename.replace(/\\.zip$/u, \".training.jsonl\") : undefined\n\n\tconst project = engine.stores.projectStore.project\n\tassert(project, \"Project must be loaded before exporting the document fixture.\")\n\tconst fixture = await engine.runWithFullyLoadedTreeAsync(() => createFixture(engine, project), {\n\t\tname: \"supervisor-fixture-export\",\n\t\trunInBackground: true,\n\t})\n\tconst fixtureFilename = `${sanitizeTitle(project.title)}.fixture.json`\n\n\treturn {\n\t\tfilename,\n\t\tarchiveBase64: encodeBytesAsBase64(bytes),\n\t\ttrainingDataFilename,\n\t\ttrainingDataJsonl,\n\t\tfixtureFilename,\n\t\tfixtureContent: fixture,\n\t}\n}\n\nfunction createSupervisorAgentState(): SupervisorAgentState {\n\treturn { screenshotRequests: [] }\n}\n\nfunction createSupervisorAgentLifecycleHooks(\n\tstate: SupervisorAgentState,\n\ttrainingDataCollector?: AgentTrainingDataCollector,\n): AgentLifeCycleHooks {\n\treturn {\n\t\t// The supervisor passively observes the screenshot promises created by the normal agent screenshot flow.\n\t\tonCaptureScreenshots: screenshot => captureSupervisorAgentScreenshot(state, screenshot),\n\t\tonTrainingStep: trainingDataCollector ? step => trainingDataCollector.add(step) : undefined,\n\t}\n}\n\nfunction createSupervisorAgentSystemPrompt(goal: string): string {\n\treturn [\n\t\tgoal,\n\t\t\"\",\n\t\t\"You supervise a real Framer Agent through exactly two tools.\",\n\t\t\"Use prompt to send work to the agent. If prompt or reply returns a clarification, use reply with structured answers.\",\n\t\t\"Each tool result contains the Framer Agent's visible state.messages up to the current boundary.\",\n\t\t\"Do not claim completion until the Framer Agent has completed the work.\",\n\t].join(\"\\n\")\n}\n\nasync function runSupervisorPromptTurn(\n\tengine: VekterEngine,\n\tconversationId: string,\n\tconversation: AgentConversation,\n\tsupervisorState: SupervisorAgentState,\n\tprompt: string,\n): Promise<SupervisorAgentToolResult> {\n\tassert(!conversation.inProgressResponse, `Conversation \"${conversationId}\" already has a running turn`)\n\n\tconst inProgressResponse = requestAgentResponse(engine, prompt, conversation)\n\tconversation.inProgressResponse = inProgressResponse\n\n\tconst result = await waitForSupervisorAgentToolResult(conversation, inProgressResponse)\n\treturn attachSupervisorAgentScreenshots(supervisorState, result)\n}\n\nasync function runSupervisorReplyTurn(\n\tconversation: AgentConversation,\n\tsupervisorState: SupervisorAgentState,\n\tanswers: z.infer<typeof supervisorReplyToolInputSchema>[\"answers\"],\n): Promise<SupervisorAgentToolResult> {\n\tconst inProgressResponse = conversation.inProgressResponse\n\tassert(inProgressResponse, \"There is no pending clarification to answer\")\n\tassert(conversation.agent.state === \"waiting-for-clarification\", \"The Framer Agent is not waiting for clarification\")\n\n\tconversation.agent.submitClarification(answers)\n\n\tconst result = await waitForSupervisorAgentToolResult(conversation, inProgressResponse)\n\treturn attachSupervisorAgentScreenshots(supervisorState, result)\n}\n\nasync function waitForSupervisorAgentToolResult(\n\tconversation: AgentConversation,\n\tinProgressResponse: Promise<{ responseMessages: readonly ModelMessage[] }>,\n): Promise<SupervisorAgentToolResult> {\n\tconst controller = new AbortController()\n\tconst waitGeneration = ++conversation.waitGeneration\n\n\ttry {\n\t\t// A supervisor tool call returns either when the Framer Agent finishes, or earlier when it asks for\n\t\t// clarification so the supervisor can answer and resume the same in-progress turn.\n\t\treturn await Promise.race([\n\t\t\tinProgressResponse.then(() => {\n\t\t\t\tif (conversation.waitGeneration !== waitGeneration) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tkind: \"completed\" as const,\n\t\t\t\t\t\tmessages: [],\n\t\t\t\t\t\tscreenshots: [],\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (conversation.inProgressResponse === inProgressResponse) {\n\t\t\t\t\tconversation.inProgressResponse = null\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tkind: \"completed\" as const,\n\t\t\t\t\tmessages: readConversationMessagesSinceBoundary(conversation),\n\t\t\t\t\tscreenshots: [],\n\t\t\t\t}\n\t\t\t}),\n\t\t\tcreatePendingClarificationRace(conversation.agent, controller.signal).then(clarificationQuestions => ({\n\t\t\t\tkind: \"clarification\" as const,\n\t\t\t\tmessages: readConversationMessagesSinceBoundary(conversation),\n\t\t\t\tclarificationQuestions: serializeClarificationQuestionsForApi(clarificationQuestions),\n\t\t\t\tscreenshots: [],\n\t\t\t})),\n\t\t])\n\t} catch (error) {\n\t\tif (conversation.inProgressResponse === inProgressResponse) {\n\t\t\tconversation.inProgressResponse = null\n\t\t}\n\t\tthrow error\n\t} finally {\n\t\tcontroller.abort()\n\t}\n}\n\nasync function attachSupervisorAgentScreenshots(\n\tsupervisorState: SupervisorAgentState,\n\tresult: SupervisorAgentToolResult,\n): Promise<SupervisorAgentToolResult> {\n\tconst screenshots = await consumeSupervisorAgentScreenshots(supervisorState)\n\tif (screenshots.length === 0) return result\n\n\treturn {\n\t\t...result,\n\t\tscreenshots,\n\t}\n}\n\nasync function consumeSupervisorAgentScreenshots(\n\tsupervisorState: SupervisorAgentState,\n): Promise<readonly SupervisorAgentToolScreenshot[]> {\n\tif (supervisorState.screenshotRequests.length === 0) return []\n\n\t// Clear before awaiting so each supervisor tool result only receives screenshots produced since the\n\t// previous tool result, even if more screenshots are queued while these promises settle.\n\tconst screenshotRequests = [...supervisorState.screenshotRequests]\n\tsupervisorState.screenshotRequests.length = 0\n\tconst screenshots = await Promise.all(screenshotRequests)\n\tconst latestScreenshotsById = new Map<NodeID, SupervisorAgentToolScreenshot>()\n\tfor (const screenshot of screenshots) {\n\t\tif (!isSupervisorAgentToolScreenshot(screenshot)) continue\n\t\t// A node can be captured multiple times in one agent turn; only send the latest image for vision.\n\t\tlatestScreenshotsById.set(screenshot.id, screenshot)\n\t}\n\treturn Array.from(latestScreenshotsById.values())\n}\n\nfunction captureSupervisorAgentScreenshot(\n\tsupervisorState: SupervisorAgentState,\n\tscreenshot: Promise<ScreenshotResponse>,\n): void {\n\tsupervisorState.screenshotRequests.push(\n\t\tscreenshot\n\t\t\t.then(result => (isNodeScreenshotResult(result) ? { id: result.id, imageUrl: result.image_url } : undefined))\n\t\t\t.catch(() => undefined),\n\t)\n}\n\nfunction isSupervisorAgentToolScreenshot(\n\tscreenshot: SupervisorAgentToolScreenshot | undefined,\n): screenshot is SupervisorAgentToolScreenshot {\n\treturn screenshot !== undefined\n}\n\ntype ToolResultOutput = ToolResultPart[\"output\"]\n\nfunction getSupervisorAgentToolResultOutput(result: SupervisorAgentToolResult): ToolResultOutput {\n\tconst imageUrls = result.screenshots.map(screenshot => screenshot.imageUrl)\n\n\tif (imageUrls.length === 0) {\n\t\treturn {\n\t\t\ttype: \"json\",\n\t\t\tvalue: toJsonValue(result),\n\t\t}\n\t}\n\n\t// Content output mirrors image-query style tool results so the supervisor model receives screenshots as\n\t// vision inputs instead of only seeing their URLs in JSON.\n\treturn {\n\t\ttype: \"content\",\n\t\tvalue: [\n\t\t\t{ type: \"text\", text: JSON.stringify(result) },\n\t\t\t...imageUrls.map(url => ({ type: \"image-url\" as const, url })),\n\t\t],\n\t}\n}\n\nfunction toJsonValue(value: unknown): JSONValue {\n\treturn JSON.parse(JSON.stringify(value))\n}\n\nfunction readConversationMessagesSinceBoundary(conversation: AgentConversation): readonly TransientTurnMessage[] {\n\tconst request = conversation.agent.getLastUserMessage()\n\tif (!request) return []\n\n\t// Tool results should show the supervisor only the newly visible Framer Agent state since the previous\n\t// prompt/reply result, not the entire conversation every time.\n\tconst startIndex = conversation.messageBoundaryRequestId === request.id ? conversation.messageBoundaryIndex : 0\n\tconst messages = request.state.messages.slice(startIndex)\n\tconversation.messageBoundaryRequestId = request.id\n\tconversation.messageBoundaryIndex = request.state.messages.length\n\treturn messages\n}\n\nfunction getSupervisorAgentExportFeatureFlags(engine: VekterEngine): Record<string, unknown> {\n\tconst project = engine.stores.projectStore.project\n\treturn {\n\t\t...project?.canvasFeatures,\n\t\treleaseChannel: project?.releaseChannel ?? \"default\",\n\t}\n}\n\nfunction encodeBytesAsBase64(bytes: Uint8Array): string {\n\tconst chunkSize = 0x8000\n\tconst chunks: string[] = []\n\tfor (let index = 0; index < bytes.length; index += chunkSize) {\n\t\tchunks.push(String.fromCharCode(...bytes.subarray(index, index + chunkSize)))\n\t}\n\treturn btoa(chunks.join(\"\"))\n}\n\nfunction createPendingClarificationRace(agent: Agent, signal?: AbortSignal): Promise<readonly ClarificationQuestion[]> {\n\treturn new Promise<readonly ClarificationQuestion[]>(resolve => {\n\t\tlet done = false\n\t\tlet unsubscribe = () => {}\n\n\t\tconst resolveIfPending = () => {\n\t\t\tif (done) return\n\t\t\tif (agent.state !== \"waiting-for-clarification\") return\n\t\t\tconst clarificationQuestions = getPendingClarificationQuestions(agent.chatMessages)\n\t\t\tif (!clarificationQuestions) return\n\n\t\t\tdone = true\n\t\t\tunsubscribe()\n\t\t\tresolve(clarificationQuestions)\n\t\t}\n\n\t\tunsubscribe = agent.subscribe(resolveIfPending)\n\t\tresolveIfPending()\n\t\tsignal?.addEventListener(\n\t\t\t\"abort\",\n\t\t\t() => {\n\t\t\t\tdone = true\n\t\t\t\tunsubscribe()\n\t\t\t},\n\t\t\t{ once: true },\n\t\t)\n\t})\n}\n\nfunction serializeClarificationQuestionsForApi(\n\tclarificationQuestions: readonly ClarificationQuestion[],\n): readonly AgentClarificationQuestion[] {\n\treturn clarificationQuestions.map(({ question, suggestedAnswers }) => ({\n\t\tquestion,\n\t\tsuggestedAnswers: suggestedAnswers.map(suggestedAnswer =>\n\t\t\ttypeof suggestedAnswer === \"string\"\n\t\t\t\t? suggestedAnswer\n\t\t\t\t: {\n\t\t\t\t\t\tanswer: suggestedAnswer.answer,\n\t\t\t\t\t\tdescription: suggestedAnswer.description,\n\t\t\t\t\t},\n\t\t),\n\t}))\n}\n", "import { type ThemeOverrideMode, modalColorsDarkOnDark } from \"@framerjs/fresco\"\nimport {\n\tagentTokenOverridesDark,\n\tagentTokenOverridesLight,\n} from \"@framerjs/fresco/src/components/theme/AgentTheme.styles\"\nimport type { ColorTokenKey } from \"@framerjs/fresco/src/tokens/colors/colorTypes\"\nimport { colorValues } from \"@framerjs/fresco/tokens\"\nimport { assert } from \"@framerjs/shared\"\nimport { experiments } from \"app/experiments.ts\"\nimport type { EngineStores } from \"document/EngineStores.ts\"\nimport { needsDarkOnDarkThemeOverride } from \"document/components/chrome/needsDarkOnDarkThemeOverride.ts\"\nimport { getThemeOverrideMode } from \"document/components/utils/getThemeOverrideMode.ts\"\nimport type { ActiveMainView } from \"document/utils/ActiveEditorType.ts\"\nimport { objectKeys } from \"library/utils/objectKeys.ts\"\nimport type { Mode } from \"#framer-plugin/messages.ts\"\nimport type { Theme, ThemeMode, ThemeTokens } from \"#framer-plugin/theme.ts\"\nimport { shouldRenderAsModal } from \"./utils/modes.ts\"\n\ntype ThemeTokenToFrescoToken = Record<keyof ThemeTokens, ColorTokenKey>\ntype ThemeTokenOverrides = Partial<Record<ThemeOverrideMode, Partial<ThemeTokenToFrescoToken>>>\n\nconst defaultThemeFrescoTokens: ThemeTokenToFrescoToken = {\n\t\"--framer-color-tint\": \"tint\",\n\t\"--framer-color-tint-dimmed\": \"tintDimmed\",\n\t\"--framer-color-tint-dark\": \"tintDark\",\n\t\"--framer-color-bg\": \"modalBackground\",\n\t\"--framer-color-bg-secondary\": \"canvasBackground\",\n\t\"--framer-color-bg-tertiary\": \"inputBackground\",\n\t\"--framer-color-control\": \"buttonBackground\",\n\t\"--framer-color-control-hover\": \"buttonBackgroundHover\",\n\t\"--framer-color-divider\": \"panelDivider\",\n\t\"--framer-color-text\": \"panelTitle\",\n\t\"--framer-color-text-reversed\": \"buttonTextPrimary\",\n\t\"--framer-color-text-secondary\": \"panelRowTitle\",\n\t\"--framer-color-text-tertiary\": \"panelSectionTitle\",\n\t\"--framer-color-tint-extra-dark\": \"buttonBackgroundPrimaryActive\",\n}\n\nconst themeTokenOverrides: ThemeTokenOverrides = {\n\tcomponent: {\n\t\t\"--framer-color-tint\": \"componentTint\",\n\t\t\"--framer-color-tint-dimmed\": \"componentTintDimmed\",\n\t\t\"--framer-color-tint-dark\": \"componentTintDark\",\n\t\t\"--framer-color-tint-extra-dark\": \"componentTintExtraDark\",\n\t},\n}\n\ntype CacheKey = `${ThemeMode}-${ActiveMainView}-${ThemeOverrideMode | \"default\"}-${\"agent\" | \"default\"}`\n\nfunction isDarkOnDarkModalColorToken(frescoToken: ColorTokenKey): frescoToken is keyof typeof modalColorsDarkOnDark {\n\treturn frescoToken in modalColorsDarkOnDark\n}\n\nfunction getAgentThemeColorOverride(themeMode: ThemeMode, frescoToken: ColorTokenKey) {\n\tconst overrides = themeMode === \"light\" ? agentTokenOverridesLight : agentTokenOverridesDark\n\treturn overrides[frescoToken]\n}\n\nexport class PluginThemeProvider {\n\tprivate cache: Map<CacheKey, Theme> = new Map()\n\n\tconstructor(private stores: EngineStores) {}\n\n\tgetTheme(mode: Mode): Theme {\n\t\tconst mainView = this.stores.chromeStore.mainView\n\t\tconst themeMode = this.stores.pluginStore.theme\n\n\t\tconst overrideMode = getThemeOverrideMode(this.stores)\n\t\tconst uiVariant = experiments.isOn(\"agent\") ? \"agent\" : \"default\"\n\t\tassert(themeMode, \"Theme is not yet known\")\n\n\t\tconst cacheKey: CacheKey = `${themeMode}-${mainView}-${overrideMode ?? \"default\"}-${uiVariant}`\n\t\tconst cached = this.cache.get(cacheKey)\n\t\tif (cached) return cached\n\n\t\tconst override = overrideMode ? themeTokenOverrides[overrideMode] : undefined\n\t\tconst tokensToFrescoTokens = Object.assign({}, defaultThemeFrescoTokens, override)\n\t\tconst needsDarkModalOverride =\n\t\t\tthemeMode === \"dark\" && shouldRenderAsModal(mode) && needsDarkOnDarkThemeOverride(mainView)\n\n\t\tconst tokens: Partial<ThemeTokens> = {}\n\t\tfor (const key of objectKeys(tokensToFrescoTokens)) {\n\t\t\tconst frescoToken = tokensToFrescoTokens[key]\n\n\t\t\tif (needsDarkModalOverride && isDarkOnDarkModalColorToken(frescoToken)) {\n\t\t\t\tconst overrideColor = modalColorsDarkOnDark[frescoToken]\n\t\t\t\tif (overrideColor) {\n\t\t\t\t\ttokens[key] = overrideColor\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (uiVariant === \"agent\") {\n\t\t\t\tconst overrideColor = getAgentThemeColorOverride(themeMode, frescoToken)\n\t\t\t\tif (overrideColor) {\n\t\t\t\t\ttokens[key] = overrideColor\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttokens[key] = colorValues[themeMode][frescoToken]\n\t\t}\n\n\t\tconst theme: Theme = {\n\t\t\tmode: themeMode,\n\t\t\ttokens: tokens as ThemeTokens,\n\t\t}\n\n\t\tthis.cache.set(cacheKey, theme)\n\n\t\treturn theme\n\t}\n}\n", "import type { CanvasNode } from \"document/models/CanvasTree/index.ts\"\nimport { isRichTextNode } from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport { updateHTMLText } from \"document/models/CanvasTree/nodes/utils/updateHTMLText.ts\"\n\nexport function setNodeText(nodes: CanvasNode[], text: string) {\n\tconst richTextNodes = nodes.filter(isRichTextNode)\n\n\tif (richTextNodes.length === 0) return\n\n\tfor (const node of richTextNodes) {\n\t\tif (node.getTextContent() === text) return\n\n\t\tnode.set({ html: updateHTMLText(node.html, text) })\n\n\t\treturn\n\t}\n}\n", "import { AnnotationKey } from \"@framerjs/framer-runtime/crossorigin\"\nimport {\n\tassert,\n\ttype ModuleIdentifierString,\n\tModuleType,\n\tasGlobalId,\n\tassertNever,\n\texternalModuleIdentifier,\n\tgetServiceMap,\n\tlocalModuleIdentifierForStableName,\n\tparseModuleIdentifier,\n} from \"@framerjs/shared\"\nimport { Dictionary } from \"app/dictionary.ts\"\nimport type {\n\tVectorSetItem as AnnotationVectorSetItem,\n\tFramerVectorSetInfo,\n} from \"code-generation/utils/annotations.ts\"\nimport { isFramerVectorSetInfo } from \"code-generation/utils/annotations.ts\"\nimport type { VekterEngine } from \"document/VekterEngine.ts\"\nimport { vectorSetItems } from \"document/components/chrome/insertSidebar/dataSources/items/vectorSetItems.ts\"\nimport { ExternalModulesListNode } from \"document/models/CanvasTree/nodes/ExternalModuleNode.ts\"\nimport { isExternalModuleNode, isVectorSetNode } from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport { ControlType } from \"library/render/types/PropertyControls.ts\"\nimport { externalVectorSetInfo, localVectorSetInfo } from \"utils/vectorSets.ts\"\nimport type { VectorSetData, VectorSetItemData, VectorSetItemVariable } from \"#framer-plugin/vectors.ts\"\n\nconst builtinSetIds = new Set(vectorSetItems.map(item => item.vectorSetModuleId))\nconst isBuiltinVectorSet = (vectorSetId: string) => builtinSetIds.has(vectorSetId)\n\nexport async function getVectorSets(engine: VekterEngine): Promise<VectorSetData[]> {\n\tconst builtinSets = getBuiltinVectorSets()\n\tconst localSets = getLocalVectorSets(engine)\n\tconst externalSets = getExternalVectorSets(engine)\n\n\treturn [...builtinSets, ...localSets, ...externalSets]\n}\n\nfunction getBuiltinVectorSets(): VectorSetData[] {\n\treturn vectorSetItems.map(item => ({\n\t\tid: item.vectorSetModuleId,\n\t\tname: item.title,\n\t\towner: { type: \"external\", name: Dictionary.Framer },\n\t}))\n}\n\nfunction getExternalVectorSets(engine: VekterEngine): VectorSetData[] {\n\tconst results: VectorSetData[] = []\n\tconst tree = engine.tree\n\n\tfor (const node of ExternalModulesListNode.getModuleNodes(tree)) {\n\t\tif (node.type !== ModuleType.VectorSet || isBuiltinVectorSet(node.id)) continue\n\n\t\tconst framerVectorSetInfo = node.annotation(AnnotationKey.FramerVectorSet)\n\t\tassert(isFramerVectorSetInfo(framerVectorSetInfo), \"Invalid vector set annotation\")\n\t\tassert(node.group?.name, \"Expected vector set to have group name\")\n\n\t\tresults.push({\n\t\t\tid: node.id,\n\t\t\tname: framerVectorSetInfo.name,\n\t\t\towner: { type: \"external\", name: node.group.name },\n\t\t})\n\t}\n\n\treturn results\n}\n\nfunction getLocalVectorSets(engine: VekterEngine): VectorSetData[] {\n\tconst results: VectorSetData[] = []\n\tconst tree = engine.tree\n\n\tfor (const node of tree.root.children) {\n\t\tif (!isVectorSetNode(node)) continue\n\n\t\tresults.push({\n\t\t\tid: node.id,\n\t\t\tname: node.resolveValue(\"name\") || Dictionary.VectorSet,\n\t\t\towner: { type: \"project\" },\n\t\t})\n\t}\n\n\treturn results\n}\n\nexport async function getVectorSetItems(engine: VekterEngine, vectorSetId: string): Promise<VectorSetItemData[]> {\n\tif (isBuiltinVectorSet(vectorSetId)) {\n\t\tawait engine.stores.modulesStore.addOrUpdateVectorSetAndVectors({\n\t\t\tmoduleId: asGlobalId(vectorSetId),\n\t\t\tsaveId: \"\",\n\t\t})\n\t}\n\n\tconst framerVectorSetInfo = getFramerVectorSetInfo(engine, vectorSetId)\n\tassert(framerVectorSetInfo, \"Expected vector set info to exist\")\n\n\treturn framerVectorSetInfo.items.map((vectorItem: AnnotationVectorSetItem) => {\n\t\tconst vectorNode = engine.tree.getNode(asGlobalId(vectorItem.moduleId))\n\t\tlet insertUrl: string | undefined\n\n\t\tif (isExternalModuleNode(vectorNode)) {\n\t\t\tconst parsed = parseModuleIdentifier(vectorNode.codeComponentIdentifier)\n\t\t\tconst { modulesCDN } = getServiceMap()\n\t\t\tinsertUrl = `${modulesCDN}/${vectorItem.moduleId}/${parsed.saveId}/${vectorItem.id}.js`\n\t\t} else {\n\t\t\tconst moduleEntry = engine.stores.modulesStore.getPersistedModuleByGlobalId(vectorItem.moduleId)\n\t\t\tassert(moduleEntry, \"Expected module entry to exist for vector item\")\n\t\t\tinsertUrl = moduleEntry.moduleURL\n\t\t}\n\n\t\tconst lastSlash = insertUrl.lastIndexOf(\"/\")\n\t\tassert(lastSlash !== -1, \"Expected component URL to contain a slash\")\n\t\tconst iconUrl = `${insertUrl.slice(0, lastSlash)}/icon.svg`\n\n\t\treturn {\n\t\t\tid: vectorItem.id,\n\t\t\tname: vectorItem.name,\n\t\t\tinsertUrl,\n\t\t\ticonUrl,\n\t\t\tmoduleId: vectorItem.moduleId,\n\t\t}\n\t})\n}\n\nfunction getFramerVectorSetInfo(engine: VekterEngine, vectorSetId: string): FramerVectorSetInfo | undefined {\n\tconst node = engine.tree.getNode(vectorSetId)\n\tif (!node) return\n\n\tif (isExternalModuleNode(node) && node.type === ModuleType.VectorSet) {\n\t\treturn externalVectorSetInfo(engine.tree, node.id)\n\t}\n\n\tif (!isVectorSetNode(node)) return\n\n\tconst parsed = parseModuleIdentifier(node.instanceIdentifier)\n\treturn localVectorSetInfo(engine.stores.modulesStore, parsed.localId)\n}\n\nexport async function getVectorSetItemVariables(\n\tengine: VekterEngine,\n\tvectorSetItemId: string,\n\tmoduleId: string,\n): Promise<VectorSetItemVariable[]> {\n\tconst node = engine.tree.getNode(asGlobalId(moduleId))\n\n\tlet vectorIdentifier: ModuleIdentifierString\n\n\tif (isExternalModuleNode(node)) {\n\t\tconst parsed = parseModuleIdentifier(node.codeComponentIdentifier)\n\t\tconst externalModuleToPreload = externalModuleIdentifier(\n\t\t\tasGlobalId(moduleId),\n\t\t\tparsed.saveId,\n\t\t\t`${vectorSetItemId}.js`,\n\t\t\t\"default\",\n\t\t)\n\t\tawait engine.stores.modulesStore.preloadExternalModules([externalModuleToPreload])\n\t\tvectorIdentifier = externalModuleToPreload.value\n\t} else {\n\t\tvectorIdentifier = localModuleIdentifierForStableName(ModuleType.Vector, vectorSetItemId, \"default\").value\n\t}\n\n\tconst vectorEntity = engine.componentLoader.componentForIdentifier(vectorIdentifier)\n\tassert(vectorEntity, \"Expected vector entity to exist\")\n\n\tconst variables: VectorSetItemVariable[] = []\n\n\tif (vectorEntity.properties) {\n\t\tfor (const key in vectorEntity.properties) {\n\t\t\tconst propDefinition = vectorEntity.properties[key]\n\t\t\tassert(propDefinition, \"Expected property definition to exist\")\n\t\t\tconst name = propDefinition.title ?? Dictionary.Unknown\n\n\t\t\tswitch (propDefinition.type) {\n\t\t\t\tcase ControlType.Number:\n\t\t\t\t\tvariables.push({ id: key, name, type: \"number\" })\n\t\t\t\t\tbreak\n\t\t\t\tcase ControlType.Color:\n\t\t\t\t\tvariables.push({ id: key, name, type: \"color\" })\n\t\t\t\t\tbreak\n\t\t\t\tcase ControlType.String:\n\t\t\t\tcase ControlType.Boolean:\n\t\t\t\tcase ControlType.Enum:\n\t\t\t\tcase ControlType.Object:\n\t\t\t\tcase ControlType.Array:\n\t\t\t\tcase ControlType.Image:\n\t\t\t\tcase ControlType.ResponsiveImage:\n\t\t\t\tcase ControlType.File:\n\t\t\t\tcase ControlType.Slot:\n\t\t\t\tcase ControlType.Date:\n\t\t\t\tcase ControlType.RichText:\n\t\t\t\tcase ControlType.Link:\n\t\t\t\tcase ControlType.LinkRelValues:\n\t\t\t\tcase ControlType.Font:\n\t\t\t\tcase ControlType.Transition:\n\t\t\t\tcase ControlType.BoxShadow:\n\t\t\t\tcase ControlType.Border:\n\t\t\t\tcase ControlType.BorderRadius:\n\t\t\t\tcase ControlType.EventHandler:\n\t\t\t\tcase ControlType.ChangeHandler:\n\t\t\t\tcase ControlType.FusedNumber:\n\t\t\t\tcase ControlType.PageScope:\n\t\t\t\tcase ControlType.ScrollSectionRef:\n\t\t\t\tcase ControlType.CustomCursor:\n\t\t\t\tcase ControlType.Cursor:\n\t\t\t\tcase ControlType.Padding:\n\t\t\t\tcase ControlType.Gap:\n\t\t\t\tcase ControlType.CollectionReference:\n\t\t\t\tcase ControlType.MultiCollectionReference:\n\t\t\t\tcase ControlType.TrackingId:\n\t\t\t\tcase ControlType.VectorSetItem:\n\t\t\t\tcase ControlType.Location:\n\t\t\t\t\tcontinue\n\t\t\t\tdefault:\n\t\t\t\t\tassertNever(propDefinition)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn variables\n}\n"],
  "mappings": "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Z,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AAAA,IACL,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AAAA,IACL,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACJ,aAAO;AAAA,IAC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",
  "names": ["TypeGuardError", "_assertGuard", "_accessExpressionAsString", "input", "top", "import_react", "record", "tool", "fn", "moduleEntry", "borderColorKey", "dimensions", "link", "isString", "isNumber", "isNull", "isString", "isBoolean", "isString", "isNull", "isNull", "isObject", "isNumber", "isString", "isNull", "isNull", "isString", "isBoolean", "isNull", "isUnknownNode", "FrameNode", "deepFreeze", "_a", "_b", "_engine", "SVGNode", "assert", "DesignPageNode", "shouldBeNever", "isSVGNode", "SVGNode", "isUnknownNode", "isNumber", "isObject", "collectPins", "collectSize", "collectSizeConstraints", "collectAspectRatio", "collectName", "collectVisible", "collectLocked", "collectRotation", "collectBackground", "collectRadius", "collectBorder", "collectOpacity", "collectOverflow", "collectTextTruncation", "collectZIndex", "collectComponentInstanceControls", "collectFont", "collectTextStyle", "collectLink", "collectImageRendering", "collectGridItemSize", "collectGridItemLayout", "isSVGNode", "dimensions", "getResolvedBorderValues", "size", "originalParent", "assert", "assertNever", "buildDeps", "buildInvokeAgentDependencies", "resolveScopeId", "resolveScope", "resolveScopeById", "createAgentConversation", "requestAgentResponse", "createPendingClarificationRace", "serializeClarificationQuestionsForApi", "log", "designPage", "getNode", "node", "variable", "searchRoot"]
}
