diff --git a/src/main/ipcHandlers.ts b/src/main/ipcHandlers.ts index a0ce8d6..1db429f 100644 --- a/src/main/ipcHandlers.ts +++ b/src/main/ipcHandlers.ts @@ -97,11 +97,12 @@ export function registerIpcHandlers(): void { const data = readFileSync(filePath, 'utf-8') attachments.push({ name, mimeType: 'text/plain', data }) } else if (ext === '.pdf') { - // Dynamically require pdf-parse to avoid CJS/ESM issues at module load time + // pdf-parse v2 API: new PDFParse({ data: buffer }) then .getText() // eslint-disable-next-line @typescript-eslint/no-require-imports - const pdfParse = require('pdf-parse') as (buf: Buffer) => Promise<{ text: string }> + const { PDFParse } = require('pdf-parse') as { PDFParse: new (opts: { data: Uint8Array }) => { getText: () => Promise<{ text: string }> } } const buffer = readFileSync(filePath) - const parsed = await pdfParse(buffer) + const parser = new PDFParse({ data: new Uint8Array(buffer) }) + const parsed = await parser.getText() attachments.push({ name, mimeType: 'application/pdf', data: parsed.text }) } } diff --git a/src/renderer/components/AIChat/Chat.css b/src/renderer/components/AIChat/Chat.css index e3a12a4..fbbccc7 100644 --- a/src/renderer/components/AIChat/Chat.css +++ b/src/renderer/components/AIChat/Chat.css @@ -98,6 +98,27 @@ border-color: var(--text-muted); } +/* ── Pending attachment indicator (between tab bar and messages) ─── */ +.chat-attachment-indicator { + display: flex; + align-items: center; + gap: 6px; + padding: 5px 14px; + background: color-mix(in srgb, var(--accent) 10%, transparent); + border-bottom: 1px solid color-mix(in srgb, var(--accent) 22%, transparent); + font-size: 11px; + font-weight: 600; + letter-spacing: 0.04em; + color: var(--accent); + flex-shrink: 0; +} + +.chat-attachment-indicator-icon { + font-size: 15px; + line-height: 1; + opacity: 0.85; +} + .chat-messages { flex: 1; overflow-y: auto; diff --git a/src/renderer/components/AIChat/ChatInput.tsx b/src/renderer/components/AIChat/ChatInput.tsx index 9c782dc..be4a837 100644 --- a/src/renderer/components/AIChat/ChatInput.tsx +++ b/src/renderer/components/AIChat/ChatInput.tsx @@ -5,6 +5,7 @@ import type { MenuItem } from '../FileTree/ContextMenu' interface Props { onSend: (text: string, attachments: Attachment[]) => void + onAttachmentsChange?: (count: number) => void disabled: boolean } @@ -14,19 +15,24 @@ function attachmentIcon(mimeType: string): string { return '📝' } -export function ChatInput({ onSend, disabled }: Props): JSX.Element { +export function ChatInput({ onSend, onAttachmentsChange, disabled }: Props): JSX.Element { const [value, setValue] = useState('') const [attachments, setAttachments] = useState([]) const [menuPos, setMenuPos] = useState<{ x: number; y: number } | null>(null) const [hasSelection, setHasSelection] = useState(false) const textareaRef = useRef(null) + const updateAttachments = (next: Attachment[]): void => { + setAttachments(next) + onAttachmentsChange?.(next.length) + } + const submit = (): void => { const trimmed = value.trim() if ((!trimmed && attachments.length === 0) || disabled) return onSend(trimmed, attachments) setValue('') - setAttachments([]) + updateAttachments([]) if (textareaRef.current) { textareaRef.current.style.height = 'auto' } @@ -54,12 +60,18 @@ export function ChatInput({ onSend, disabled }: Props): JSX.Element { setAttachments((prev) => { const existingNames = new Set(prev.map((a) => a.name)) const fresh = picked.filter((a) => !existingNames.has(a.name)) - return [...prev, ...fresh] + const next = [...prev, ...fresh] + onAttachmentsChange?.(next.length) + return next }) } const removeAttachment = (name: string): void => { - setAttachments((prev) => prev.filter((a) => a.name !== name)) + setAttachments((prev) => { + const next = prev.filter((a) => a.name !== name) + onAttachmentsChange?.(next.length) + return next + }) } const canSend = !disabled && (value.trim().length > 0 || attachments.length > 0) diff --git a/src/renderer/components/AIChat/ChatPanel.tsx b/src/renderer/components/AIChat/ChatPanel.tsx index bfbfb6e..f5ed241 100644 --- a/src/renderer/components/AIChat/ChatPanel.tsx +++ b/src/renderer/components/AIChat/ChatPanel.tsx @@ -28,6 +28,7 @@ export function ChatPanel(): JSX.Element { } = useEditorStore() const [tab, setTab] = useState('chat') + const [pendingAttachmentCount, setPendingAttachmentCount] = useState(0) const scrollRef = useRef(null) const prevAnnotationCountRef = useRef(annotations.length) @@ -122,6 +123,14 @@ export function ChatPanel(): JSX.Element { )} + {/* ── Pending-attachment indicator ── */} + {pendingAttachmentCount > 0 && ( +
+ + {pendingAttachmentCount} file{pendingAttachmentCount !== 1 ? 's' : ''} attached to next message +
+ )} + {/* ── Panel content ── */} {tab === 'feedback' ? ( @@ -151,7 +160,11 @@ export function ChatPanel(): JSX.Element { )} - + )} diff --git a/src/renderer/components/Editor/MarkdownEditor.tsx b/src/renderer/components/Editor/MarkdownEditor.tsx index 1e22dc7..0e96d3c 100644 --- a/src/renderer/components/Editor/MarkdownEditor.tsx +++ b/src/renderer/components/Editor/MarkdownEditor.tsx @@ -1,6 +1,6 @@ import { useEffect, useRef, useState } from 'react' import { EditorView, Decoration, type DecorationSet, hoverTooltip, keymap } from '@codemirror/view' -import { EditorState, StateField, StateEffect, RangeSetBuilder, Compartment, Transaction } from '@codemirror/state' +import { EditorState, StateField, StateEffect, Annotation, RangeSetBuilder, Compartment, Transaction } from '@codemirror/state' import { markdown } from '@codemirror/lang-markdown' import { syntaxHighlighting, defaultHighlightStyle } from '@codemirror/language' import { history, defaultKeymap, historyKeymap, invertedEffects, selectAll } from '@codemirror/commands' @@ -15,6 +15,10 @@ import './Editor.css' // StateEffect to push new annotations into the editor export const setAnnotationsEffect = StateEffect.define() +// Annotation tag that marks an auto-dismiss transaction so annotationHistory +// records its inverse, making the dismissal undoable with Cmd+Z. +const userDismissAnnotation = Annotation.define() + // StateField stores the raw annotation array for hover lookup. // Positions are mapped through every document change so the field always // reflects where annotations actually are in the current document. @@ -56,9 +60,21 @@ function schedulePendingDismiss(id: string): void { if (existing !== undefined) clearTimeout(existing) dismissTimers.set(id, setTimeout(() => { dismissTimers.delete(id) - const { removeAnnotation } = useEditorStore.getState() - removeAnnotation(id) tooltipAnalysisCache.delete(id) + const view = currentEditorView + if (!view) { + // No editor mounted — fall back to direct store update (not undoable) + useEditorStore.getState().removeAnnotation(id) + return + } + // Dispatch a tagged CM transaction so annotationHistory records the inverse + // and the dismissal can be undone with Cmd+Z. + const remaining = view.state.field(rawAnnotationsField).filter(a => a.id !== id) + view.dispatch({ + effects: setAnnotationsEffect.of(remaining), + annotations: [userDismissAnnotation.of(true)] + }) + // Store sync is handled by the updateListener detecting userDismissAnnotation. }, EDIT_DISMISS_MS)) } @@ -259,16 +275,16 @@ const annotationField = StateField.define({ provide: (f) => EditorView.decorations.from(f) }) -// Teach CM's undo/redo history about annotation state so that Cmd+Z after -// an Apply also restores the highlight. For every transaction that carries a -// setAnnotationsEffect we record the *previous* annotation list as the -// inverse effect; CM history replays it on undo. +// Teach CM's undo/redo history about annotation state so Cmd+Z can restore +// highlights. Records the previous annotation list as the inverse effect for: +// • Apply suggestion (docChanged + setAnnotationsEffect) +// • Edit-triggered auto-dismiss (tagged with userDismissAnnotation) +// External updates (critique loads, store clears) have neither flag and must +// NOT enter the undo stack or Undo would remove highlights unexpectedly. const annotationHistory = invertedEffects.of(tr => { - // Only track annotation changes that accompany a document edit (i.e. an - // Apply). External updates — critique results loading, store clears — have - // no doc change and must NOT enter the undo stack, otherwise Undo removes - // highlights before touching any text. - if (tr.docChanged && tr.effects.some(e => e.is(setAnnotationsEffect))) { + const isApply = tr.docChanged && tr.effects.some(e => e.is(setAnnotationsEffect)) + const isAutoDismiss = tr.annotation(userDismissAnnotation) === true + if (isApply || isAutoDismiss) { const before = tr.startState.field(rawAnnotationsField) return [setAnnotationsEffect.of(before)] } @@ -389,6 +405,14 @@ export function MarkdownEditor(): JSX.Element { return } + // When the debounce timer fires it dispatches a tagged CM transaction + // (no doc change). Sync the resulting annotation list to the store so + // the feedback panel reflects the dismissal immediately. + if (update.transactions.some(tr => tr.annotation(userDismissAnnotation) === true)) { + useEditorStore.getState().setAnnotations(update.state.field(rawAnnotationsField)) + return + } + // Auto-dismiss annotations whose highlighted text the user edits. // We check the pre-edit annotation positions (startState) against // each changed range reported by the transaction. @@ -474,12 +498,17 @@ export function MarkdownEditor(): JSX.Element { // Merge the store's list (which annotations exist) with CM-tracked positions // (where they actually are after any edits), so that dismissing or adding an // annotation doesn't reset surviving highlights to stale store positions. + // Marked addToHistory.of(false) so this sync dispatch never creates an undo + // step — only Apply and tagged auto-dismissals should be undoable. useEffect(() => { const view = viewRef.current if (!view) return const trackedById = new Map(view.state.field(rawAnnotationsField).map(a => [a.id, a])) const toDispatch = annotations.map(a => trackedById.get(a.id) ?? a) - view.dispatch({ effects: setAnnotationsEffect.of(toDispatch) }) + view.dispatch({ + effects: setAnnotationsEffect.of(toDispatch), + annotations: [Transaction.addToHistory.of(false)] + }) }, [annotations]) // Reconfigure theme when font size or colour theme changes diff --git a/tsconfig.web.tsbuildinfo b/tsconfig.web.tsbuildinfo index 11c1cd5..3d9b94e 100644 --- a/tsconfig.web.tsbuildinfo +++ b/tsconfig.web.tsbuildinfo @@ -1 +1 @@ -{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.promise.d.ts","./node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/typescript/lib/lib.esnext.float16.d.ts","./node_modules/typescript/lib/lib.esnext.error.d.ts","./node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/prop-types/index.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/zustand/vanilla.d.ts","./node_modules/zustand/react.d.ts","./node_modules/zustand/index.d.ts","./src/renderer/types/editor.ts","./src/renderer/store/editorstore.ts","./node_modules/@types/react-dom/index.d.ts","./src/renderer/components/filetree/contextmenu.tsx","./src/renderer/components/filetree/filetreenode.tsx","./src/renderer/components/filetree/filetree.tsx","./node_modules/@codemirror/state/dist/index.d.ts","./node_modules/style-mod/src/style-mod.d.ts","./node_modules/@codemirror/view/dist/index.d.ts","./node_modules/@lezer/common/dist/index.d.ts","./node_modules/@lezer/lr/dist/index.d.ts","./node_modules/@lezer/highlight/dist/index.d.ts","./node_modules/@codemirror/language/dist/index.d.ts","./node_modules/@lezer/markdown/dist/index.d.ts","./node_modules/@codemirror/lang-markdown/dist/index.d.ts","./node_modules/@codemirror/commands/dist/index.d.ts","./node_modules/marked/lib/marked.d.ts","./node_modules/@types/trusted-types/lib/index.d.ts","./node_modules/dompurify/dist/purify.cjs.d.ts","./src/renderer/components/editor/markdowneditor.tsx","./src/renderer/components/aichat/chatmessageitem.tsx","./src/renderer/components/aichat/chatinput.tsx","./src/renderer/components/feedback/feedbackpanel.tsx","./src/renderer/utils/annotationparser.ts","./src/renderer/components/aichat/chatpanel.tsx","./src/renderer/utils/passivevoice.ts","./src/renderer/components/toolbar/analysistoolbar.tsx","./src/renderer/components/revisions/revisionpanel.tsx","./src/renderer/app.tsx","./node_modules/@types/react-dom/client.d.ts","./src/renderer/main.tsx","./src/renderer/types/global.d.ts","./node_modules/vite/types/hmrpayload.d.ts","./node_modules/vite/types/customevent.d.ts","./node_modules/vite/types/hot.d.ts","./node_modules/vite/types/importglob.d.ts","./node_modules/vite/types/importmeta.d.ts","./node_modules/vite/client.d.ts"],"fileIdsList":[[96,98],[96,98,102,103],[96,97,98,99,100,101],[96,97],[99],[99,101],[86],[83,84,85],[107],[126],[122],[123],[124,125],[87,88],[87],[86,91,95,109,114,116,117,127],[86,90,93],[86,90,106,108],[86,90,91,110,111,112,113,127],[86,90,91,93,96,98,102,104,105,106,108,127],[86,90,91,106,108,109,127],[86,92,127],[91,94,127],[86,90,91,93],[86,91,113,115,127],[86,118,119,127],[89,90],[90]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"035312d4945d13efa134ae482f6dc56a1a9346f7ac3be7ccbad5741058ce87f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"41f45ed6b4cd7b8aec2e4888a47d5061ee1020f89375b57d388cfe1f05313991","impliedFormat":1},{"version":"95e6580d60d580c8cd6a42d3853eda0da840d64139a58ecb56ed9a2f8ff42d6e","impliedFormat":1},{"version":"bec45e0777e88662fdbb5e8ef48f3fd1a474768075abe838b184973025c94244","impliedFormat":1},{"version":"339b224df0349d04cb3247eace4fe7796e4f4b96804efc6dea0ab55919f03360","signature":"b54673e2f55a72a7bf5dd9634aa3325a13c9aad30ad5a0257bc2e1e145c59805"},{"version":"103625aa3b786c06442a8d3f247697baf9dcd6636c982118f535af9b8516c04d","signature":"89d48e476762b2992eadfa0bb4584ca312acad9cf695353a0bc8bb8f3e1b8ebd"},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"a5cf985a35fb2b08b3b07d9720ca70c57709026130c0736cbd53129477a939ea","signature":"b575f95452ae690f0929807edfceadc0375380c3a4ca24c64c9e9e08a8de0df3"},{"version":"24d4ad1205eac8da69139cf6eade3a46f9bf3ea16304e7d87b2a59c54d0cd203","signature":"8d7dd99713c7f63750f4f2b986bfe8425770cb76d781bb6393c376b621bfad14"},"82653759516820924b95e6fb9c11c192cecd31d7c24f3d249df4b9df359795f0",{"version":"97e0a23ac45763f990b704b66cabbb48df07eddc5bf46054a34d72e350f1088e","impliedFormat":99},{"version":"fe9dd679e568dc2a0e5e6959f77b53f8bc1f126d46b0d17631347ba57470b808","impliedFormat":99},{"version":"86245b010961138b1c4ce2e0610b8b9577157dac3f7eeaf3d20017ee01e7760b","impliedFormat":99},{"version":"54e76a6612d9b83fde2b1cc0569f20c5b8d38f7a860b88a1d9d805399bfeead3","impliedFormat":99},{"version":"5a4ddf80b1bdab540fe5d3f837921e9e8dc559a1a319e75451c30f0d5f62ac0f","impliedFormat":99},{"version":"0c6ef3deba595b7dc7b4ee09342435c7a2392fe7752e335acdedfe2476529638","impliedFormat":99},{"version":"00fab36b3130e6d7a2316d0583a2e2a4d328a6f4e01817d90d8b07baad69b4e1","impliedFormat":99},{"version":"66f19adc323e2146c965f004478fd3ea9d9a0aa4a915c5f32564094a9d82f5c6","impliedFormat":99},{"version":"c1a9b5cd932e681580e597e21bfd3905e79e2a08b626a8904371e0fb70b079f1","impliedFormat":99},{"version":"126eac20336c7374782d571be802e7b7adb9fc5b24c0dd0dfc37bfc9774d9182","impliedFormat":99},{"version":"dae5b9f74f24c35a89c21652878572a1be244d0ee0afe3491e83155ec3dd9f75","impliedFormat":99},{"version":"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e","impliedFormat":1},{"version":"89f32f220b6f0c84465bd7901e64b5a3a44866de5dd8080f8d1bdc384d8b7997","impliedFormat":1},{"version":"db1bcc8aaeb72ed4f7bcad47df0be4677651f26fabd757bbba8eb828cdcf235c","signature":"5266ff8bfbee12f133602ac3a336788704e5d9212b8946ed5014ac1ab993e977"},{"version":"3e6c6ea689e6ef20fc6791930cc42769da503b7f77b88ecb47132db110e57cc8","signature":"e3416975871a744c981824610c863d257d59fba4a9237fc4775f8524f4089a8e"},{"version":"2398094188fabb55a22bd93ebd043dd9a9ad7c1964dc7be61cde2e969b902a35","signature":"d4f8405fdb049a316ee7c01ded4c0f64a53cff1617058fa1a0397a4e83bfc7b8"},{"version":"59604835f6c12ce02913dc5a19784c7cb6c846aaf42a4c53ded86a9f9a2f93a9","signature":"7591de44ae9fe7f11e143160c5403402511983903252b6954e84714f9e683ad3"},{"version":"7d61fa11427ce118d0569388ac7d775e80a569bf4ad7e9b2d165a023b40c531e","signature":"5c3d4e9ba20f617cd1a4b40d2894156367263f0f5980f6a9fbd8c49773d6143a"},"4ebb659a0e5cef3b44a7f36045b7b3a8d90d71b04db89ca96f5f4149b6f5e1f2",{"version":"31d3031c0ef9f45cdfc31daf77e1657b6864d27029b67bd5c50a835aa82f91c2","signature":"45c78136329738c3ebc5db991658d0d04f4e72ff8667ac00d6d8014451adf901"},"2237880c7b8faaf9fbbf816b365a9e168e39bc98bb2bacf6ea7afa04562ec0fd","475e69d3c4c4cae6535caf11b75fde5722d01b1f17985531de451c667ae8d81f","2b2b884cf0cacb071a440f46ba12fd76755f2661638032184a50af16adba359d",{"version":"05321b823dd3781d0b6aac8700bfdc0c9181d56479fe52ba6a40c9196fd661a8","impliedFormat":1},"5203b00cdd66aa00aa1b536240141759c5361b6963e4b6455a6ee29e1be18edc",{"version":"027d2615e56c3d1d05fea7d6f163a6d621a455b0b45c053971b3aef836991c33","affectsGlobalScope":true},{"version":"282f98006ed7fa9bb2cd9bdbe2524595cfc4bcd58a0bb3232e4519f2138df811","impliedFormat":1},{"version":"6222e987b58abfe92597e1273ad7233626285bc2d78409d4a7b113d81a83496b","impliedFormat":1},{"version":"cbe726263ae9a7bf32352380f7e8ab66ee25b3457137e316929269c19e18a2be","impliedFormat":1},{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"4025a454b1ca489b179ee8c684bdd70ff8c1967e382076ade53e7e4653e1daec","affectsGlobalScope":true,"impliedFormat":1},{"version":"984c09345059b76fc4221c2c54e53511f4c27a0794dfd6e9f81dc60f0b564e05","affectsGlobalScope":true,"impliedFormat":99}],"root":[90,91,[93,95],[109,118],120,121],"options":{"composite":true,"esModuleInterop":true,"jsx":1,"module":99,"noImplicitAny":false,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"skipLibCheck":true,"sourceMap":false,"strict":true,"target":99},"referencedMap":[[105,1],[104,2],[102,3],[98,4],[101,5],[100,5],[103,6],[119,7],[92,7],[86,8],[108,9],[127,10],[123,11],[124,12],[126,13],[89,14],[88,15],[118,16],[111,17],[110,18],[114,19],[109,20],[112,21],[93,22],[95,23],[94,24],[117,21],[116,25],[120,26],[91,27],[121,28],[113,28],[115,28]],"affectedFilesPendingEmit":[[118,17],[111,17],[110,17],[114,17],[109,17],[112,17],[93,17],[95,17],[94,17],[117,17],[116,17],[120,17],[91,17],[90,17],[113,17],[115,17]],"emitSignatures":[90,91,93,94,95,109,110,111,112,113,114,115,116,117,118,120],"version":"5.9.3"} \ No newline at end of file +{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.promise.d.ts","./node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/typescript/lib/lib.esnext.float16.d.ts","./node_modules/typescript/lib/lib.esnext.error.d.ts","./node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/prop-types/index.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/zustand/vanilla.d.ts","./node_modules/zustand/react.d.ts","./node_modules/zustand/index.d.ts","./src/renderer/types/editor.ts","./src/renderer/store/editorstore.ts","./node_modules/@types/react-dom/index.d.ts","./src/renderer/components/filetree/contextmenu.tsx","./src/renderer/components/filetree/filetreenode.tsx","./src/renderer/components/filetree/filetree.tsx","./node_modules/@codemirror/state/dist/index.d.ts","./node_modules/style-mod/src/style-mod.d.ts","./node_modules/@codemirror/view/dist/index.d.ts","./node_modules/@lezer/common/dist/index.d.ts","./node_modules/@lezer/lr/dist/index.d.ts","./node_modules/@lezer/highlight/dist/index.d.ts","./node_modules/@codemirror/language/dist/index.d.ts","./node_modules/@lezer/markdown/dist/index.d.ts","./node_modules/@codemirror/lang-markdown/dist/index.d.ts","./node_modules/@codemirror/commands/dist/index.d.ts","./node_modules/marked/lib/marked.d.ts","./node_modules/@types/trusted-types/lib/index.d.ts","./node_modules/dompurify/dist/purify.cjs.d.ts","./src/renderer/components/editor/markdowneditor.tsx","./src/renderer/components/aichat/chatmessageitem.tsx","./src/renderer/components/aichat/chatinput.tsx","./src/renderer/components/feedback/feedbackpanel.tsx","./src/renderer/utils/annotationparser.ts","./src/renderer/components/aichat/chatpanel.tsx","./src/renderer/utils/passivevoice.ts","./src/renderer/components/toolbar/analysistoolbar.tsx","./src/renderer/components/revisions/revisionpanel.tsx","./src/renderer/app.tsx","./node_modules/@types/react-dom/client.d.ts","./src/renderer/main.tsx","./src/renderer/types/global.d.ts","./node_modules/vite/types/hmrpayload.d.ts","./node_modules/vite/types/customevent.d.ts","./node_modules/vite/types/hot.d.ts","./node_modules/vite/types/importglob.d.ts","./node_modules/vite/types/importmeta.d.ts","./node_modules/vite/client.d.ts"],"fileIdsList":[[96,98],[96,98,102,103],[96,97,98,99,100,101],[96,97],[99],[99,101],[86],[83,84,85],[107],[126],[122],[123],[124,125],[87,88],[87],[86,91,95,109,114,116,117,127],[86,90,93],[86,90,106,108],[86,90,91,110,111,112,113,127],[86,90,91,93,96,98,102,104,105,106,108,127],[86,90,91,106,108,109,127],[86,92,127],[91,94,127],[86,90,91,93],[86,91,113,115,127],[86,118,119,127],[89,90],[90]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"035312d4945d13efa134ae482f6dc56a1a9346f7ac3be7ccbad5741058ce87f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"41f45ed6b4cd7b8aec2e4888a47d5061ee1020f89375b57d388cfe1f05313991","impliedFormat":1},{"version":"95e6580d60d580c8cd6a42d3853eda0da840d64139a58ecb56ed9a2f8ff42d6e","impliedFormat":1},{"version":"bec45e0777e88662fdbb5e8ef48f3fd1a474768075abe838b184973025c94244","impliedFormat":1},{"version":"339b224df0349d04cb3247eace4fe7796e4f4b96804efc6dea0ab55919f03360","signature":"b54673e2f55a72a7bf5dd9634aa3325a13c9aad30ad5a0257bc2e1e145c59805"},{"version":"103625aa3b786c06442a8d3f247697baf9dcd6636c982118f535af9b8516c04d","signature":"89d48e476762b2992eadfa0bb4584ca312acad9cf695353a0bc8bb8f3e1b8ebd"},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"a5cf985a35fb2b08b3b07d9720ca70c57709026130c0736cbd53129477a939ea","signature":"b575f95452ae690f0929807edfceadc0375380c3a4ca24c64c9e9e08a8de0df3"},{"version":"24d4ad1205eac8da69139cf6eade3a46f9bf3ea16304e7d87b2a59c54d0cd203","signature":"8d7dd99713c7f63750f4f2b986bfe8425770cb76d781bb6393c376b621bfad14"},"82653759516820924b95e6fb9c11c192cecd31d7c24f3d249df4b9df359795f0",{"version":"97e0a23ac45763f990b704b66cabbb48df07eddc5bf46054a34d72e350f1088e","impliedFormat":99},{"version":"fe9dd679e568dc2a0e5e6959f77b53f8bc1f126d46b0d17631347ba57470b808","impliedFormat":99},{"version":"86245b010961138b1c4ce2e0610b8b9577157dac3f7eeaf3d20017ee01e7760b","impliedFormat":99},{"version":"54e76a6612d9b83fde2b1cc0569f20c5b8d38f7a860b88a1d9d805399bfeead3","impliedFormat":99},{"version":"5a4ddf80b1bdab540fe5d3f837921e9e8dc559a1a319e75451c30f0d5f62ac0f","impliedFormat":99},{"version":"0c6ef3deba595b7dc7b4ee09342435c7a2392fe7752e335acdedfe2476529638","impliedFormat":99},{"version":"00fab36b3130e6d7a2316d0583a2e2a4d328a6f4e01817d90d8b07baad69b4e1","impliedFormat":99},{"version":"66f19adc323e2146c965f004478fd3ea9d9a0aa4a915c5f32564094a9d82f5c6","impliedFormat":99},{"version":"c1a9b5cd932e681580e597e21bfd3905e79e2a08b626a8904371e0fb70b079f1","impliedFormat":99},{"version":"126eac20336c7374782d571be802e7b7adb9fc5b24c0dd0dfc37bfc9774d9182","impliedFormat":99},{"version":"dae5b9f74f24c35a89c21652878572a1be244d0ee0afe3491e83155ec3dd9f75","impliedFormat":99},{"version":"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e","impliedFormat":1},{"version":"89f32f220b6f0c84465bd7901e64b5a3a44866de5dd8080f8d1bdc384d8b7997","impliedFormat":1},{"version":"b58088a139975e46b0852b180a2c00667fe114f9f27068da2850b3e278ab1fb2","signature":"5266ff8bfbee12f133602ac3a336788704e5d9212b8946ed5014ac1ab993e977"},{"version":"3e6c6ea689e6ef20fc6791930cc42769da503b7f77b88ecb47132db110e57cc8","signature":"e3416975871a744c981824610c863d257d59fba4a9237fc4775f8524f4089a8e"},{"version":"8df5663def83c43e165e3aea6a868195ba2ad761b250598a167024ef90249fda","signature":"cb073ca03ca4fcf1f06505e9bd12f09a6ee59968524c6c10143883d31f29f4b7"},{"version":"59604835f6c12ce02913dc5a19784c7cb6c846aaf42a4c53ded86a9f9a2f93a9","signature":"7591de44ae9fe7f11e143160c5403402511983903252b6954e84714f9e683ad3"},{"version":"7d61fa11427ce118d0569388ac7d775e80a569bf4ad7e9b2d165a023b40c531e","signature":"5c3d4e9ba20f617cd1a4b40d2894156367263f0f5980f6a9fbd8c49773d6143a"},{"version":"12f5d800e559458b690c809a52f0b0aadf975c4461e7b82cbf7d674ce2dc891a","signature":"f5980acc8aeeb2bb630713fc9e71903da2187e671e0dd8dd335441263b062427"},{"version":"31d3031c0ef9f45cdfc31daf77e1657b6864d27029b67bd5c50a835aa82f91c2","signature":"45c78136329738c3ebc5db991658d0d04f4e72ff8667ac00d6d8014451adf901"},"2237880c7b8faaf9fbbf816b365a9e168e39bc98bb2bacf6ea7afa04562ec0fd","475e69d3c4c4cae6535caf11b75fde5722d01b1f17985531de451c667ae8d81f","2b2b884cf0cacb071a440f46ba12fd76755f2661638032184a50af16adba359d",{"version":"05321b823dd3781d0b6aac8700bfdc0c9181d56479fe52ba6a40c9196fd661a8","impliedFormat":1},"5203b00cdd66aa00aa1b536240141759c5361b6963e4b6455a6ee29e1be18edc",{"version":"027d2615e56c3d1d05fea7d6f163a6d621a455b0b45c053971b3aef836991c33","affectsGlobalScope":true},{"version":"282f98006ed7fa9bb2cd9bdbe2524595cfc4bcd58a0bb3232e4519f2138df811","impliedFormat":1},{"version":"6222e987b58abfe92597e1273ad7233626285bc2d78409d4a7b113d81a83496b","impliedFormat":1},{"version":"cbe726263ae9a7bf32352380f7e8ab66ee25b3457137e316929269c19e18a2be","impliedFormat":1},{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"4025a454b1ca489b179ee8c684bdd70ff8c1967e382076ade53e7e4653e1daec","affectsGlobalScope":true,"impliedFormat":1},{"version":"984c09345059b76fc4221c2c54e53511f4c27a0794dfd6e9f81dc60f0b564e05","affectsGlobalScope":true,"impliedFormat":99}],"root":[90,91,[93,95],[109,118],120,121],"options":{"composite":true,"esModuleInterop":true,"jsx":1,"module":99,"noImplicitAny":false,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"skipLibCheck":true,"sourceMap":false,"strict":true,"target":99},"referencedMap":[[105,1],[104,2],[102,3],[98,4],[101,5],[100,5],[103,6],[119,7],[92,7],[86,8],[108,9],[127,10],[123,11],[124,12],[126,13],[89,14],[88,15],[118,16],[111,17],[110,18],[114,19],[109,20],[112,21],[93,22],[95,23],[94,24],[117,21],[116,25],[120,26],[91,27],[121,28],[113,28],[115,28]],"affectedFilesPendingEmit":[[118,17],[111,17],[110,17],[114,17],[109,17],[112,17],[93,17],[95,17],[94,17],[117,17],[116,17],[120,17],[91,17],[90,17],[113,17],[115,17]],"emitSignatures":[90,91,93,94,95,109,110,111,112,113,114,115,116,117,118,120],"version":"5.9.3"} \ No newline at end of file