diff --git a/docs/performance/performance-playbook.md b/docs/performance/performance-playbook.md new file mode 100644 index 000000000..c625ba67f --- /dev/null +++ b/docs/performance/performance-playbook.md @@ -0,0 +1,515 @@ +# Performance loading playbook + +Status: current research snapshot, accessed 2026-09-19. + +This document answers the loading and navigation questions for DebateLab before +implementation. It is intentionally limited to supported browser and library +APIs. It does not authorize a router migration, data prefetching of private +records, or a bundle-layout redesign. + +## Current DebateLab baseline + +The checked-out app is a Vite React SPA using declarative `BrowserRouter`: + +- React `18.3.1` and React DOM `18.3.1`. +- React Router DOM `7.18.3`. +- Vite `7.3.6` with `@vitejs/plugin-react-swc`. +- TanStack React Query `5.102.8`. +- The route tree is in `src/App.tsx`. Every page is already loaded through a + top-level `lazy(() => import(...))`; each route has a `Suspense` boundary and + `RouteErrorBoundary`. +- `vite.config.ts` leaves chunking and module-preload dependency computation to + Vite. It does not define `manualChunks`. +- `public/sw.js` uses a versioned cache, network-first navigations, and + cache-first same-origin scripts, styles, images, fonts, and `/assets/`. + Supabase API paths are excluded from the service worker. +- `MotionConfig reducedMotion="user"`, CSS `prefers-reduced-motion` rules, and + several existing `role="status"`/`aria-busy` states already cover parts of + the accessibility contract. + +The source tree is therefore close to the native solution. The next change +should make route import functions reusable for intent prefetch and should keep +data loading separate from code loading. + +## Findings + +### Core Web Vitals define the measurement target + +Sources: + +- +- + +Accessed: 2026-09-19. + +Supported API or tool: LCP, INP, and CLS field metrics; the `web-vitals` +library's `onLCP`, `onINP`, and `onCLS` callbacks; reporting by the 75th +percentile, split by mobile and desktop. + +Browser constraints: these are browser-observed metrics, not a single +cross-browser synchronous API. Lab tools and local traces do not replace field +data. CLS may remain open for the page lifetime, and INP requires real input. + +Failure mode: an average hides slow devices and networks. A local cold load can +look good while the 75th percentile of real mobile users is poor. Blocking +analytics can also hurt LCP, and expensive analytics work can hurt INP. + +DebateLab implication: measure and report at least LCP <= 2.5 s, INP <= 200 ms, +and CLS <= 0.1 at the 75th percentile. Keep startup telemetry asynchronous +and non-blocking. Treat the existing production filmstrips and DevTools traces +as lab evidence, not as a Core Web Vitals pass. + +### Chrome Performance, Network, and Coverage answer different questions + +Sources: + +- +- +- +- +- + +Accessed: 2026-09-19. + +Supported API or tool: Chrome DevTools Performance records CPU/runtime and load +traces, local LCP/INP/CLS, and screenshots. Network records requests, sizes, +timings, initiators, cache behavior, offline mode, and throttled networks. +Coverage records used and unused JavaScript/CSS bytes during a reload and the +interactions performed while recording. + +Browser constraints: these are Chromium DevTools tools. The Network panel only +records while DevTools is open. Coverage measures the paths exercised in that +recording, not every possible user path. Throttling is a lab simulation, not a +field network measurement. + +Failure mode: a green local trace can miss a later interaction, a different +browser, or a slow device. Coverage can label code unused simply because the +test did not open the feature. Disabling cache is needed for a first-visit +comparison; a warm browser can hide the cost of route imports. + +DebateLab implication: keep a repeatable cold and warm navigation matrix. For +each change, record a fresh Chromium trace with cache disabled, then repeat +warm navigation and at least one throttled mobile profile. Use Coverage to +validate that startup does not execute feature-only modules, and Network to +check that a proposed prefetch starts only after intent. Do not turn a DevTools +trace into a field-performance claim. + +### React `lazy` and `Suspense` are the native code-loading boundary + +Sources: + +- +- + +Accessed: 2026-09-19. + +Supported API: `lazy(() => import('./Page'))` defers a component's module until +first render. React caches the loader promise and the resolved component. +`Suspense` renders its fallback while the lazy component suspends. A rejected +lazy import is thrown to the nearest Error Boundary. + +Browser constraints: dynamic `import()` support and chunk loading come from the +bundler/browser target. `lazy` requires a default component export. Suspense +does not detect data fetched inside an Effect or event handler. + +Failure mode: a fallback replaces the nearest boundary's content when an +already revealed tree suspends during an urgent update. A first render that +suspends does not preserve state before it mounts. A failed or evicted chunk +must reach an Error Boundary or the route is unusable. + +DebateLab implication: keep one stable loader function per page and pass that +function to both `lazy` and an intent prefetch helper. Keep `RouteErrorBoundary` +around the route. Use an immediate destination-shaped route fallback for every +route change; use smaller boundaries for independent panels. Do not preload all +page modules at startup. + +### React transitions can retain a prior screen, but DebateLab must not use that for route changes + +Sources: + +- +- +- +- +- + +Accessed: 2026-09-19. + +Supported API: installed `react-router-dom@7.18.3` exposes declarative +`BrowserRouter` with `useTransitions`, while React's `startTransition` marks a +state update as non-urgent. If that +update suspends, React can keep already revealed content visible while the new +tree loads. Newly rendered boundaries may still show their own fallbacks. +React Router's declarative `BrowserRouter` accepts `useTransitions`; when it is +undefined, router state updates use `React.startTransition`, and +`useTransitions={false}` opts out. React Router v7 makes the transition-wrapped +state-update behavior the default. + +Browser constraints: this is render scheduling, not a transaction across the +URL, route data, effects, focus, and controls. `BrowserRouter` uses the browser +History API and Declarative Mode does not expose Data Mode's navigation state. +The enhanced `useTransitions` behavior described for Data/Framework Mode +requires React 19, while DebateLab is on React 18.3.1. A transition can be +interrupted by a newer update. + +Failure mode: the browser history URL can change while the old route is still +painted. Buttons, forms, and links in that old route remain interactive unless +the app explicitly gates them. Route effects keyed from `location.pathname` +can also observe the new URL before the destination content is visible. A +status or control gate reduces harm, but it does not remove this URL/content +mismatch. + +DebateLab implication: reject prior-route retention for route changes in this +BrowserRouter architecture. Set `useTransitions={false}` for the declarative +router and show an immediate route-shaped skeleton beneath the persistent app +shell. Keep `startTransition` available for non-route state where retaining +content cannot create a URL/content mismatch. Do not claim that a pending +status or stale-control gate makes route retention consistent. + +### React Router 7.18 does not prefetch BrowserRouter route modules natively + +Sources: + +- +- +- +- + +Accessed: 2026-09-19. + +Supported API: React Router's `Link prefetch="intent|render|viewport"` and +`PrefetchPageLinks` emit module/data prefetch links in Framework Mode. `discover` +controls lazy route discovery in Framework Mode. The official mode matrix marks +`prefetch`, `PrefetchPageLinks`, `useNavigation`, and lazy route discovery as +unavailable in Declarative mode. + +Installed-source check: `react-router@7.18.3`'s `usePrefetchBehavior` returns +`[false, ref, {}]` when `FrameworkContext` is absent. DebateLab renders +`BrowserRouter`, not a Framework/Data router, so adding `prefetch` to the +existing links would be a no-op for route modules. `discover` is not a dynamic +import prefetch substitute. + +Browser constraints: native Router prefetch requires a Framework/Data setup and, +for framework route discovery, a manifest endpoint. That is a different +architecture from this Vite SPA. + +Failure mode: assuming `Link prefetch` works in `BrowserRouter` creates a silent +performance regression. Migrating to `createBrowserRouter` solely for prefetch +would expand the scope to data-router pending/error semantics and route +configuration changes. + +DebateLab implication: keep `BrowserRouter` and call stable dynamic-import +functions directly from a small intent handler. For example, a page loader can +be the same function passed to `lazy` and called from `focus`, `pointerenter`, +or touch intent. The import warms the browser module cache without fetching +private data. Revisit native Router prefetch only if DebateLab deliberately +migrates to Data or Framework Mode. + +### Vite already computes module-preload dependencies for dynamic imports + +Sources: + +- +- + +Accessed: 2026-09-19. + +Supported API: Vite turns dynamic imports into async chunks and computes their +module-preload dependency list. Its default `build.modulePreload` includes a +polyfill for HTML entries. `build.modulePreload.resolveDependencies` can alter +the list, but it is an experimental fine-grained hook. + +Browser constraints: generated filenames and dependency graphs are content +hashed and can change on every build. Relative `base` values use +`import.meta.url`; custom entries may need the polyfill imported manually. + +Failure mode: hand-authored chunk URLs go stale after a build. Arbitrary +`manualChunks` can merge unrelated feature code, increase initial bytes, or +create new request waterfalls. Preloading too many chunks competes with the +current route and starves useful work. + +DebateLab implication: leave module-preload dependency calculation to Vite. +Use route-level dynamic imports for code splitting. Do not add +`resolveDependencies` or `manualChunks` for this plan unless a bundle graph +shows a specific, measured problem and the new graph is verified on cold mobile +loads. + +### TanStack Query can warm known data, but this plan should not speculate on private data + +Source: + +- + +Accessed: 2026-09-19. + +Supported API: installed TanStack Query `5.102.8` exposes `queryClient.query` +and the deprecated-compatible `prefetchQuery`. Current documentation recommends +`queryClient.query({ queryKey, queryFn, staleTime })`, which runs the query and +caches the result. For non-critical prefetches, discard the promise and swallow +the error so the mounted `useQuery` remains responsible for retries and error +display. A prefetched query without an observer is garbage-collected after +`gcTime`. + +Browser constraints: the cache is client-side and keyed by the exact query key; +freshness depends on `staleTime`. A prefetched request still consumes network, +server, and possibly AI/API budget. Authentication and authorization still +apply to the request. + +Failure mode: speculative private-data fetches can leak timing or cached +content across account changes if keys or invalidation are wrong. Stale data can +also make a fast route show incorrect account state. Prefetch failures should +not turn a hover into a visible error. + +DebateLab implication: do not prefetch private account/history/admin/AI data +from navigation intent. If a later feature identifies a safe, non-sensitive +query, prefetch it only with an account-scoped key, an explicit `staleTime`, and +`void queryClient.query(...).catch(() => undefined)`. Code prefetch and data +prefetch remain separate decisions. + +### Resource hints: use the smallest hint that matches the work + +Sources: + +- +- +- +- + +Accessed: 2026-09-19. + +Supported API: `preload` schedules a resource needed very soon, at high +priority, and requires a correct `as` value. `modulepreload` fetches, parses, +and compiles an ES module and can prepare dependencies. `prefetch` is a low +priority hint for a likely future same-site navigation or subresource. +`preconnect` opens a connection to a future origin. + +Browser constraints: `modulepreload` is Baseline widely available since 2023, +but dependency fetching can vary by browser. `prefetch` is limited availability, +can be blocked by cache headers, and may be dropped under resource pressure. +`preconnect` has no benefit for same-origin requests because that connection is +already open. `preload` has CORS/credentials matching requirements even when a +resource is same-origin. + +Failure mode: a wrong `as`, `crossorigin`, or MIME type can cause a duplicate +fetch or unused preload warning. `preload` for a route the user never opens +wastes bandwidth at the most important time. `prefetch` is not a guarantee and +must never be required for correctness. + +DebateLab implication: do not add `preconnect` for Vite chunks. Do not put +hashed route chunks in `index.html` as `preload`. Let Vite emit module-preload +dependencies for the current entry, and use a stable import function on +deliberate route intent for a likely next page. Add a narrowly scoped +`prefetch` hint only if network evidence shows it beats the import approach on +target browsers; it must remain optional and same-origin. + +### Network Information and Save-Data are hints, not a gate for navigation + +Sources: + +- +- +- + +Accessed: 2026-09-19. + +Supported API: feature-detect `navigator.connection`; when present, +`effectiveType` reports `slow-2g`, `2g`, `3g`, or `4g`, and `saveData` reports a +user request for reduced data use. The connection object can emit `change`. + +Browser constraints: MDN marks the Network Information API, `effectiveType`, +and `saveData` as limited availability. Firefox and Safari may not expose the +properties. Values are estimates based on observed round-trip/downlink data, +not a promise about the next request. + +Failure mode: assuming the API exists breaks unsupported browsers. Treating +`4g` as a guarantee can still overfetch on a congested network. Treating an +unknown connection as offline would make normal navigation unreliable. + +DebateLab implication: use the API only to suppress speculative route-code +prefetch. Always skip it when `saveData` is true or `effectiveType` is +`slow-2g`/`2g`; prefer `4g` for hover/focus prefetch and allow the click to +navigate when no hint exists. Keyboard focus must count as intent, desktop +hover should be lightly debounced, and touch needs a `pointerdown`/`touchstart` +path because touch has no hover. Touch prefetch must use the same Save-Data and +slow-connection guard. The actual click must never wait for the prefetch. + +### Service workers help repeat/offline loads, not intent correctness + +Sources: + +- +- + +Accessed: 2026-09-19. + +Supported API: service workers intercept same-origin requests and can use the +Cache API. Their lifecycle is download, install, activate, then fetch. A new +worker normally waits until old controlled pages close; `clients.claim()` can +claim existing pages. DebateLab's worker already version-cleans old caches, +claims clients, caches the app shell, and caches successful same-origin static +assets. + +Browser constraints: service workers require HTTPS, with `http://localhost` +treated as secure for development. They are origin/scope-bound, have no DOM, +and cannot use dynamic `import()` in the worker global scope. The first page may +not yet be controlled until a subsequent navigation unless the worker claims +it. + +Failure mode: an install rejection discards the new worker. A waiting worker +means one tab can keep an old version while another uses the new one. A +cache-first stale asset strategy can return an old chunk or a missing chunk if +the deployment's versioning and cache policy do not agree. + +DebateLab implication: keep hashed Vite assets cacheable and keep API paths out +of the runtime cache. Do not add every route chunk to `APP_SHELL`, and do not +use the worker as a speculative private-data fetcher. If the worker cache policy +changes, bump `CACHE_VERSION` and test a first visit, reload, offline static +asset, and deployment update. A route import failure must still be handled by +the app's Error Boundary. + +### `aria-busy` and `status` make loading states understandable + +Sources: + +- +- +- + +Accessed: 2026-09-19. + +Supported API: `aria-busy="true"` tells assistive technology to wait while a +region is being modified and `false` when the update is complete. `role="status"` +is a polite, atomic live region for advisory updates. Status should not receive +focus or move the user's focus. + +Browser constraints: announcements vary by browser and assistive technology. +`aria-busy` suppresses/interleaves updates; it does not announce "loading" by +itself. A skeleton with no text is silent to a screen reader. + +Failure mode: leaving `aria-busy` true silences later updates. Replacing a +focused route subtree can destroy focus. Marking the whole route busy while it +is being replaced gives assistive technology an inaccurate state. + +DebateLab implication: keep a mounted polite status node for route transitions, +for example "Opening Attack" and then "Attack ready" or an actionable error. +Mark only the region being rewritten busy. Use `aria-hidden="true"` on purely +decorative skeleton blocks. Do not move focus for routine navigation and do not +announce every streaming chunk. + +### `prefers-reduced-motion` is an accessibility constraint, not a loading strategy + +Source: + +- + +Accessed: 2026-09-19. + +Supported API: the CSS media feature detects a user preference for reduced +non-essential motion. `@media (prefers-reduced-motion: reduce)` can remove, +shorten, or replace animation. MDN marks it Baseline widely available. + +Browser constraints: the preference comes from the operating system/browser and +is not a signal that a network operation finished. Users may change it while +the app is open. + +Failure mode: shimmer, scale, and large panning animations can trigger +vestibular discomfort. Motion can also make a genuinely unresolved route look +busy without reducing the wait. + +DebateLab implication: preserve the existing reduced-motion handling. New +loading UI should work as a static skeleton or short opacity change, and never +use animation to conceal unresolved route work. Motion is polish after the +state contract is correct. + +## Direct answers for implementation + +### Router prefetch decision + +No. Installed React Router `7.18.3` cannot prefetch DebateLab's declarative +`BrowserRouter` route modules through `Link prefetch`; that prop is Framework +Mode only and the installed implementation disables it without framework +context. Keep the router and use stable dynamic-import functions directly. + +### Transition decision + +No, not safely in this architecture. React transitions can keep already +revealed route content visible while a new lazy component suspends, but +BrowserRouter updates History before the transition-wrapped state commit. The +destination URL can therefore show the old route, and a status/control gate +only reduces the harm. Reject prior-route retention for route changes. Use +`useTransitions={false}` and an immediate route-shaped skeleton instead. + +### Loading-state decision + +Use these four states. Keep the app shell and page chrome stable unless the +failed region itself owns them. + +- **Route module pending.** Prefer a completed route-code intent prefetch. If + the module is still pending, retain the stable shell and replace the route + region immediately with a destination-shaped skeleton. With + `useTransitions={false}`, do not retain the previous route under the new URL. +- **Initial page data pending.** Keep the page chrome and controls stable. Use a + skeleton only for the region whose data is unknown, with dimensions reserved + to protect CLS. +- **Mutation or AI work pending.** Preserve the user's input and existing result + context. Use the existing inline progress or streaming states instead of + replacing the page with a skeleton. +- **Recoverable error.** Replace only the failed region with its error state and + a reload action. Prefetch failures can retry inside the current runtime, but + a rejected `React.lazy` module requires a page reload to clear the browser's + module map. Do not hide the failure behind motion. + +Use a small skeleton vocabulary with DebateLab's existing spacing, radius, +color, and typography tokens: heading line, control row, form card, list row, +result block, chat thread, and admin table. Every skeleton must reserve stable +dimensions, contain no fake text or misleading clickable controls, set +`aria-busy="true"` on the pending region, expose one polite status announcement +for the operation, and remain correct with reduced-motion styling. + +Prototype timing decision: swap immediately to the appropriate skeleton for an +unresolved route module or unknown data region. Preserve known page chrome, +surrounding panel content, and mutation context only as required by the states +above. Do not add a fixed delay; add one only if traces show that it shortens, +rather than lengthens, user friction. + +### Resource-hint decision + +Use Vite's automatic module-preload graph and stable import functions. Do not +preconnect to same-origin Vite assets, hand-preload hashed route chunks, or +preload every route at idle. Treat `prefetch` as a low-priority, optional hint +only after deliberate intent and network gating prove it useful. + +### Intent decision + +Keyboard `focus`, desktop hover/pointer intent, and touch `pointerdown`/ +`touchstart` are all valid signals for route-code intent. Debounce desktop +intent briefly, skip speculative work for `saveData` and `slow-2g`/`2g`, and +allow navigation to proceed without waiting. When Network Information is +unsupported, keep intent prefetching but do not block navigation. Never attach +private data fetches to these code-intent signals. + +## Decision matrix + +| Concern | Smallest supported choice | Decision | Why | +| --- | --- | --- | --- | +| Route code split | Existing `lazy` + Vite dynamic import | Use | Already present and supported | +| Route code intent prefetch | Stable `() => import('./Page')` called from guarded events | Use | Works with BrowserRouter and keeps URL/data separate | +| React Router `Link prefetch` | Framework/Data Router prefetch | Reject for now | No effect in current BrowserRouter | +| Route data prefetch | TanStack Query `query` with safe key and `staleTime` | Only for a later, proven safe query | Private data and AI work are not speculative work | +| Vite modulepreload | Automatic generated dependency list | Use | Handles hashed chunks and dependency order | +| Manual `manualChunks` | Hand-authored vendor graph | Reject | No measured need; graph can regress startup bytes | +| Idle preload of every route | Browser idle callback or all-route imports | Reject | Wastes bandwidth and defeats code splitting | +| Resource hints | Narrow, same-origin, optional intent hint | Limit | `preload` is too eager; `preconnect` is useless same-origin | +| Route transition | `BrowserRouter useTransitions={false}` plus destination-shaped skeleton | Use | Removes prior-route URL/content mismatch while keeping the shell | +| Loading animation | Static/short reduced-motion-safe state | Use | Animation cannot resolve or measure work | + +## Verification contract for the implementation task + +The next implementation should prove the behavior with a cold desktop and +mobile Chromium run, a warm route navigation, and a throttled slow-network run. +The Network panel must show no route import before the chosen intent event, and +the destination must still load when the prefetch is skipped or fails. Coverage +must show feature-only modules absent from startup execution. The accessible +loading state must expose a polite status, preserve focus, and clear +`aria-busy`. Reduced-motion emulation must remove loading animation without +changing route correctness. diff --git a/docs/performance/smooth-navigation-baseline/README.md b/docs/performance/smooth-navigation-baseline/README.md new file mode 100644 index 000000000..cecf086ef --- /dev/null +++ b/docs/performance/smooth-navigation-baseline/README.md @@ -0,0 +1,396 @@ +# Smooth navigation baseline + +Captured 2026-09-19 from merged-main application source at +`origin/main` commit `b2ba178dee148d06d9bf89793f044add69d705b8`. The baseline +harness was committed at `c68c6c3` before this round-1 accounting correction; +the follow-up commit contains the corrected harness and recaptured evidence. + +This is local Chromium lab evidence. It is not Lighthouse, field Core Web +Vitals, authenticated backend proof, staging proof, or a production result. +Protected routes use the credential-free stub session and blocked backend +requests, so they prove rendering and browser timing only. + +## Reproduce + +```text +export PATH=/home/codex/.nvm/versions/node/v22.23.2/bin:$PATH +node --version # v22.23.2 +npm --version # 12.0.2 +npm ci +npm run build # writes dist/.vite/manifest.json and bundle-graph.json +BASELINE_RUN=run-1 node scripts/measure-navigation-performance.mjs +BASELINE_RUN=run-2 node scripts/measure-navigation-performance.mjs +``` + +Each matrix run allocates a verified free loopback port, starts a fresh Vite +development server, launches a browser, and terminates the exact Vite process +group. Final runs used ports `43915` and `42453`. No measurement dependency was +added. + +Vite ran in development mode (`7.3.6`). The production graph came from +`npm run build`. Cold route contexts disable Chromium HTTP cache through CDP +and block service workers. First-visit clicks use a fresh browser cache. Warm +clicks use same-document destination navigation, same-document return to the +source, and the measured destination navigation. External API, analytics, Jam, +and auth requests are aborted at the browser boundary. + +## Tool and browser profile + +- Node `22.23.2`, npm `12.0.2`. +- Playwright `1.62.1`, Chromium `151.0.7922.34`. +- Desktop: `1280x800`, device scale factor `1`, touch disabled. +- Pixel 5: `393x727`, device scale factor `2.75`, touch enabled, Chromium's + Pixel 5 Android user agent. +- Network: unthrottled loopback. CPU: Chromium default with no emulation. + +## Matrix and boundary method + +Each run contains 38 measurements: + +- 16 cold refreshes: `/`, `/login`, `/app`, `/app/generate`, `/app/attack`, + `/app/flowchart`, `/app/history`, and `/app/admin` on both profiles. +- 10 first-visit clicks and 10 warm clicks: landing CTA -> `/app`, Home -> + Generate, Generate -> Attack, Home -> Flowchart, and Home -> History on both + profiles. +- 2 deterministic delayed clicks: Generate -> Attack with the destination + `AttackPage.tsx` request delayed exactly 750 ms. + +The transition boundary is the capture-phase click event on the final +destination anchor. Opening a mobile menu or desktop More menu happens before +that event and is excluded. Resources, long tasks, and layout shifts are +filtered from that boundary. Request and byte totals count same-origin app +resources; browser-wide and external blocked-request counts remain in the JSON +for context. Route chunk timings are exact `PerformanceResourceTiming` +start/end/duration values after the boundary. + +The real-content marker uses route-specific visible text such as `Generate`, +`Attack`, `Argument Flowchart`, and `History`, so the old route cannot count as +destination content while Suspense is pending. Warm records include the first +destination response transfer and prove the measured navigation issued no +second destination request after the same-document return. + +The harness records click time, route chunk request timing, fallback and real +content frames, boundary-scoped long tasks, CLS/layout shifts, request and +byte totals, navigation timing, cache state, and app-shell DOM identity. + +## Results + +Run 1 desktop cold examples. Request counts are same-origin app resources; +the JSON also records browser-wide and external counts: + +- `/`: fallback `2631.6 ms`, real content `2885.4 ms`, 133 app requests, + 7,455,868 transferred bytes, 3 long tasks, CLS `0.0000`. +- `/app`: fallback `544.4 ms`, real content `617.4 ms`, 119 app requests, + 7,142,818 transferred bytes, 1 long task, CLS `0.0000`. +- `/app/generate`: fallback `595.8 ms`, real content `940.5 ms`, 162 app + requests, 8,770,111 transferred bytes, 2 long tasks, CLS `0.0029`. +- `/app/attack`: fallback `597.1 ms`, real content `883.7 ms`, 163 app + requests, 8,366,088 transferred bytes, 2 long tasks, CLS `0.0110`. + +Run 1 Pixel 5 cold examples: + +- `/`: fallback `400.2 ms`, real content `620.1 ms`, 133 app requests, + 7,455,868 transferred bytes, 2 long tasks, CLS `0.0000`. +- `/app`: fallback `596.4 ms`, real content `652.4 ms`, 119 app requests, + 7,142,818 transferred bytes, 1 long task, CLS `0.0647`. +- `/app/generate`: fallback `547.3 ms`, real content `869.0 ms`, 162 app + requests, 8,770,111 transferred bytes, 2 long tasks, CLS `0.1105`. +- `/app/attack`: fallback `591.2 ms`, real content `877.1 ms`, 163 app + requests, 8,366,088 transferred bytes, 2 long tasks, CLS `0.1114`. + +Run 1 desktop first-visit transitions: + +- Home -> Generate: real content `345.0 ms`, route chunk `14.1 ms`, 44 app + requests, 1,652,826 transferred bytes, shell identity `true`. +- Generate -> Attack: real content `184.8 ms`, route chunk `7.5 ms`, 8 app + requests, 221,821 transferred bytes, shell identity `true`. +- Home -> Flowchart: real content `172.6 ms`, route chunk `15.0 ms`, 11 app + requests, 799,036 transferred bytes, shell identity `true`. +- Home -> History: real content `141.3 ms`, route chunk `21.1 ms`, 10 app + requests, 257,018 transferred bytes, shell identity `true`. + +Warm transitions issued zero destination chunk requests and zero same-origin +app requests after the measured click. For example, the desktop Home -> +Generate warm visit recorded the warm `GeneratePage.tsx` response at +`78,506` transferred bytes during the warm destination visit, then measured no +destination request after returning to Home. This is same-document module-cache +proof, not a claim that an HTTP reload reused the browser cache. + +Delayed destination evidence from run 1: + +- Desktop `AttackPage.tsx`: request start `1132.7 ms`, end `1917.9 ms`, + duration `785.2 ms`, transfer `33,746` bytes, fallback visible in 5 frames, + real content `926.4 ms`, shell identity `true`. +- Pixel 5 `AttackPage.tsx`: request start `2117.2 ms`, end `2873.1 ms`, + duration `755.9 ms`, transfer `33,746` bytes, fallback visible in 4 frames, + real content `942.6 ms`, shell identity `true`. + +## Repeatability + +The documented tolerance is 35% relative timing variance or 50 ms absolute +variance, whichever is larger, plus 5% request/byte variance and 0.1 absolute +CLS variance. This accounts for local Vite transform, JIT, and shared-host +scheduling noise. + +Run 1 versus run 2: + +- maximum first fallback-frame relative variance: `47.14%`, with an absolute + difference below `50 ms`; +- maximum first real-content-frame relative variance: `29.27%`; +- same-origin request count variance: `0.00%`; +- transferred, encoded, and decoded app-byte variance: `0.00%`; +- maximum absolute CLS difference: `0.0000`; +- every warm case proved same-document module-cache reuse with zero measured + destination requests. + +The two runs stayed inside the documented tolerance. The large relative +fallback percentage came from a small desktop Home -> Generate frame value, +not a large absolute delay. + +## Manifest and bundle graph + +The production build emitted 95 manifest entries and 94 JavaScript chunks. Each +run JSON contains the complete `manifestEntries`, `routeStaticGraphs`, and +`chunks` records. Every chunk includes raw bytes, gzip bytes, imports, normalized +module membership, static route membership, and dynamic-entry key. Criticality +is not inferred from filenames. + +Static graph totals: + +```text +index.html 1 file 1,138,188 raw 351,547 gzip +/ 10 files 1,307,551 raw 403,940 gzip +/login 5 files 1,154,131 raw 357,485 gzip +/app 4 files 1,142,701 raw 353,345 gzip +/app/generate 31 files 1,530,191 raw 482,388 gzip +/app/attack 28 files 1,387,865 raw 436,303 gzip +/app/flowchart 16 files 1,333,376 raw 417,172 gzip +/app/history 13 files 1,179,425 raw 365,129 gzip +/app/admin 21 files 1,623,190 raw 488,345 gzip +``` + +Route-entry chunks: + +```text +LandingPage.tsx 45,725 raw 11,133 gzip 29 modules +LoginPage.tsx 6,791 raw 2,207 gzip 1 module +HomePage.tsx 3,353 raw 1,254 gzip 1 module +GeneratePage.tsx 28,552 raw 8,162 gzip 5 modules +AttackPage.tsx 19,037 raw 5,369 gzip 5 modules +FlowchartPage.tsx 50,503 raw 16,770 gzip 47 modules +HistoryPage.tsx 11,679 raw 2,619 gzip 2 modules +AdminPage.tsx 77,425 raw 20,319 gzip 21 modules +``` + +## Artifacts + +- [run 1 JSON](run-1.json) and [run 2 JSON](run-2.json): full corrected + boundary-scoped measurements, warm proofs, and graph data. +- [desktop delayed video](desktop-delayed.webm) and + [desktop delayed filmstrip](desktop-delayed-filmstrip.png). +- [Pixel 5 delayed video](pixel-5-delayed.webm) and + [Pixel 5 delayed filmstrip](pixel-5-delayed-filmstrip.png). + +Trace archives were not committed because Playwright traces may contain source +snapshots. The committed JSON, videos, and filmstrips contain no credentials. + +## Concerns and limits + +- This is local Chromium/Vite lab evidence, not a field-performance or + Lighthouse claim. No staging or production environment was substituted. +- Stub sessions and blocked backend requests do not prove authenticated API + behavior, RLS, staging, or production. +- Pixel 5 cold `/app/generate` and `/app/attack` recorded CLS above the 0.1 lab + guideline (`0.1105` and `0.1114`). This is baseline evidence for later work. +- The script records unthrottled loopback and does not represent WAN, CPU, or + field percentile behavior. +- `npm ci` emitted existing package deprecation and install-script warnings; + the lockfile and package manifest remained unchanged. + +## Task 10 current-branch audit (2026-09-20) + +This audit ran in the `t3code/smooth-performance` worktree at `2e40767` +before the Task 10 edits. The harness metadata records `origin/main` as +`sourceCommit` (`b2ba178`) even though the invocation ran from this current +branch. Node was `22.23.2`, npm was `12.0.2`, Vite was `7.3.6`, and Chromium +was `151.0.7922.34`. These are local, unthrottled Chromium runs. The +authenticated route harness seeds a completed onboarding state, so the cold +`/app` comparison measures the completed-user path that should not request the +tour chunk. + +The accepted boundary is onboarding. `App.tsx` now reads the small persisted +store and lazy-loads `OnboardingTour` only for an incomplete `/app` user or an +already-running tour. The existing 500 ms start delay remains in +`OnboardingTour.tsx`. The build gate checks normalized module membership, not +chunk filenames. It requires both onboarding modules to be absent from the +initial static graph and present in a dynamic graph. + +The new gate was run RED before the import change. `npm run build` failed with +the initial `index-D4jHDNYl.js` membership for both +`src/components/features/onboarding/OnboardingTour.tsx` and +`node_modules/react-joyride/dist/index.mjs`. After the change, the same build +and gate completed GREEN. + +Build graph evidence: + +```text + before after delta +index entry raw 1,147,759 1,043,703 -104,056 +index entry gzip 354,128 322,028 -32,100 +/ static graph raw 1,317,211 1,213,150 -104,061 +/ static graph gzip 406,561 374,462 -32,099 +/app static graph raw 1,152,363 1,048,307 -104,056 +/app static graph gzip 355,933 323,835 -32,098 +``` + +The natural `OnboardingTour` dynamic chunk is `103,039` raw and `31,727` +gzip. It contains both `src/components/features/onboarding/OnboardingTour.tsx` +and `node_modules/react-joyride/dist/index.mjs`. The initial entry retains the +small `use-onboarding` store but no tour component or Joyride module. + +Cold route evidence from the complete runs is in +[`task-10-before.json`](task-10-before.json) and +[`task-10-after-final.json`](task-10-after-final.json). Same-origin request and transferred +byte totals, followed by first real-content timing, were: + +```text +route/profile before requests/bytes/ms after requests/bytes/ms +desktop / 136 / 7,553,487 / 2,796.9 133 / 7,270,431 / 2,948.3 +desktop /app 122 / 7,239,166 / 729.7 119 / 6,956,110 / 693.9 +Pixel 5 / 136 / 7,553,487 / 803.1 133 / 7,270,431 / 780.0 +Pixel 5 /app 122 / 7,239,166 / 601.6 119 / 6,956,110 / 829.3 +``` + +Desktop `/app` improved by `35.8 ms` and three requests in the complete final +run. The final Pixel 5 `/app` result was `227.7 ms` slower (`37.8%` relative), +but three focused cold `/app` probes after the first Vite transform measured +`673.4-738.9 ms` on Pixel 5 and `676.5-713.8 ms` on desktop, with the same +117-119 request range and no tour request for the completed-user state. This +is not a field-performance claim. A separate full-matrix follow-up stopped at +`scripts/measure-navigation-performance.mjs:474` after a 30-second timeout +waiting for `button[aria-label="Open menu"]`; it wrote no artifact. The split +remains accepted because it removes a measured 32 KB gzip from every initial +route, creates no required tour request for completed users, and the +desktop/mobile onboarding E2E passes for incomplete users. + +Rejected candidates: + +- Noncurrent locale JSON stays synchronous in `src/i18n.ts`. No persisted-locale + startup proof showed that dynamic loading would avoid an English flash or + produce a net win. +- `WebTelemetry` stays in the entry. Its vendor integrations are already lazy, + and the small wrapper had no measured material saving at a natural boundary. +- Native URL/runtime adapters stay in `main.tsx`. They run startup lifecycle + work and deferring them could break Capacitor behavior without a safe proof. + +This remains local lab evidence, not Lighthouse, field Core Web Vitals, +staging, production, or authenticated backend proof. The repeatability limits +and the historical baseline above still apply. + +## Task 10 fix-round evidence (2026-09-20) + +This section supersedes the preceding Task 10 measurements. The code fix is +committed at `30b13675fc5104f3a8c2862a832a678fba2c2ede`. The clean recapture is +[`task-10-after-final.json`](task-10-after-final.json), whose +`metadata.harnessCommit` matches that hash. The older +[`task-10-before.json`](task-10-before.json) remains the clean pre-split +comparison from `2e40767`. The harness `sourceCommit` field records +`origin/main` by design and is not the worktree revision. + +Release correction: the saved transition request counts and byte totals in +this artifact exclude route work started by `pointerdown` before the recorded +`click` boundary, so they must not be used as first-visit network evidence. The +current harness starts its resource boundary before pointer intent; a later +full-plan recapture will replace those transition values. Cold-refresh and +production bundle-graph results are unaffected. + +The timing fix keeps the original 500 ms deadline. `TimedOnboardingTour` +records eligibility with a state initializer outside its Suspense boundary; +the retrying lazy subtree computes `max(0, 500 - elapsed)` when the chunk is +actually ready. A protected direct route does not consume that deadline before +the user reaches `/app`. + +The graph gate now checks `index.html` plus every emitted `src/pages/*.tsx` +manifest entry for both onboarding modules. It still uses the existing +`initialRoutes` list for the separate feature-only page rule. The pre-split +gate RED output named both onboarding modules in `index-D4jHDNYl.js`; the clean +code commit build is GREEN and finds both modules together in the natural +dynamic chunk. + +Current production graph totals: + +```text + before after delta +index entry raw 1,147,759 1,043,946 -103,813 +index entry gzip 354,128 322,114 -32,014 +/ static graph raw 1,317,211 1,213,393 -103,818 +/ static graph gzip 406,561 374,552 -32,009 +/app static graph raw 1,152,363 1,048,550 -103,813 +/app static graph gzip 355,933 323,923 -32,010 +``` + +The dynamic onboarding chunk is `103,062` raw and `31,750` gzip. Its module +membership includes both `src/components/features/onboarding/OnboardingTour.tsx` +and `node_modules/react-joyride/dist/index.mjs`. No initial route graph +contains either module. + +The complete clean recapture reports same-origin requests, transferred bytes, +and first real-content timing as follows: + +```text +route/profile before requests/bytes/ms after requests/bytes/ms +desktop / 136 / 7,553,487 / 2,796.9 133 / 7,272,949 / 2,862.8 +desktop /app 122 / 7,239,166 / 729.7 119 / 6,958,628 / 683.1 +Pixel 5 / 136 / 7,553,487 / 803.1 133 / 7,272,949 / 776.0 +Pixel 5 /app 122 / 7,239,166 / 601.6 119 / 6,958,628 / 779.8 +``` + +The Pixel 5 result remains noisy local lab evidence. Request count and bytes +drop on every route. Three focused post-build `/app` probes measured the +completed-user path without a tour request; the delayed-chunk E2E covers the +incomplete-user path instead. + +The delayed-chunk regression delays the onboarding source by 750 ms and waits +for the source plus the Joyride dependency to finish. Desktop and Pixel 5 both +pass the no-extra-500-ms assertion. The protected-route-to-home regression and +the existing tour flow also pass. The focused run was 4/4, and the full serial +home-navigation run was 15 passed, 1 skipped. + +Rejected candidates have reproducible evidence below. Source gzip is a +comparison aid. The emitted graph records membership in a chunk, but this +harness cannot isolate parse/evaluation time for one module, so no per-module +evaluation claim is made. + +```text +candidate source raw/gzip emitted membership / chunk evidence +en.json 71,079 / 20,779 initial entry, no dynamic chunk +es.json 78,317 / 22,985 initial entry, no dynamic chunk +hu.json 80,645 / 24,288 initial entry, no dynamic chunk +src/i18n.ts 414 / 224 initial entry, no dynamic chunk +WebTelemetry.tsx 991 / 457 initial entry wrapper +Vercel Analytics vendor 2,665 / 1,242 existing dynamic vendor chunk +Vercel Speed Insights vendor 2,350 / 1,107 existing dynamic vendor chunk +native-app-url-listener.ts 2,118 / 744 initial entry +native-runtime.ts 3,339 / 1,054 initial entry +register-service-worker.ts 460 / 300 initial entry +Capacitor modules (source sum) 29,267 / 8,410 initial entry dependencies +``` + +Locale splitting stayed rejected. `src/i18n.ts` initializes all three +resources synchronously with English as the initial language, while the +persisted settings store applies a saved language during hydration. Dynamic +locale imports would need a startup gate to avoid an English flash. The i18n +unit tests passed `14` tests covering `changeLanguage('es')`, +`changeLanguage('hu')`, fallback English, and key parity. The existing locale +navigation E2E passed `6/6` on desktop and mobile. + +WebTelemetry stayed rejected. The `991`-byte wrapper already lazy-loads both +vendors after `load` and `requestIdleCallback`; splitting that wrapper would +not remove the existing vendor requests from their natural dynamic boundary. + +Native-only adapters stayed rejected. `main.tsx` calls the URL listener, +Capacitor runtime setup, and service-worker registration at startup. The +native source modules and Capacitor dependency sizes are listed above. Native +unit coverage passed `12` tests across URL handling, runtime link policy, +service-worker registration, and native helpers. Deferring lifecycle setup +would need a native runtime proof that this task does not have. diff --git a/docs/performance/smooth-navigation-baseline/desktop-delayed-filmstrip.png b/docs/performance/smooth-navigation-baseline/desktop-delayed-filmstrip.png new file mode 100644 index 000000000..03c15bafd Binary files /dev/null and b/docs/performance/smooth-navigation-baseline/desktop-delayed-filmstrip.png differ diff --git a/docs/performance/smooth-navigation-baseline/desktop-delayed.webm b/docs/performance/smooth-navigation-baseline/desktop-delayed.webm new file mode 100644 index 000000000..446c43607 Binary files /dev/null and b/docs/performance/smooth-navigation-baseline/desktop-delayed.webm differ diff --git a/docs/performance/smooth-navigation-baseline/pixel-5-delayed-filmstrip.png b/docs/performance/smooth-navigation-baseline/pixel-5-delayed-filmstrip.png new file mode 100644 index 000000000..88e823396 Binary files /dev/null and b/docs/performance/smooth-navigation-baseline/pixel-5-delayed-filmstrip.png differ diff --git a/docs/performance/smooth-navigation-baseline/pixel-5-delayed.webm b/docs/performance/smooth-navigation-baseline/pixel-5-delayed.webm new file mode 100644 index 000000000..cb9042744 Binary files /dev/null and b/docs/performance/smooth-navigation-baseline/pixel-5-delayed.webm differ diff --git a/docs/performance/smooth-navigation-baseline/run-1.json b/docs/performance/smooth-navigation-baseline/run-1.json new file mode 100644 index 000000000..ba20a40b6 --- /dev/null +++ b/docs/performance/smooth-navigation-baseline/run-1.json @@ -0,0 +1,6975 @@ +{ + "metadata": { + "runLabel": "run-1", + "capturedAt": "2026-09-19T22:23:36.716Z", + "sourceCommit": "b2ba178dee148d06d9bf89793f044add69d705b8", + "harnessCommit": "c68c6c3fa68662ddc3dd9419794b620192a17136", + "nodeVersion": "v22.23.2", + "npmVersion": "12.0.2", + "browser": { + "name": "Chromium", + "version": "151.0.7922.34", + "executablePath": "/home/codex/.cache/ms-playwright/chromium-1234/chrome-linux64/chrome", + "playwrightVersion": "1.62.1" + }, + "vite": { + "serverMode": "development", + "productionGraphMode": "production", + "version": "7.3.6", + "port": 43915, + "cacheState": "cold routes disable HTTP cache through CDP and block service workers; clicks use a fresh or warmed browser cache" + }, + "profiles": [ + { + "name": "desktop", + "viewport": { + "width": 1280, + "height": 800 + }, + "deviceScaleFactor": 1, + "isMobile": false, + "hasTouch": false, + "userAgent": null, + "networkProfile": "unthrottled loopback", + "cpuProfile": "Chromium default CPU, no emulation" + }, + { + "name": "pixel-5", + "viewport": { + "width": 393, + "height": 727 + }, + "deviceScaleFactor": 2.75, + "isMobile": true, + "hasTouch": true, + "userAgent": "Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Mobile Safari/537.36", + "networkProfile": "unthrottled loopback", + "cpuProfile": "Chromium default CPU, no emulation" + } + ] + }, + "summary": { + "measurements": 38, + "byKind": { + "cold-refresh": 16, + "first-visit-click": 10, + "warm-click": 10, + "delayed-click": 2 + }, + "delayedFilmstrips": [ + "desktop", + "pixel-5" + ] + }, + "results": [ + { + "path": "/", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 2631.600000143051, + "firstRealContentFrameMs": 2885.4000000953674, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/LandingPage.tsx", + "startTime": 2613.7999999523163, + "endTime": 2637.2000000476837, + "duration": 23.40000009536743, + "transferSize": 7643, + "decodedBodySize": 7343 + } + ], + "longTasks": [ + { + "startTime": 2424.4000000953674, + "duration": 154 + }, + { + "startTime": 2793.7999999523163, + "duration": 87 + }, + { + "startTime": 2949.4000000953674, + "duration": 53 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 133, + "browserRequestCount": 143, + "externalRequestCount": 10, + "transferredBytes": 7455868, + "encodedBytes": 7415968, + "decodedBytes": 7415968, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 2576.600000143051, + "loadEventEnd": 2636.5, + "responseEnd": 1818.2000000476837 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "LandingPage" + }, + { + "path": "/login", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 505, + "firstRealContentFrameMs": 592.8999998569489, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/LoginPage.tsx", + "startTime": 482.2000000476837, + "endTime": 519.2999999523163, + "duration": 37.09999990463257, + "transferSize": 63754, + "decodedBodySize": 63454 + } + ], + "longTasks": [ + { + "startTime": 298.7999999523163, + "duration": 145 + }, + { + "startTime": 446.2000000476837, + "duration": 56 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 121, + "browserRequestCount": 131, + "externalRequestCount": 10, + "transferredBytes": 6934207, + "encodedBytes": 6897907, + "decodedBytes": 6897907, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 442.59999990463257, + "loadEventEnd": 515.3999998569489, + "responseEnd": 15.099999904632568 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /login", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "LoginPage" + }, + { + "path": "/app", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 544.4000000953674, + "firstRealContentFrameMs": 617.4000000953674, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/HomePage.tsx", + "startTime": 522, + "endTime": 540.7000000476837, + "duration": 18.700000047683716, + "transferSize": 25533, + "decodedBodySize": 25233 + } + ], + "longTasks": [ + { + "startTime": 293.40000009536743, + "duration": 140 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 119, + "browserRequestCount": 140, + "externalRequestCount": 21, + "transferredBytes": 7142818, + "encodedBytes": 7107118, + "decodedBytes": 7107118, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 431.5, + "loadEventEnd": 490.7000000476837, + "responseEnd": 13.900000095367432 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "HomePage" + }, + { + "path": "/app/generate", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 595.7999999523163, + "firstRealContentFrameMs": 940.5, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/GeneratePage.tsx", + "startTime": 568.5999999046326, + "endTime": 603.8999998569489, + "duration": 35.299999952316284, + "transferSize": 78506, + "decodedBodySize": 78206 + } + ], + "longTasks": [ + { + "startTime": 312.59999990463257, + "duration": 160 + }, + { + "startTime": 861.7999999523163, + "duration": 77 + } + ], + "cls": 0.0028984375, + "layoutShifts": [ + { + "startTime": 964.1999998092651, + "value": 0.0028984375 + } + ], + "requestCount": 162, + "browserRequestCount": 184, + "externalRequestCount": 22, + "transferredBytes": 8770111, + "encodedBytes": 8721511, + "decodedBytes": 8721511, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 471.19999980926514, + "loadEventEnd": 622.3999998569489, + "responseEnd": 11.399999856948853 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/generate", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "GeneratePage" + }, + { + "path": "/app/attack", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 597.0999999046326, + "firstRealContentFrameMs": 883.7000000476837, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/AttackPage.tsx", + "startTime": 568.3999998569489, + "endTime": 591.2999999523163, + "duration": 22.90000009536743, + "transferSize": 33746, + "decodedBodySize": 33446 + } + ], + "longTasks": [ + { + "startTime": 321.5, + "duration": 155 + }, + { + "startTime": 801.7000000476837, + "duration": 76 + } + ], + "cls": 0.01097265625, + "layoutShifts": [ + { + "startTime": 883.2999999523163, + "value": 0.01097265625 + } + ], + "requestCount": 163, + "browserRequestCount": 185, + "externalRequestCount": 22, + "transferredBytes": 8366088, + "encodedBytes": 8317188, + "decodedBytes": 8317188, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 475.2000000476837, + "loadEventEnd": 612.3999998569489, + "responseEnd": 16.899999856948853 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/attack", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AttackPage" + }, + { + "path": "/app/flowchart", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 586.0999999046326, + "firstRealContentFrameMs": 786, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/FlowchartPage.tsx", + "startTime": 561.5, + "endTime": 588.5999999046326, + "duration": 27.09999990463257, + "transferSize": 205577, + "decodedBodySize": 205277 + } + ], + "longTasks": [ + { + "startTime": 318.7999999523163, + "duration": 147 + }, + { + "startTime": 468.5, + "duration": 51 + }, + { + "startTime": 724.4000000953674, + "duration": 54 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 129, + "browserRequestCount": 150, + "externalRequestCount": 21, + "transferredBytes": 7916321, + "encodedBytes": 7877621, + "decodedBytes": 7877621, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 463.5, + "loadEventEnd": 527.2999999523163, + "responseEnd": 11.599999904632568 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/flowchart", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "FlowchartPage" + }, + { + "path": "/app/history", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 553.8999998569489, + "firstRealContentFrameMs": 693.5, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/HistoryPage.tsx", + "startTime": 522.8999998569489, + "endTime": 557.3999998569489, + "duration": 34.5, + "transferSize": 143448, + "decodedBodySize": 143148 + } + ], + "longTasks": [ + { + "startTime": 297.39999985694885, + "duration": 144 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 128, + "browserRequestCount": 149, + "externalRequestCount": 21, + "transferredBytes": 7374303, + "encodedBytes": 7335903, + "decodedBytes": 7335903, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 439.5, + "loadEventEnd": 491.89999985694885, + "responseEnd": 12.399999856948853 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/history", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "HistoryPage" + }, + { + "path": "/app/admin", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 631.8000001907349, + "firstRealContentFrameMs": 873.7000000476837, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/AdminPage.tsx", + "startTime": 605.2000000476837, + "endTime": 653.7000000476837, + "duration": 48.5, + "transferSize": 394470, + "decodedBodySize": 394170 + } + ], + "longTasks": [ + { + "startTime": 353.10000014305115, + "duration": 168 + }, + { + "startTime": 766.5, + "duration": 71 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 134, + "browserRequestCount": 160, + "externalRequestCount": 26, + "transferredBytes": 8980386, + "encodedBytes": 8940186, + "decodedBytes": 8940186, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 519.5, + "loadEventEnd": 646, + "responseEnd": 12.700000047683716 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/admin", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AdminPage" + }, + { + "path": "/app", + "clickTime": 1554.6000001430511, + "measurementBoundary": 1554.6000001430511, + "firstSkeletonFrameMs": 60.5, + "firstRealContentFrameMs": 103.39999985694885, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/HomePage.tsx", + "startTime": 1602.9000000953674, + "endTime": 1620.1000001430511, + "duration": 17.200000047683716, + "transferSize": 25533, + "decodedBodySize": 25233 + } + ], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 2, + "browserRequestCount": 12, + "externalRequestCount": 10, + "transferredBytes": 35756, + "encodedBytes": 35156, + "decodedBytes": 35156, + "sourceWorkExcluded": { + "requestCount": 133, + "longTaskCount": 3, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 508.60000014305115, + "loadEventEnd": 576.4000000953674, + "responseEnd": 12.5 + }, + "shellDomIdentitySurvived": null, + "kind": "first-visit-click", + "label": "Landing CTA -> /app", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "HomePage" + }, + { + "path": "/app", + "clickTime": 3181.2000000476837, + "measurementBoundary": 3181.2000000476837, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 103, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 135, + "longTaskCount": 5, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 456, + "loadEventEnd": 547.3999998569489, + "responseEnd": 11.700000047683716 + }, + "shellDomIdentitySurvived": null, + "kind": "warm-click", + "label": "Landing CTA -> /app", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "HomePage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:43915/src/pages/HomePage.tsx", + "startTime": 1714.5, + "responseEnd": 1734.5999999046326, + "transferSize": 25533, + "encodedBodySize": 25233, + "decodedBodySize": 25233 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/generate", + "clickTime": 815.5, + "measurementBoundary": 815.5, + "firstSkeletonFrameMs": 27.700000047683716, + "firstRealContentFrameMs": 345, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/GeneratePage.tsx", + "startTime": 833.7000000476837, + "endTime": 847.8000001907349, + "duration": 14.100000143051147, + "transferSize": 78506, + "decodedBodySize": 78206 + } + ], + "longTasks": [ + { + "startTime": 1062.1000001430511, + "duration": 76 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 44, + "browserRequestCount": 46, + "externalRequestCount": 2, + "transferredBytes": 1652826, + "encodedBytes": 1639626, + "decodedBytes": 1639626, + "sourceWorkExcluded": { + "requestCount": 119, + "longTaskCount": 2, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 508.90000009536743, + "loadEventEnd": 571.4000000953674, + "responseEnd": 12.900000095367432 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> Generate", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "GeneratePage" + }, + { + "path": "/app/generate", + "clickTime": 1365.2000000476837, + "measurementBoundary": 1365.2000000476837, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 98.29999995231628, + "routeChunkRequests": [], + "longTasks": [ + { + "startTime": 1398.3000001907349, + "duration": 58 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 11, + "externalRequestCount": 11, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 163, + "longTaskCount": 2, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 425.80000019073486, + "loadEventEnd": 534.7000000476837, + "responseEnd": 10.900000095367432 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> Generate", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "GeneratePage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:43915/src/pages/GeneratePage.tsx", + "startTime": 719.6000001430511, + "responseEnd": 737.3000001907349, + "transferSize": 78506, + "encodedBodySize": 78206, + "decodedBodySize": 78206 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/attack", + "clickTime": 1061.5, + "measurementBoundary": 1061.5, + "firstSkeletonFrameMs": 34.39999985694885, + "firstRealContentFrameMs": 184.79999995231628, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/AttackPage.tsx", + "startTime": 1078.2000000476837, + "endTime": 1085.7000000476837, + "duration": 7.5, + "transferSize": 33746, + "decodedBodySize": 33446 + } + ], + "longTasks": [ + { + "startTime": 1180.2999999523163, + "duration": 59 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 8, + "browserRequestCount": 10, + "externalRequestCount": 2, + "transferredBytes": 221821, + "encodedBytes": 219421, + "decodedBytes": 219421, + "sourceWorkExcluded": { + "requestCount": 162, + "longTaskCount": 2, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 472.5, + "loadEventEnd": 616.3999998569489, + "responseEnd": 13.099999904632568 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Generate -> Attack", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "AttackPage" + }, + { + "path": "/app/attack", + "clickTime": 1573.5, + "measurementBoundary": 1573.5, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 78.5, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 11, + "externalRequestCount": 11, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 170, + "longTaskCount": 3, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 453.19999980926514, + "loadEventEnd": 588.0999999046326, + "responseEnd": 11.899999856948853 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Generate -> Attack", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "AttackPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:43915/src/pages/AttackPage.tsx", + "startTime": 1028.5, + "responseEnd": 1048.1999998092651, + "transferSize": 33746, + "encodedBodySize": 33446, + "decodedBodySize": 33446 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/flowchart", + "clickTime": 836.0999999046326, + "measurementBoundary": 836.0999999046326, + "firstSkeletonFrameMs": 30.100000143051147, + "firstRealContentFrameMs": 172.60000014305115, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/FlowchartPage.tsx", + "startTime": 857.7000000476837, + "endTime": 872.7000000476837, + "duration": 15, + "transferSize": 205577, + "decodedBodySize": 205277 + } + ], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 11, + "browserRequestCount": 12, + "externalRequestCount": 1, + "transferredBytes": 799036, + "encodedBytes": 795736, + "decodedBytes": 795736, + "sourceWorkExcluded": { + "requestCount": 119, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 489, + "loadEventEnd": 549.5, + "responseEnd": 12.899999856948853 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> Flowchart", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "FlowchartPage" + }, + { + "path": "/app/flowchart", + "clickTime": 1296, + "measurementBoundary": 1296, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 68.79999995231628, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 130, + "longTaskCount": 2, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 517.8999998569489, + "loadEventEnd": 676, + "responseEnd": 16.5 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> Flowchart", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "FlowchartPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:43915/src/pages/FlowchartPage.tsx", + "startTime": 849.2999999523163, + "responseEnd": 867, + "transferSize": 205577, + "encodedBodySize": 205277, + "decodedBodySize": 205277 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/history", + "clickTime": 789.8000001907349, + "measurementBoundary": 789.8000001907349, + "firstSkeletonFrameMs": 43.59999990463257, + "firstRealContentFrameMs": 141.29999995231628, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/HistoryPage.tsx", + "startTime": 819.6000001430511, + "endTime": 840.7000000476837, + "duration": 21.09999990463257, + "transferSize": 143448, + "decodedBodySize": 143148 + } + ], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 10, + "browserRequestCount": 11, + "externalRequestCount": 1, + "transferredBytes": 257018, + "encodedBytes": 254018, + "decodedBytes": 254018, + "sourceWorkExcluded": { + "requestCount": 119, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 459.60000014305115, + "loadEventEnd": 598, + "responseEnd": 10.800000190734863 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> History", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "HistoryPage" + }, + { + "path": "/app/history", + "clickTime": 1105.7000000476837, + "measurementBoundary": 1105.7000000476837, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 29.5, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 129, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 444.2999999523163, + "loadEventEnd": 496.89999985694885, + "responseEnd": 10.700000047683716 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> History", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "HistoryPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:43915/src/pages/HistoryPage.tsx", + "startTime": 713.7999999523163, + "responseEnd": 727.2000000476837, + "transferSize": 143448, + "encodedBodySize": 143148, + "decodedBodySize": 143148 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 400.2000000476837, + "firstRealContentFrameMs": 620.1000001430511, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/LandingPage.tsx", + "startTime": 388.10000014305115, + "endTime": 403.90000009536743, + "duration": 15.799999952316284, + "transferSize": 7643, + "decodedBodySize": 7343 + } + ], + "longTasks": [ + { + "startTime": 264.40000009536743, + "duration": 98 + }, + { + "startTime": 543, + "duration": 73 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 133, + "browserRequestCount": 143, + "externalRequestCount": 10, + "transferredBytes": 7455868, + "encodedBytes": 7415968, + "decodedBytes": 7415968, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 360.90000009536743, + "loadEventEnd": 404, + "responseEnd": 10.100000143051147 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "LandingPage" + }, + { + "path": "/login", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 517.5, + "firstRealContentFrameMs": 597.0999999046326, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/LoginPage.tsx", + "startTime": 500.59999990463257, + "endTime": 519.5999999046326, + "duration": 19, + "transferSize": 63754, + "decodedBodySize": 63454 + } + ], + "longTasks": [ + { + "startTime": 319.7000000476837, + "duration": 148 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 121, + "browserRequestCount": 131, + "externalRequestCount": 10, + "transferredBytes": 6934207, + "encodedBytes": 6897907, + "decodedBytes": 6897907, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 465.5, + "loadEventEnd": 523.2000000476837, + "responseEnd": 10.400000095367432 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /login", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "LoginPage" + }, + { + "path": "/app", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 596.4000000953674, + "firstRealContentFrameMs": 652.4000000953674, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/HomePage.tsx", + "startTime": 573.5, + "endTime": 588.5, + "duration": 15, + "transferSize": 25533, + "decodedBodySize": 25233 + } + ], + "longTasks": [ + { + "startTime": 333.90000009536743, + "duration": 143 + } + ], + "cls": 0.06467384003526769, + "layoutShifts": [ + { + "startTime": 660.5, + "value": 0.06467384003526769 + } + ], + "requestCount": 119, + "browserRequestCount": 140, + "externalRequestCount": 21, + "transferredBytes": 7142818, + "encodedBytes": 7107118, + "decodedBytes": 7107118, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 475.40000009536743, + "loadEventEnd": 537, + "responseEnd": 14.100000143051147 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "HomePage" + }, + { + "path": "/app/generate", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 547.2999999523163, + "firstRealContentFrameMs": 869, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/GeneratePage.tsx", + "startTime": 526.8999998569489, + "endTime": 541.8999998569489, + "duration": 15, + "transferSize": 78506, + "decodedBodySize": 78206 + } + ], + "longTasks": [ + { + "startTime": 299.5, + "duration": 144 + }, + { + "startTime": 785, + "duration": 83 + } + ], + "cls": 0.11049724802234125, + "layoutShifts": [ + { + "startTime": 892.7000000476837, + "value": 0.11049724802234125 + } + ], + "requestCount": 162, + "browserRequestCount": 184, + "externalRequestCount": 22, + "transferredBytes": 8770111, + "encodedBytes": 8721511, + "decodedBytes": 8721511, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 441.89999985694885, + "loadEventEnd": 495.7000000476837, + "responseEnd": 10.200000047683716 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/generate", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "GeneratePage" + }, + { + "path": "/app/attack", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 591.2000000476837, + "firstRealContentFrameMs": 877.0999999046326, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/AttackPage.tsx", + "startTime": 567.0999999046326, + "endTime": 582.2000000476837, + "duration": 15.100000143051147, + "transferSize": 33746, + "decodedBodySize": 33446 + } + ], + "longTasks": [ + { + "startTime": 313.7000000476837, + "duration": 162 + }, + { + "startTime": 782.0999999046326, + "duration": 90 + } + ], + "cls": 0.11141678129298486, + "layoutShifts": [ + { + "startTime": 876.8999998569489, + "value": 0.11141678129298486 + } + ], + "requestCount": 163, + "browserRequestCount": 185, + "externalRequestCount": 22, + "transferredBytes": 8366088, + "encodedBytes": 8317188, + "decodedBytes": 8317188, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 474, + "loadEventEnd": 533.7000000476837, + "responseEnd": 12.599999904632568 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/attack", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AttackPage" + }, + { + "path": "/app/flowchart", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 560.0999999046326, + "firstRealContentFrameMs": 779.5999999046326, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/FlowchartPage.tsx", + "startTime": 537.5999999046326, + "endTime": 555.4000000953674, + "duration": 17.800000190734863, + "transferSize": 205577, + "decodedBodySize": 205277 + } + ], + "longTasks": [ + { + "startTime": 298.7999999523163, + "duration": 141 + }, + { + "startTime": 713, + "duration": 57 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 129, + "browserRequestCount": 150, + "externalRequestCount": 21, + "transferredBytes": 7916321, + "encodedBytes": 7877621, + "decodedBytes": 7877621, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 437.40000009536743, + "loadEventEnd": 495.2999999523163, + "responseEnd": 8 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/flowchart", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "FlowchartPage" + }, + { + "path": "/app/history", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 560.9000000953674, + "firstRealContentFrameMs": 682.5999999046326, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/HistoryPage.tsx", + "startTime": 539.5999999046326, + "endTime": 555.4000000953674, + "duration": 15.800000190734863, + "transferSize": 143448, + "decodedBodySize": 143148 + } + ], + "longTasks": [ + { + "startTime": 306.7000000476837, + "duration": 154 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 128, + "browserRequestCount": 149, + "externalRequestCount": 21, + "transferredBytes": 7374303, + "encodedBytes": 7335903, + "decodedBytes": 7335903, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 458.5, + "loadEventEnd": 512.2999999523163, + "responseEnd": 9.5 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/history", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "HistoryPage" + }, + { + "path": "/app/admin", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 528.4000000953674, + "firstRealContentFrameMs": 741.2000000476837, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/AdminPage.tsx", + "startTime": 513.1000001430511, + "endTime": 527.9000000953674, + "duration": 14.799999952316284, + "transferSize": 394470, + "decodedBodySize": 394170 + } + ], + "longTasks": [ + { + "startTime": 285, + "duration": 159 + }, + { + "startTime": 634.5, + "duration": 73 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 134, + "browserRequestCount": 160, + "externalRequestCount": 26, + "transferredBytes": 8980386, + "encodedBytes": 8940186, + "decodedBytes": 8940186, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 442.10000014305115, + "loadEventEnd": 543.9000000953674, + "responseEnd": 11.300000190734863 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/admin", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AdminPage" + }, + { + "path": "/app", + "clickTime": 854.4000000953674, + "measurementBoundary": 854.4000000953674, + "firstSkeletonFrameMs": 91.20000004768372, + "firstRealContentFrameMs": 144.40000009536743, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/HomePage.tsx", + "startTime": 915, + "endTime": 924.2000000476837, + "duration": 9.200000047683716, + "transferSize": 25533, + "decodedBodySize": 25233 + } + ], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 2, + "browserRequestCount": 3, + "externalRequestCount": 1, + "transferredBytes": 35756, + "encodedBytes": 35156, + "decodedBytes": 35156, + "sourceWorkExcluded": { + "requestCount": 133, + "longTaskCount": 2, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 378, + "loadEventEnd": 434.7000000476837, + "responseEnd": 9.600000143051147 + }, + "shellDomIdentitySurvived": null, + "kind": "first-visit-click", + "label": "Landing CTA -> /app", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "HomePage" + }, + { + "path": "/app", + "clickTime": 1431.7999999523163, + "measurementBoundary": 1431.7999999523163, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 45.5, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 10, + "externalRequestCount": 10, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 135, + "longTaskCount": 3, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 529.7999999523163, + "loadEventEnd": 596.4000000953674, + "responseEnd": 13.700000047683716 + }, + "shellDomIdentitySurvived": null, + "kind": "warm-click", + "label": "Landing CTA -> /app", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "HomePage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:43915/src/pages/HomePage.tsx", + "startTime": 1053.7999999523163, + "responseEnd": 1074.2999999523163, + "transferSize": 25533, + "encodedBodySize": 25233, + "decodedBodySize": 25233 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/generate", + "clickTime": 791.2000000476837, + "measurementBoundary": 791.2000000476837, + "firstSkeletonFrameMs": 39.09999990463257, + "firstRealContentFrameMs": 327.09999990463257, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/GeneratePage.tsx", + "startTime": 811.7000000476837, + "endTime": 820.7999999523163, + "duration": 9.099999904632568, + "transferSize": 78506, + "decodedBodySize": 78206 + } + ], + "longTasks": [ + { + "startTime": 1019.2000000476837, + "duration": 78 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 44, + "browserRequestCount": 46, + "externalRequestCount": 2, + "transferredBytes": 1652826, + "encodedBytes": 1639626, + "decodedBytes": 1639626, + "sourceWorkExcluded": { + "requestCount": 119, + "longTaskCount": 2, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 492.2000000476837, + "loadEventEnd": 560, + "responseEnd": 10.799999952316284 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> Generate", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "GeneratePage" + }, + { + "path": "/app/generate", + "clickTime": 1504.1999998092651, + "measurementBoundary": 1504.1999998092651, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 117.30000019073486, + "routeChunkRequests": [], + "longTasks": [ + { + "startTime": 1540.3999998569489, + "duration": 74 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 11, + "externalRequestCount": 11, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 163, + "longTaskCount": 4, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 469.5, + "loadEventEnd": 619.5, + "responseEnd": 12.099999904632568 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> Generate", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "GeneratePage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:43915/src/pages/GeneratePage.tsx", + "startTime": 817, + "responseEnd": 831.2999999523163, + "transferSize": 78506, + "encodedBodySize": 78206, + "decodedBodySize": 78206 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/attack", + "clickTime": 1994.1000001430511, + "measurementBoundary": 1994.1000001430511, + "firstSkeletonFrameMs": 73.39999985694885, + "firstRealContentFrameMs": 243.79999995231628, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/AttackPage.tsx", + "startTime": 2031.1000001430511, + "endTime": 2042.9000000953674, + "duration": 11.799999952316284, + "transferSize": 33746, + "decodedBodySize": 33446 + } + ], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 8, + "browserRequestCount": 10, + "externalRequestCount": 2, + "transferredBytes": 221821, + "encodedBytes": 219421, + "decodedBytes": 219421, + "sourceWorkExcluded": { + "requestCount": 162, + "longTaskCount": 2, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 457.10000014305115, + "loadEventEnd": 513.4000000953674, + "responseEnd": 12 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Generate -> Attack", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "AttackPage" + }, + { + "path": "/app/attack", + "clickTime": 4782.299999952316, + "measurementBoundary": 4782.299999952316, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 82.60000014305115, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 2, + "externalRequestCount": 2, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 170, + "longTaskCount": 5, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 531.2999999523163, + "loadEventEnd": 675.9000000953674, + "responseEnd": 12.099999904632568 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Generate -> Attack", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "AttackPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:43915/src/pages/AttackPage.tsx", + "startTime": 2180.0999999046326, + "responseEnd": 2202.9000000953674, + "transferSize": 33746, + "encodedBodySize": 33446, + "decodedBodySize": 33446 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/flowchart", + "clickTime": 800.1999998092651, + "measurementBoundary": 800.1999998092651, + "firstSkeletonFrameMs": 35.30000019073486, + "firstRealContentFrameMs": 189.70000004768372, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/FlowchartPage.tsx", + "startTime": 823.5999999046326, + "endTime": 838.3999998569489, + "duration": 14.799999952316284, + "transferSize": 205577, + "decodedBodySize": 205277 + } + ], + "longTasks": [ + { + "startTime": 925.8999998569489, + "duration": 54 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 11, + "browserRequestCount": 12, + "externalRequestCount": 1, + "transferredBytes": 799036, + "encodedBytes": 795736, + "decodedBytes": 795736, + "sourceWorkExcluded": { + "requestCount": 119, + "longTaskCount": 1, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 479.69999980926514, + "loadEventEnd": 539.5, + "responseEnd": 14.5 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> Flowchart", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "FlowchartPage" + }, + { + "path": "/app/flowchart", + "clickTime": 1189.2000000476837, + "measurementBoundary": 1189.2000000476837, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 59.40000009536743, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 130, + "longTaskCount": 2, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 472.2000000476837, + "loadEventEnd": 522.3000001907349, + "responseEnd": 17.100000143051147 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> Flowchart", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "FlowchartPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:43915/src/pages/FlowchartPage.tsx", + "startTime": 747.8000001907349, + "responseEnd": 756.9000000953674, + "transferSize": 205577, + "encodedBodySize": 205277, + "decodedBodySize": 205277 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/history", + "clickTime": 698.3000001907349, + "measurementBoundary": 698.3000001907349, + "firstSkeletonFrameMs": 29, + "firstRealContentFrameMs": 103.39999985694885, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/HistoryPage.tsx", + "startTime": 718.7000000476837, + "endTime": 732.2000000476837, + "duration": 13.5, + "transferSize": 143448, + "decodedBodySize": 143148 + } + ], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 10, + "browserRequestCount": 11, + "externalRequestCount": 1, + "transferredBytes": 257018, + "encodedBytes": 254018, + "decodedBytes": 254018, + "sourceWorkExcluded": { + "requestCount": 119, + "longTaskCount": 1, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 430.30000019073486, + "loadEventEnd": 560.7000000476837, + "responseEnd": 10.800000190734863 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> History", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "HistoryPage" + }, + { + "path": "/app/history", + "clickTime": 1138.7000000476837, + "measurementBoundary": 1138.7000000476837, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 36.299999952316284, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 129, + "longTaskCount": 1, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 438, + "loadEventEnd": 495.7000000476837, + "responseEnd": 10.899999856948853 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> History", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "HistoryPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:43915/src/pages/HistoryPage.tsx", + "startTime": 732.2999999523163, + "responseEnd": 747.7999999523163, + "transferSize": 143448, + "encodedBodySize": 143148, + "decodedBodySize": 143148 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + } + ], + "delayed": [ + { + "path": "/app/attack", + "clickTime": 1100.5, + "measurementBoundary": 1100.5, + "firstSkeletonFrameMs": 50.10000014305115, + "firstRealContentFrameMs": 926.4000000953674, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/AttackPage.tsx", + "startTime": 1132.7000000476837, + "endTime": 1917.9000000953674, + "duration": 785.2000000476837, + "transferSize": 33746, + "decodedBodySize": 33446 + } + ], + "longTasks": [], + "cls": 0.01097265625, + "layoutShifts": [ + { + "startTime": 2026.7000000476837, + "value": 0.01097265625 + } + ], + "requestCount": 8, + "browserRequestCount": 20, + "externalRequestCount": 12, + "transferredBytes": 221821, + "encodedBytes": 219421, + "decodedBytes": 219421, + "sourceWorkExcluded": { + "requestCount": 162, + "longTaskCount": 2, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 463.90000009536743, + "loadEventEnd": 516.5, + "responseEnd": 12.400000095367432 + }, + "shellDomIdentitySurvived": true, + "kind": "delayed-click", + "label": "Delayed Generate -> Attack", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AttackPage", + "delayMs": 750, + "delayRequestObserved": true, + "frameStates": [ + { + "route": "/app/generate", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": true, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": true, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": true, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": true, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": true, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + } + ], + "video": "docs/performance/smooth-navigation-baseline/desktop-delayed.webm", + "filmstrip": "docs/performance/smooth-navigation-baseline/desktop-delayed-filmstrip.png" + }, + { + "path": "/app/attack", + "clickTime": 2042.7999999523163, + "measurementBoundary": 2042.7999999523163, + "firstSkeletonFrameMs": 121.5, + "firstRealContentFrameMs": 942.5999999046326, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:43915/src/pages/AttackPage.tsx", + "startTime": 2117.2000000476837, + "endTime": 2873.0999999046326, + "duration": 755.8999998569489, + "transferSize": 33746, + "decodedBodySize": 33446 + } + ], + "longTasks": [], + "cls": 0.11141678129298486, + "layoutShifts": [ + { + "startTime": 2984.7000000476837, + "value": 0.11141678129298486 + } + ], + "requestCount": 8, + "browserRequestCount": 21, + "externalRequestCount": 13, + "transferredBytes": 221821, + "encodedBytes": 219421, + "decodedBytes": 219421, + "sourceWorkExcluded": { + "requestCount": 162, + "longTaskCount": 2, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 443.7999999523163, + "loadEventEnd": 567.2999999523163, + "responseEnd": 12.599999904632568 + }, + "shellDomIdentitySurvived": true, + "kind": "delayed-click", + "label": "Delayed Generate -> Attack", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AttackPage", + "delayMs": 750, + "delayRequestObserved": true, + "frameStates": [ + { + "route": "/app/generate", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": true, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": true, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": true, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": true, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + } + ], + "video": "docs/performance/smooth-navigation-baseline/pixel-5-delayed.webm", + "filmstrip": "docs/performance/smooth-navigation-baseline/pixel-5-delayed-filmstrip.png" + } + ], + "bundleGraph": { + "manifestEntries": [ + { + "key": "_FileSaver.min-DZLZy2z8.js", + "file": "assets/FileSaver.min-DZLZy2z8.js", + "name": "FileSaver.min", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "_ModelRestrictedModal-UK583TYw.js", + "file": "assets/ModelRestrictedModal-UK583TYw.js", + "name": "ModelRestrictedModal", + "imports": [ + "index.html", + "_client-B2Hmm4S3.js", + "_triangle-alert-DAkLJ_Hs.js", + "_zap-YNjUnyuz.js", + "_PricingModal-DeTbMjVf.js" + ] + }, + { + "key": "_ModelSelector-DPUAfvNL.js", + "file": "assets/ModelSelector-DPUAfvNL.js", + "name": "ModelSelector", + "imports": [ + "index.html", + "_badge-DOuwE0tA.js", + "_use-subscription-TWRM-hpK.js" + ] + }, + { + "key": "_PricingModal-DeTbMjVf.js", + "file": "assets/PricingModal-DeTbMjVf.js", + "name": "PricingModal", + "imports": [ + "index.html", + "_input-BRlCt18M.js", + "_badge-DOuwE0tA.js", + "_edge-function-error-dlcwXP30.js", + "_crown-C2TeHzqk.js", + "_zap-YNjUnyuz.js" + ] + }, + { + "key": "_alert-dialog-DDhjApTe.js", + "file": "assets/alert-dialog-DDhjApTe.js", + "name": "alert-dialog", + "imports": [ + "index.html" + ] + }, + { + "key": "_arrow-right-DE4H5pKc.js", + "file": "assets/arrow-right-DE4H5pKc.js", + "name": "arrow-right", + "imports": [ + "index.html" + ] + }, + { + "key": "_badge-DOuwE0tA.js", + "file": "assets/badge-DOuwE0tA.js", + "name": "badge", + "imports": [ + "index.html" + ] + }, + { + "key": "_bookmark-D5QAu8Kr.js", + "file": "assets/bookmark-D5QAu8Kr.js", + "name": "bookmark", + "imports": [ + "index.html" + ] + }, + { + "key": "_brain-BDMiUfF_.js", + "file": "assets/brain-BDMiUfF_.js", + "name": "brain", + "imports": [ + "index.html" + ] + }, + { + "key": "_card-DNuxaVKj.js", + "file": "assets/card-DNuxaVKj.js", + "name": "card", + "imports": [ + "index.html" + ] + }, + { + "key": "_checkbox-CcU5IimS.js", + "file": "assets/checkbox-CcU5IimS.js", + "name": "checkbox", + "imports": [ + "index.html" + ] + }, + { + "key": "_circle-alert-ChwbUVv0.js", + "file": "assets/circle-alert-ChwbUVv0.js", + "name": "circle-alert", + "imports": [ + "index.html" + ] + }, + { + "key": "_circle-help-Dn3L85BO.js", + "file": "assets/circle-help-Dn3L85BO.js", + "name": "circle-help", + "imports": [ + "index.html" + ] + }, + { + "key": "_client-B2Hmm4S3.js", + "file": "assets/client-B2Hmm4S3.js", + "name": "client", + "imports": [ + "index.html", + "_url-D1MGTXu_.js" + ] + }, + { + "key": "_clock-3-BP2woNWy.js", + "file": "assets/clock-3-BP2woNWy.js", + "name": "clock-3", + "imports": [ + "index.html" + ] + }, + { + "key": "_copy-B5L0aXUh.js", + "file": "assets/copy-B5L0aXUh.js", + "name": "copy", + "imports": [ + "index.html" + ] + }, + { + "key": "_credit-card-CFOMlw74.js", + "file": "assets/credit-card-CFOMlw74.js", + "name": "credit-card", + "imports": [ + "index.html" + ] + }, + { + "key": "_crown-C2TeHzqk.js", + "file": "assets/crown-C2TeHzqk.js", + "name": "crown", + "imports": [ + "index.html" + ] + }, + { + "key": "_date-format-CG2nx3lR.js", + "file": "assets/date-format-CG2nx3lR.js", + "name": "date-format" + }, + { + "key": "_download-7v2KEx-L.js", + "file": "assets/download-7v2KEx-L.js", + "name": "download", + "imports": [ + "index.html" + ] + }, + { + "key": "_edge-function-error-dlcwXP30.js", + "file": "assets/edge-function-error-dlcwXP30.js", + "name": "edge-function-error" + }, + { + "key": "_empty-state-BkQZkMeo.js", + "file": "assets/empty-state-BkQZkMeo.js", + "name": "empty-state", + "imports": [ + "index.html" + ] + }, + { + "key": "_error-display-B8noTjms.js", + "file": "assets/error-display-B8noTjms.js", + "name": "error-display", + "imports": [ + "_client-B2Hmm4S3.js" + ] + }, + { + "key": "_external-link-hWs27zxC.js", + "file": "assets/external-link-hWs27zxC.js", + "name": "external-link", + "imports": [ + "index.html" + ] + }, + { + "key": "_file-text-Bg60aQFS.js", + "file": "assets/file-text-Bg60aQFS.js", + "name": "file-text", + "imports": [ + "index.html" + ] + }, + { + "key": "_flame-DZjlhb1N.js", + "file": "assets/flame-DZjlhb1N.js", + "name": "flame", + "imports": [ + "index.html" + ] + }, + { + "key": "_generateCategoricalChart-DZci5nEc.js", + "file": "assets/generateCategoricalChart-DZci5nEc.js", + "name": "generateCategoricalChart", + "imports": [ + "index.html", + "_string-CvptbcKz.js" + ] + }, + { + "key": "_index-DkAE3Ges.js", + "file": "assets/index-DkAE3Ges.js", + "name": "index", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "_index-DmtgVR0T.js", + "file": "assets/index-DmtgVR0T.js", + "name": "index", + "imports": [ + "index.html", + "_string-CvptbcKz.js" + ] + }, + { + "key": "_input-BRlCt18M.js", + "file": "assets/input-BRlCt18M.js", + "name": "input", + "imports": [ + "index.html" + ] + }, + { + "key": "_jspdf.es.min-CWsuy3PZ.js", + "file": "assets/jspdf.es.min-CWsuy3PZ.js", + "name": "jspdf.es.min", + "isDynamicEntry": true, + "imports": [ + "index.html" + ], + "dynamicImports": [ + "node_modules/html2canvas/dist/html2canvas.esm.js", + "node_modules/dompurify/dist/purify.es.mjs", + "node_modules/canvg/lib/index.es.js" + ] + }, + { + "key": "_markdown-CePz3aK8.js", + "file": "assets/markdown-CePz3aK8.js", + "name": "markdown", + "imports": [ + "index.html" + ] + }, + { + "key": "_plus-B_HHoAv5.js", + "file": "assets/plus-B_HHoAv5.js", + "name": "plus", + "imports": [ + "index.html" + ] + }, + { + "key": "_prefill-CPra3pyT.js", + "file": "assets/prefill-CPra3pyT.js", + "name": "prefill", + "imports": [ + "index.html" + ] + }, + { + "key": "_progress-BOMHF48O.js", + "file": "assets/progress-BOMHF48O.js", + "name": "progress", + "imports": [ + "index.html" + ] + }, + { + "key": "_proxy-CyJslaS_.js", + "file": "assets/proxy-CyJslaS_.js", + "name": "proxy", + "imports": [ + "index.html", + "_use-reduced-motion-DIRZraea.js" + ] + }, + { + "key": "_refresh-cw-Dx_rovVU.js", + "file": "assets/refresh-cw-Dx_rovVU.js", + "name": "refresh-cw", + "imports": [ + "index.html" + ] + }, + { + "key": "_rotate-ccw-g7oK_yc2.js", + "file": "assets/rotate-ccw-g7oK_yc2.js", + "name": "rotate-ccw", + "imports": [ + "index.html" + ] + }, + { + "key": "_save-VRo3zf0k.js", + "file": "assets/save-VRo3zf0k.js", + "name": "save", + "imports": [ + "index.html" + ] + }, + { + "key": "_scroll-area-B5p3Y_vr.js", + "file": "assets/scroll-area-B5p3Y_vr.js", + "name": "scroll-area", + "imports": [ + "index.html" + ] + }, + { + "key": "_search-70EybyUQ.js", + "file": "assets/search-70EybyUQ.js", + "name": "search", + "imports": [ + "index.html" + ] + }, + { + "key": "_send-CYByA_eA.js", + "file": "assets/send-CYByA_eA.js", + "name": "send", + "imports": [ + "index.html" + ] + }, + { + "key": "_sheet-BqybMOOx.js", + "file": "assets/sheet-BqybMOOx.js", + "name": "sheet", + "imports": [ + "index.html" + ] + }, + { + "key": "_shield-DsgIRl3K.js", + "file": "assets/shield-DsgIRl3K.js", + "name": "shield", + "imports": [ + "index.html" + ] + }, + { + "key": "_shield-check-1u8_MjqX.js", + "file": "assets/shield-check-1u8_MjqX.js", + "name": "shield-check", + "imports": [ + "index.html" + ] + }, + { + "key": "_streaming-indicator-DNahz1d3.js", + "file": "assets/streaming-indicator-DNahz1d3.js", + "name": "streaming-indicator", + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_refresh-cw-Dx_rovVU.js", + "_file-text-Bg60aQFS.js", + "_external-link-hWs27zxC.js", + "_badge-DOuwE0tA.js" + ] + }, + { + "key": "_string-CvptbcKz.js", + "file": "assets/string-CvptbcKz.js", + "name": "string" + }, + { + "key": "_switch-CNm-rbvw.js", + "file": "assets/switch-CNm-rbvw.js", + "name": "switch", + "imports": [ + "index.html" + ] + }, + { + "key": "_tabs-DSSrXhZO.js", + "file": "assets/tabs-DSSrXhZO.js", + "name": "tabs", + "imports": [ + "index.html" + ] + }, + { + "key": "_target-DmELU7_M.js", + "file": "assets/target-DmELU7_M.js", + "name": "target", + "imports": [ + "index.html" + ] + }, + { + "key": "_textarea-BxuDaNfy.js", + "file": "assets/textarea-BxuDaNfy.js", + "name": "textarea", + "imports": [ + "index.html" + ] + }, + { + "key": "_trash-2-rdeQ5AHC.js", + "file": "assets/trash-2-rdeQ5AHC.js", + "name": "trash-2", + "imports": [ + "index.html" + ] + }, + { + "key": "_triangle-alert-DAkLJ_Hs.js", + "file": "assets/triangle-alert-DAkLJ_Hs.js", + "name": "triangle-alert", + "imports": [ + "index.html" + ] + }, + { + "key": "_url-D1MGTXu_.js", + "file": "assets/url-D1MGTXu_.js", + "name": "url", + "imports": [ + "index.html" + ] + }, + { + "key": "_use-reduced-motion-DIRZraea.js", + "file": "assets/use-reduced-motion-DIRZraea.js", + "name": "use-reduced-motion", + "imports": [ + "index.html" + ] + }, + { + "key": "_use-speech-to-text-DDdPsIfh.js", + "file": "assets/use-speech-to-text-DDdPsIfh.js", + "name": "use-speech-to-text", + "imports": [ + "index.html" + ] + }, + { + "key": "_use-subscription-TWRM-hpK.js", + "file": "assets/use-subscription-TWRM-hpK.js", + "name": "use-subscription", + "imports": [ + "index.html" + ] + }, + { + "key": "_users-DWoVwdaK.js", + "file": "assets/users-DWoVwdaK.js", + "name": "users", + "imports": [ + "index.html" + ] + }, + { + "key": "_zap-YNjUnyuz.js", + "file": "assets/zap-YNjUnyuz.js", + "name": "zap", + "imports": [ + "index.html" + ] + }, + { + "key": "index.html", + "file": "assets/index-tRveWWC9.js", + "name": "index", + "src": "index.html", + "isEntry": true, + "isDynamicEntry": true, + "dynamicImports": [ + "node_modules/@capacitor/browser/dist/esm/web.js", + "src/pages/LandingPage.tsx", + "src/pages/TermsPage.tsx", + "src/pages/PrivacyPage.tsx", + "src/pages/HomePage.tsx", + "src/pages/GeneratePage.tsx", + "src/pages/AttackPage.tsx", + "src/pages/BrainstormPage.tsx", + "src/pages/FactoidsPage.tsx", + "src/pages/AskPage.tsx", + "src/pages/CrossfirePage.tsx", + "src/pages/SettingsPage.tsx", + "src/pages/HistoryPage.tsx", + "src/pages/LibraryPage.tsx", + "src/pages/TimerPage.tsx", + "src/pages/SparringPage.tsx", + "src/pages/AdminPage.tsx", + "src/pages/SharedPage.tsx", + "src/pages/FlowchartPage.tsx", + "src/pages/LoginPage.tsx", + "src/pages/SourcesPage.tsx", + "src/pages/NotFound.tsx", + "node_modules/@vercel/analytics/dist/react/index.mjs", + "node_modules/@vercel/speed-insights/dist/react/index.mjs", + "node_modules/@capacitor/app/dist/esm/web.js", + "node_modules/@capacitor/haptics/dist/esm/web.js" + ], + "css": [ + "assets/index-DWCAClxw.css" + ] + }, + { + "key": "node_modules/@capacitor/app/dist/esm/web.js", + "file": "assets/web-BHBSb3xY.js", + "name": "web", + "src": "node_modules/@capacitor/app/dist/esm/web.js", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/@capacitor/browser/dist/esm/web.js", + "file": "assets/web-CpI6q_hi.js", + "name": "web", + "src": "node_modules/@capacitor/browser/dist/esm/web.js", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/@capacitor/haptics/dist/esm/web.js", + "file": "assets/web-SENkJeDj.js", + "name": "web", + "src": "node_modules/@capacitor/haptics/dist/esm/web.js", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/@vercel/analytics/dist/react/index.mjs", + "file": "assets/index-KVFzqUoF.js", + "name": "index", + "src": "node_modules/@vercel/analytics/dist/react/index.mjs", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/@vercel/speed-insights/dist/react/index.mjs", + "file": "assets/index-D8Vu6iKp.js", + "name": "index", + "src": "node_modules/@vercel/speed-insights/dist/react/index.mjs", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/canvg/lib/index.es.js", + "file": "assets/index.es-4Ssukks_.js", + "name": "index.es", + "src": "node_modules/canvg/lib/index.es.js", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_jspdf.es.min-CWsuy3PZ.js" + ] + }, + { + "key": "node_modules/docx/dist/index.mjs", + "file": "assets/index-BOF6v8rb.js", + "name": "index", + "src": "node_modules/docx/dist/index.mjs", + "isDynamicEntry": true + }, + { + "key": "node_modules/dompurify/dist/purify.es.mjs", + "file": "assets/purify.es-4eNOHKSq.js", + "name": "purify.es", + "src": "node_modules/dompurify/dist/purify.es.mjs", + "isDynamicEntry": true + }, + { + "key": "node_modules/html2canvas/dist/html2canvas.esm.js", + "file": "assets/html2canvas.esm-DXEQVQnt.js", + "name": "html2canvas.esm", + "src": "node_modules/html2canvas/dist/html2canvas.esm.js", + "isDynamicEntry": true + }, + { + "key": "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs", + "file": "assets/jspdf.plugin.autotable-BBLUVd7n.js", + "name": "jspdf.plugin.autotable", + "src": "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs", + "isDynamicEntry": true + }, + { + "key": "node_modules/pdfjs-dist/legacy/build/pdf.mjs", + "file": "assets/pdf-ClZ_1Nv1.js", + "name": "pdf", + "src": "node_modules/pdfjs-dist/legacy/build/pdf.mjs", + "isDynamicEntry": true + }, + { + "key": "node_modules/pdfjs-dist/legacy/build/pdf.worker.mjs", + "file": "assets/pdf.worker-DTrjDNvb.mjs", + "src": "node_modules/pdfjs-dist/legacy/build/pdf.worker.mjs" + }, + { + "key": "src/lib/export-utils.ts", + "file": "assets/export-utils-rzho5miz.js", + "name": "export-utils", + "src": "src/lib/export-utils.ts", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_date-format-CG2nx3lR.js" + ], + "dynamicImports": [ + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-DZLZy2z8.js", + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-DZLZy2z8.js", + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-DZLZy2z8.js", + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-DZLZy2z8.js", + "index.html", + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-DZLZy2z8.js" + ] + }, + { + "key": "src/lib/pdf-export-utils.ts", + "file": "assets/pdf-export-utils-e2iA0MLn.js", + "name": "pdf-export-utils", + "src": "src/lib/pdf-export-utils.ts", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_date-format-CG2nx3lR.js" + ], + "dynamicImports": [ + "_jspdf.es.min-CWsuy3PZ.js", + "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs" + ] + }, + { + "key": "src/pages/AdminPage.tsx", + "file": "assets/AdminPage-D-E666bh.js", + "name": "AdminPage", + "src": "src/pages/AdminPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_input-BRlCt18M.js", + "_badge-DOuwE0tA.js", + "_tabs-DSSrXhZO.js", + "_scroll-area-B5p3Y_vr.js", + "_date-format-CG2nx3lR.js", + "_checkbox-CcU5IimS.js", + "_textarea-BxuDaNfy.js", + "_alert-dialog-DDhjApTe.js", + "_search-70EybyUQ.js", + "_trash-2-rdeQ5AHC.js", + "_shield-DsgIRl3K.js", + "_circle-alert-ChwbUVv0.js", + "_users-DWoVwdaK.js", + "_credit-card-CFOMlw74.js", + "_generateCategoricalChart-DZci5nEc.js", + "_copy-B5L0aXUh.js", + "_rotate-ccw-g7oK_yc2.js", + "_string-CvptbcKz.js" + ] + }, + { + "key": "src/pages/AskPage.tsx", + "file": "assets/AskPage-Dbwv_nvF.js", + "name": "AskPage", + "src": "src/pages/AskPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_input-BRlCt18M.js", + "_markdown-CePz3aK8.js", + "_card-DNuxaVKj.js", + "_switch-CNm-rbvw.js", + "_scroll-area-B5p3Y_vr.js", + "_use-speech-to-text-DDdPsIfh.js", + "_date-format-CG2nx3lR.js", + "_ModelSelector-DPUAfvNL.js", + "_sheet-BqybMOOx.js", + "_use-reduced-motion-DIRZraea.js", + "_save-VRo3zf0k.js", + "_rotate-ccw-g7oK_yc2.js", + "_circle-help-Dn3L85BO.js", + "_search-70EybyUQ.js", + "_send-CYByA_eA.js", + "_bookmark-D5QAu8Kr.js", + "_client-B2Hmm4S3.js", + "_ModelRestrictedModal-UK583TYw.js", + "_error-display-B8noTjms.js", + "_PricingModal-DeTbMjVf.js", + "_badge-DOuwE0tA.js", + "_use-subscription-TWRM-hpK.js", + "_url-D1MGTXu_.js", + "_triangle-alert-DAkLJ_Hs.js", + "_zap-YNjUnyuz.js", + "_edge-function-error-dlcwXP30.js", + "_crown-C2TeHzqk.js" + ] + }, + { + "key": "src/pages/AttackPage.tsx", + "file": "assets/AttackPage-P8XAOh8x.js", + "name": "AttackPage", + "src": "src/pages/AttackPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_streaming-indicator-DNahz1d3.js", + "_textarea-BxuDaNfy.js", + "_switch-CNm-rbvw.js", + "_card-DNuxaVKj.js", + "_client-B2Hmm4S3.js", + "_ModelSelector-DPUAfvNL.js", + "_prefill-CPra3pyT.js", + "_search-70EybyUQ.js", + "_badge-DOuwE0tA.js", + "_progress-BOMHF48O.js", + "_markdown-CePz3aK8.js", + "_ModelRestrictedModal-UK583TYw.js", + "_flame-DZjlhb1N.js", + "_circle-alert-ChwbUVv0.js", + "_refresh-cw-Dx_rovVU.js", + "_triangle-alert-DAkLJ_Hs.js", + "_error-display-B8noTjms.js", + "_PricingModal-DeTbMjVf.js", + "_file-text-Bg60aQFS.js", + "_external-link-hWs27zxC.js", + "_url-D1MGTXu_.js", + "_use-subscription-TWRM-hpK.js", + "_zap-YNjUnyuz.js", + "_input-BRlCt18M.js", + "_edge-function-error-dlcwXP30.js", + "_crown-C2TeHzqk.js" + ], + "dynamicImports": [ + "src/lib/pdf-export-utils.ts", + "src/lib/export-utils.ts", + "src/lib/export-utils.ts" + ] + }, + { + "key": "src/pages/BrainstormPage.tsx", + "file": "assets/BrainstormPage-Chepxmgy.js", + "name": "BrainstormPage", + "src": "src/pages/BrainstormPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_streaming-indicator-DNahz1d3.js", + "_input-BRlCt18M.js", + "_textarea-BxuDaNfy.js", + "_card-DNuxaVKj.js", + "_ModelSelector-DPUAfvNL.js", + "_brain-BDMiUfF_.js", + "_badge-DOuwE0tA.js", + "_ModelRestrictedModal-UK583TYw.js", + "_empty-state-BkQZkMeo.js", + "_triangle-alert-DAkLJ_Hs.js", + "_arrow-right-DE4H5pKc.js", + "_client-B2Hmm4S3.js", + "_error-display-B8noTjms.js", + "_PricingModal-DeTbMjVf.js", + "_refresh-cw-Dx_rovVU.js", + "_file-text-Bg60aQFS.js", + "_external-link-hWs27zxC.js", + "_use-subscription-TWRM-hpK.js", + "_zap-YNjUnyuz.js", + "_url-D1MGTXu_.js", + "_edge-function-error-dlcwXP30.js", + "_crown-C2TeHzqk.js" + ], + "dynamicImports": [ + "src/lib/export-utils.ts", + "src/lib/export-utils.ts", + "src/lib/pdf-export-utils.ts" + ] + }, + { + "key": "src/pages/CrossfirePage.tsx", + "file": "assets/CrossfirePage-B296oUFm.js", + "name": "CrossfirePage", + "src": "src/pages/CrossfirePage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_badge-DOuwE0tA.js", + "_card-DNuxaVKj.js", + "_checkbox-CcU5IimS.js", + "_textarea-BxuDaNfy.js", + "_client-B2Hmm4S3.js", + "_error-display-B8noTjms.js", + "_use-reduced-motion-DIRZraea.js", + "_flame-DZjlhb1N.js", + "_circle-alert-ChwbUVv0.js", + "_refresh-cw-Dx_rovVU.js", + "_clock-3-BP2woNWy.js", + "_send-CYByA_eA.js", + "_rotate-ccw-g7oK_yc2.js", + "_shield-check-1u8_MjqX.js", + "_proxy-CyJslaS_.js", + "_url-D1MGTXu_.js" + ] + }, + { + "key": "src/pages/FactoidsPage.tsx", + "file": "assets/FactoidsPage-DXmrPY6J.js", + "name": "FactoidsPage", + "src": "src/pages/FactoidsPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_streaming-indicator-DNahz1d3.js", + "_input-BRlCt18M.js", + "_card-DNuxaVKj.js", + "_client-B2Hmm4S3.js", + "_ModelSelector-DPUAfvNL.js", + "_search-70EybyUQ.js", + "_badge-DOuwE0tA.js", + "_progress-BOMHF48O.js", + "_ModelRestrictedModal-UK583TYw.js", + "_triangle-alert-DAkLJ_Hs.js", + "_external-link-hWs27zxC.js", + "_bookmark-D5QAu8Kr.js", + "_error-display-B8noTjms.js", + "_PricingModal-DeTbMjVf.js", + "_refresh-cw-Dx_rovVU.js", + "_file-text-Bg60aQFS.js", + "_url-D1MGTXu_.js", + "_use-subscription-TWRM-hpK.js", + "_zap-YNjUnyuz.js", + "_edge-function-error-dlcwXP30.js", + "_crown-C2TeHzqk.js" + ], + "dynamicImports": [ + "src/lib/export-utils.ts", + "src/lib/export-utils.ts", + "src/lib/pdf-export-utils.ts" + ] + }, + { + "key": "src/pages/FlowchartPage.tsx", + "file": "assets/FlowchartPage-BJaDG0uJ.js", + "name": "FlowchartPage", + "src": "src/pages/FlowchartPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_badge-DOuwE0tA.js", + "_input-BRlCt18M.js", + "_textarea-BxuDaNfy.js", + "_alert-dialog-DDhjApTe.js", + "_index-DmtgVR0T.js", + "_trash-2-rdeQ5AHC.js", + "_save-VRo3zf0k.js", + "_plus-B_HHoAv5.js", + "_download-7v2KEx-L.js", + "_target-DmELU7_M.js", + "_shield-DsgIRl3K.js", + "_triangle-alert-DAkLJ_Hs.js", + "_string-CvptbcKz.js" + ], + "css": [ + "assets/FlowchartPage-Fd0xVSp_.css" + ] + }, + { + "key": "src/pages/GeneratePage.tsx", + "file": "assets/GeneratePage-BVMnUHTy.js", + "name": "GeneratePage", + "src": "src/pages/GeneratePage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_streaming-indicator-DNahz1d3.js", + "_input-BRlCt18M.js", + "_card-DNuxaVKj.js", + "_client-B2Hmm4S3.js", + "_use-speech-to-text-DDdPsIfh.js", + "_ModelSelector-DPUAfvNL.js", + "_prefill-CPra3pyT.js", + "_badge-DOuwE0tA.js", + "_markdown-CePz3aK8.js", + "_ModelRestrictedModal-UK583TYw.js", + "_date-format-CG2nx3lR.js", + "_flame-DZjlhb1N.js", + "_save-VRo3zf0k.js", + "_refresh-cw-Dx_rovVU.js", + "_target-DmELU7_M.js", + "_shield-DsgIRl3K.js", + "_triangle-alert-DAkLJ_Hs.js", + "_error-display-B8noTjms.js", + "_PricingModal-DeTbMjVf.js", + "_use-reduced-motion-DIRZraea.js", + "_index-DmtgVR0T.js", + "_file-text-Bg60aQFS.js", + "_external-link-hWs27zxC.js", + "_url-D1MGTXu_.js", + "_use-subscription-TWRM-hpK.js", + "_zap-YNjUnyuz.js", + "_edge-function-error-dlcwXP30.js", + "_crown-C2TeHzqk.js", + "_string-CvptbcKz.js" + ], + "dynamicImports": [ + "src/lib/export-utils.ts", + "src/lib/pdf-export-utils.ts", + "src/lib/export-utils.ts" + ] + }, + { + "key": "src/pages/HistoryPage.tsx", + "file": "assets/HistoryPage-Dq0oiiwR.js", + "name": "HistoryPage", + "src": "src/pages/HistoryPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_tabs-DSSrXhZO.js", + "_badge-DOuwE0tA.js", + "_scroll-area-B5p3Y_vr.js", + "_date-format-CG2nx3lR.js", + "_alert-dialog-DDhjApTe.js", + "_empty-state-BkQZkMeo.js", + "_file-text-Bg60aQFS.js", + "_zap-YNjUnyuz.js", + "_brain-BDMiUfF_.js", + "_trash-2-rdeQ5AHC.js" + ] + }, + { + "key": "src/pages/HomePage.tsx", + "file": "assets/HomePage-CejS6iLs.js", + "name": "HomePage", + "src": "src/pages/HomePage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_arrow-right-DE4H5pKc.js" + ] + }, + { + "key": "src/pages/LandingPage.tsx", + "file": "assets/LandingPage-C861HgyL.js", + "name": "LandingPage", + "src": "src/pages/LandingPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_use-reduced-motion-DIRZraea.js", + "_proxy-CyJslaS_.js", + "_arrow-right-DE4H5pKc.js", + "_crown-C2TeHzqk.js", + "_zap-YNjUnyuz.js", + "_brain-BDMiUfF_.js", + "_search-70EybyUQ.js", + "_users-DWoVwdaK.js" + ] + }, + { + "key": "src/pages/LibraryPage.tsx", + "file": "assets/LibraryPage-da1Lz-zX.js", + "name": "LibraryPage", + "src": "src/pages/LibraryPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_input-BRlCt18M.js", + "_textarea-BxuDaNfy.js", + "_badge-DOuwE0tA.js", + "_switch-CNm-rbvw.js", + "_date-format-CG2nx3lR.js", + "_url-D1MGTXu_.js", + "_edge-function-error-dlcwXP30.js", + "_alert-dialog-DDhjApTe.js", + "_sheet-BqybMOOx.js", + "_plus-B_HHoAv5.js", + "_trash-2-rdeQ5AHC.js", + "_search-70EybyUQ.js", + "_shield-check-1u8_MjqX.js", + "_file-text-Bg60aQFS.js", + "_copy-B5L0aXUh.js", + "_save-VRo3zf0k.js", + "_external-link-hWs27zxC.js" + ], + "dynamicImports": [ + "_index-DkAE3Ges.js", + "node_modules/pdfjs-dist/legacy/build/pdf.mjs" + ], + "assets": [ + "assets/pdf.worker-DTrjDNvb.mjs" + ] + }, + { + "key": "src/pages/LoginPage.tsx", + "file": "assets/LoginPage-NBbG4nMQ.js", + "name": "LoginPage", + "src": "src/pages/LoginPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_input-BRlCt18M.js", + "_tabs-DSSrXhZO.js" + ] + }, + { + "key": "src/pages/NotFound.tsx", + "file": "assets/NotFound-Dvo2F00T.js", + "name": "NotFound", + "src": "src/pages/NotFound.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "src/pages/PrivacyPage.tsx", + "file": "assets/PrivacyPage-D8yXViIB.js", + "name": "PrivacyPage", + "src": "src/pages/PrivacyPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "src/pages/SettingsPage.tsx", + "file": "assets/SettingsPage-CCq-OUYp.js", + "name": "SettingsPage", + "src": "src/pages/SettingsPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_badge-DOuwE0tA.js", + "_use-subscription-TWRM-hpK.js", + "_PricingModal-DeTbMjVf.js", + "_date-format-CG2nx3lR.js", + "_input-BRlCt18M.js", + "_crown-C2TeHzqk.js", + "_credit-card-CFOMlw74.js", + "_zap-YNjUnyuz.js", + "_shield-DsgIRl3K.js", + "_trash-2-rdeQ5AHC.js", + "_edge-function-error-dlcwXP30.js" + ] + }, + { + "key": "src/pages/SharedPage.tsx", + "file": "assets/SharedPage-Btv4hRK8.js", + "name": "SharedPage", + "src": "src/pages/SharedPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_badge-DOuwE0tA.js", + "_date-format-CG2nx3lR.js", + "_download-7v2KEx-L.js", + "_external-link-hWs27zxC.js" + ] + }, + { + "key": "src/pages/SourcesPage.tsx", + "file": "assets/SourcesPage-DSqTyQn_.js", + "name": "SourcesPage", + "src": "src/pages/SourcesPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "src/pages/SparringPage.tsx", + "file": "assets/SparringPage-nXprKVny.js", + "name": "SparringPage", + "src": "src/pages/SparringPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_client-B2Hmm4S3.js", + "_card-DNuxaVKj.js", + "_textarea-BxuDaNfy.js", + "_badge-DOuwE0tA.js", + "_ModelSelector-DPUAfvNL.js", + "_arrow-right-DE4H5pKc.js", + "_progress-BOMHF48O.js", + "_markdown-CePz3aK8.js", + "_clock-3-BP2woNWy.js", + "_rotate-ccw-g7oK_yc2.js", + "_circle-alert-ChwbUVv0.js", + "_send-CYByA_eA.js", + "_download-7v2KEx-L.js", + "_generateCategoricalChart-DZci5nEc.js", + "_target-DmELU7_M.js", + "_file-text-Bg60aQFS.js", + "_circle-help-Dn3L85BO.js", + "_url-D1MGTXu_.js", + "_use-subscription-TWRM-hpK.js", + "_string-CvptbcKz.js" + ], + "dynamicImports": [ + "src/lib/export-utils.ts", + "src/lib/pdf-export-utils.ts" + ] + }, + { + "key": "src/pages/TermsPage.tsx", + "file": "assets/TermsPage-Bv6alyEn.js", + "name": "TermsPage", + "src": "src/pages/TermsPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "src/pages/TimerPage.tsx", + "file": "assets/TimerPage-gsuEL79V.js", + "name": "TimerPage", + "src": "src/pages/TimerPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_badge-DOuwE0tA.js", + "_progress-BOMHF48O.js", + "_rotate-ccw-g7oK_yc2.js" + ] + } + ], + "routeStaticGraphs": [ + { + "route": "index.html", + "file": "assets/index-tRveWWC9.js", + "files": [ + "assets/index-tRveWWC9.js" + ] + }, + { + "route": "/", + "file": "assets/LandingPage-C861HgyL.js", + "files": [ + "assets/LandingPage-C861HgyL.js", + "assets/users-DWoVwdaK.js", + "assets/index-tRveWWC9.js", + "assets/search-70EybyUQ.js", + "assets/brain-BDMiUfF_.js", + "assets/zap-YNjUnyuz.js", + "assets/crown-C2TeHzqk.js", + "assets/arrow-right-DE4H5pKc.js", + "assets/proxy-CyJslaS_.js", + "assets/use-reduced-motion-DIRZraea.js" + ] + }, + { + "route": "/login", + "file": "assets/LoginPage-NBbG4nMQ.js", + "files": [ + "assets/LoginPage-NBbG4nMQ.js", + "assets/tabs-DSSrXhZO.js", + "assets/index-tRveWWC9.js", + "assets/input-BRlCt18M.js", + "assets/card-DNuxaVKj.js" + ] + }, + { + "route": "/app", + "file": "assets/HomePage-CejS6iLs.js", + "files": [ + "assets/HomePage-CejS6iLs.js", + "assets/arrow-right-DE4H5pKc.js", + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js" + ] + }, + { + "route": "/app/generate", + "file": "assets/GeneratePage-BVMnUHTy.js", + "files": [ + "assets/GeneratePage-BVMnUHTy.js", + "assets/string-CvptbcKz.js", + "assets/crown-C2TeHzqk.js", + "assets/index-tRveWWC9.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/zap-YNjUnyuz.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/url-D1MGTXu_.js", + "assets/external-link-hWs27zxC.js", + "assets/file-text-Bg60aQFS.js", + "assets/index-DmtgVR0T.js", + "assets/use-reduced-motion-DIRZraea.js", + "assets/PricingModal-DeTbMjVf.js", + "assets/badge-DOuwE0tA.js", + "assets/input-BRlCt18M.js", + "assets/error-display-B8noTjms.js", + "assets/client-B2Hmm4S3.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/shield-DsgIRl3K.js", + "assets/target-DmELU7_M.js", + "assets/refresh-cw-Dx_rovVU.js", + "assets/save-VRo3zf0k.js", + "assets/flame-DZjlhb1N.js", + "assets/date-format-CG2nx3lR.js", + "assets/ModelRestrictedModal-UK583TYw.js", + "assets/markdown-CePz3aK8.js", + "assets/prefill-CPra3pyT.js", + "assets/ModelSelector-DPUAfvNL.js", + "assets/use-speech-to-text-DDdPsIfh.js", + "assets/card-DNuxaVKj.js", + "assets/streaming-indicator-DNahz1d3.js" + ] + }, + { + "route": "/app/attack", + "file": "assets/AttackPage-P8XAOh8x.js", + "files": [ + "assets/AttackPage-P8XAOh8x.js", + "assets/crown-C2TeHzqk.js", + "assets/index-tRveWWC9.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/input-BRlCt18M.js", + "assets/zap-YNjUnyuz.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/url-D1MGTXu_.js", + "assets/external-link-hWs27zxC.js", + "assets/file-text-Bg60aQFS.js", + "assets/PricingModal-DeTbMjVf.js", + "assets/badge-DOuwE0tA.js", + "assets/error-display-B8noTjms.js", + "assets/client-B2Hmm4S3.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/refresh-cw-Dx_rovVU.js", + "assets/circle-alert-ChwbUVv0.js", + "assets/flame-DZjlhb1N.js", + "assets/ModelRestrictedModal-UK583TYw.js", + "assets/markdown-CePz3aK8.js", + "assets/progress-BOMHF48O.js", + "assets/search-70EybyUQ.js", + "assets/prefill-CPra3pyT.js", + "assets/ModelSelector-DPUAfvNL.js", + "assets/card-DNuxaVKj.js", + "assets/switch-CNm-rbvw.js", + "assets/textarea-BxuDaNfy.js", + "assets/streaming-indicator-DNahz1d3.js" + ] + }, + { + "route": "/app/flowchart", + "file": "assets/FlowchartPage-BJaDG0uJ.js", + "files": [ + "assets/FlowchartPage-BJaDG0uJ.js", + "assets/string-CvptbcKz.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/index-tRveWWC9.js", + "assets/shield-DsgIRl3K.js", + "assets/target-DmELU7_M.js", + "assets/download-7v2KEx-L.js", + "assets/plus-B_HHoAv5.js", + "assets/save-VRo3zf0k.js", + "assets/trash-2-rdeQ5AHC.js", + "assets/index-DmtgVR0T.js", + "assets/alert-dialog-DDhjApTe.js", + "assets/textarea-BxuDaNfy.js", + "assets/input-BRlCt18M.js", + "assets/badge-DOuwE0tA.js", + "assets/card-DNuxaVKj.js" + ] + }, + { + "route": "/app/history", + "file": "assets/HistoryPage-Dq0oiiwR.js", + "files": [ + "assets/HistoryPage-Dq0oiiwR.js", + "assets/trash-2-rdeQ5AHC.js", + "assets/index-tRveWWC9.js", + "assets/brain-BDMiUfF_.js", + "assets/zap-YNjUnyuz.js", + "assets/file-text-Bg60aQFS.js", + "assets/empty-state-BkQZkMeo.js", + "assets/alert-dialog-DDhjApTe.js", + "assets/date-format-CG2nx3lR.js", + "assets/scroll-area-B5p3Y_vr.js", + "assets/badge-DOuwE0tA.js", + "assets/tabs-DSSrXhZO.js", + "assets/card-DNuxaVKj.js" + ] + }, + { + "route": "/app/admin", + "file": "assets/AdminPage-D-E666bh.js", + "files": [ + "assets/AdminPage-D-E666bh.js", + "assets/string-CvptbcKz.js", + "assets/rotate-ccw-g7oK_yc2.js", + "assets/index-tRveWWC9.js", + "assets/copy-B5L0aXUh.js", + "assets/generateCategoricalChart-DZci5nEc.js", + "assets/credit-card-CFOMlw74.js", + "assets/users-DWoVwdaK.js", + "assets/circle-alert-ChwbUVv0.js", + "assets/shield-DsgIRl3K.js", + "assets/trash-2-rdeQ5AHC.js", + "assets/search-70EybyUQ.js", + "assets/alert-dialog-DDhjApTe.js", + "assets/textarea-BxuDaNfy.js", + "assets/checkbox-CcU5IimS.js", + "assets/date-format-CG2nx3lR.js", + "assets/scroll-area-B5p3Y_vr.js", + "assets/tabs-DSSrXhZO.js", + "assets/badge-DOuwE0tA.js", + "assets/input-BRlCt18M.js", + "assets/card-DNuxaVKj.js" + ] + } + ], + "chunks": [ + { + "file": "assets/index-tRveWWC9.js", + "bytes": 1138188, + "gzipBytes": 351547, + "imports": [], + "modules": [ + "\u0000vite/modulepreload-polyfill.js", + "src/index.css", + "src/jam-loader.ts", + "\u0000commonjsHelpers.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/jsx-runtime.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/cjs/react-jsx-runtime.production.min.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/cjs/react.production.min.js?commonjs-exports", + "node_modules/react/cjs/react.production.min.js", + "node_modules/react/index.js", + "node_modules/react/cjs/react-jsx-runtime.production.min.js", + "node_modules/react/jsx-runtime.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/jsx-runtime.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/client.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/cjs/react-dom.production.min.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scheduler/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scheduler/cjs/scheduler.production.min.js?commonjs-exports", + "node_modules/scheduler/cjs/scheduler.production.min.js", + "node_modules/scheduler/index.js", + "node_modules/react-dom/cjs/react-dom.production.min.js", + "node_modules/react-dom/index.js", + "node_modules/react-dom/client.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/client.js?commonjs-es-import", + "\u0000vite/preload-helper.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/index.js?commonjs-es-import", + "src/hooks/use-toast.ts", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/index.js?commonjs-es-import", + "node_modules/@radix-ui/primitive/dist/index.mjs", + "node_modules/@radix-ui/react-compose-refs/dist/index.mjs", + "node_modules/@radix-ui/react-context/dist/index.mjs", + "node_modules/@radix-ui/react-slot/dist/index.mjs", + "node_modules/@radix-ui/react-collection/dist/index.mjs", + "node_modules/@radix-ui/react-primitive/dist/index.mjs", + "node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs", + "node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs", + "node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs", + "node_modules/@radix-ui/react-portal/dist/index.mjs", + "node_modules/@radix-ui/react-presence/dist/index.mjs", + "node_modules/@radix-ui/react-use-effect-event/dist/index.mjs", + "node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs", + "node_modules/@radix-ui/react-visually-hidden/dist/index.mjs", + "node_modules/@radix-ui/react-toast/dist/index.mjs", + "node_modules/clsx/dist/clsx.mjs", + "node_modules/class-variance-authority/dist/index.mjs", + "node_modules/lucide-react/dist/esm/shared/src/utils.js", + "node_modules/lucide-react/dist/esm/defaultAttributes.js", + "node_modules/lucide-react/dist/esm/Icon.js", + "node_modules/lucide-react/dist/esm/createLucideIcon.js", + "node_modules/lucide-react/dist/esm/icons/book-open.js", + "node_modules/lucide-react/dist/esm/icons/check.js", + "node_modules/lucide-react/dist/esm/icons/chevron-down.js", + "node_modules/lucide-react/dist/esm/icons/chevron-up.js", + "node_modules/lucide-react/dist/esm/icons/clock.js", + "node_modules/lucide-react/dist/esm/icons/crosshair.js", + "node_modules/lucide-react/dist/esm/icons/database.js", + "node_modules/lucide-react/dist/esm/icons/dumbbell.js", + "node_modules/lucide-react/dist/esm/icons/git-branch.js", + "node_modules/lucide-react/dist/esm/icons/globe.js", + "node_modules/lucide-react/dist/esm/icons/house.js", + "node_modules/lucide-react/dist/esm/icons/laptop.js", + "node_modules/lucide-react/dist/esm/icons/lightbulb.js", + "node_modules/lucide-react/dist/esm/icons/loader-circle.js", + "node_modules/lucide-react/dist/esm/icons/megaphone.js", + "node_modules/lucide-react/dist/esm/icons/menu.js", + "node_modules/lucide-react/dist/esm/icons/message-circle.js", + "node_modules/lucide-react/dist/esm/icons/moon.js", + "node_modules/lucide-react/dist/esm/icons/settings.js", + "node_modules/lucide-react/dist/esm/icons/sparkles.js", + "node_modules/lucide-react/dist/esm/icons/sun.js", + "node_modules/lucide-react/dist/esm/icons/swords.js", + "node_modules/lucide-react/dist/esm/icons/timer.js", + "node_modules/lucide-react/dist/esm/icons/wifi-off.js", + "node_modules/lucide-react/dist/esm/icons/x.js", + "node_modules/tailwind-merge/dist/bundle-mjs.mjs", + "src/lib/utils.ts", + "src/components/ui/toast.tsx", + "src/components/ui/toaster.tsx", + "node_modules/next-themes/dist/index.mjs", + "node_modules/sonner/dist/index.mjs", + "src/components/ui/sonner.tsx", + "node_modules/@radix-ui/react-id/dist/index.mjs", + "node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs", + "node_modules/@floating-ui/core/dist/floating-ui.core.mjs", + "node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs", + "node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs", + "node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs", + "node_modules/@radix-ui/react-use-size/dist/index.mjs", + "node_modules/@radix-ui/react-popper/dist/index.mjs", + "node_modules/@radix-ui/react-tooltip/dist/index.mjs", + "src/components/ui/tooltip.tsx", + "node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js", + "node_modules/@tanstack/query-core/build/modern/timeoutManager.js", + "node_modules/@tanstack/query-core/build/modern/utils.js", + "node_modules/@tanstack/query-core/build/modern/environmentManager.js", + "node_modules/@tanstack/query-core/build/modern/subscribable.js", + "node_modules/@tanstack/query-core/build/modern/focusManager.js", + "node_modules/@tanstack/query-core/build/modern/notifyManager.js", + "node_modules/@tanstack/query-core/build/modern/onlineManager.js", + "node_modules/@tanstack/query-core/build/modern/retryer.js", + "node_modules/@tanstack/query-core/build/modern/removable.js", + "node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js", + "node_modules/@tanstack/query-core/build/modern/query.js", + "node_modules/@tanstack/query-core/build/modern/mutation.js", + "node_modules/@tanstack/query-core/build/modern/mutationCache.js", + "node_modules/@tanstack/query-core/build/modern/queryCache.js", + "node_modules/@tanstack/query-core/build/modern/queryClient.js", + "node_modules/react-router/dist/development/chunk-BV7QT456.mjs", + "node_modules/framer-motion/dist/es/utils/use-constant.mjs", + "node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs", + "node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs", + "node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs", + "node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs", + "node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs", + "node_modules/framer-motion/dist/es/components/MotionConfig/index.mjs", + "node_modules/react-i18next/dist/es/utils.js", + "node_modules/react-i18next/dist/es/unescape.js", + "node_modules/react-i18next/dist/es/defaults.js", + "node_modules/react-i18next/dist/es/i18nInstance.js", + "node_modules/react-i18next/dist/es/initReactI18next.js", + "node_modules/react-i18next/dist/es/context.js", + "node_modules/react-i18next/dist/es/useTranslation.js", + "src/components/NavLink.tsx", + "src/components/ui/button.tsx", + "node_modules/zustand/esm/vanilla.mjs", + "node_modules/zustand/esm/react.mjs", + "node_modules/zustand/esm/middleware.mjs", + "node_modules/i18next/dist/esm/i18next.js", + "src/locales/en.json", + "src/locales/es.json", + "src/locales/hu.json", + "src/i18n.ts", + "supabase/functions/_shared/model-catalog.ts", + "src/lib/ai/providers/types.ts", + "node_modules/@supabase/supabase-js/dist/tracingRegistry.mjs", + "node_modules/tslib/tslib.es6.mjs", + "node_modules/@supabase/functions-js/dist/module/helper.js", + "node_modules/@supabase/functions-js/dist/module/types.js", + "node_modules/@supabase/functions-js/dist/module/FunctionsClient.js", + "node_modules/@supabase/postgrest-js/dist/index.mjs", + "node_modules/@supabase/realtime-js/dist/module/lib/websocket-factory.js", + "node_modules/@supabase/realtime-js/dist/module/lib/version.js", + "node_modules/@supabase/realtime-js/dist/module/lib/constants.js", + "node_modules/@supabase/realtime-js/dist/module/lib/serializer.js", + "node_modules/@supabase/realtime-js/dist/module/lib/transformers.js", + "node_modules/@supabase/phoenix/priv/static/phoenix.mjs", + "node_modules/@supabase/realtime-js/dist/module/phoenix/presenceAdapter.js", + "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js", + "node_modules/@supabase/realtime-js/dist/module/lib/normalizeChannelError.js", + "node_modules/@supabase/realtime-js/dist/module/phoenix/channelAdapter.js", + "node_modules/@supabase/realtime-js/dist/module/RealtimePostgresFilterBuilder.js", + "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js", + "node_modules/@supabase/realtime-js/dist/module/phoenix/socketAdapter.js", + "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js", + "node_modules/iceberg-js/dist/index.mjs", + "node_modules/@supabase/storage-js/dist/index.mjs", + "node_modules/@supabase/auth-js/dist/module/lib/version.js", + "node_modules/@supabase/auth-js/dist/module/lib/constants.js", + "node_modules/@supabase/auth-js/dist/module/lib/errors.js", + "node_modules/@supabase/auth-js/dist/module/lib/base64url.js", + "node_modules/@supabase/auth-js/dist/module/lib/helpers.js", + "node_modules/@supabase/auth-js/dist/module/lib/fetch.js", + "node_modules/@supabase/auth-js/dist/module/lib/types.js", + "node_modules/@supabase/auth-js/dist/module/GoTrueAdminApi.js", + "node_modules/@supabase/auth-js/dist/module/lib/local-storage.js", + "node_modules/@supabase/auth-js/dist/module/lib/locks.js", + "node_modules/@supabase/auth-js/dist/module/lib/polyfills.js", + "node_modules/@supabase/auth-js/dist/module/lib/web3/ethereum.js", + "node_modules/@supabase/auth-js/dist/module/lib/webauthn.errors.js", + "node_modules/@supabase/auth-js/dist/module/lib/webauthn.js", + "node_modules/@supabase/auth-js/dist/module/GoTrueClient.js", + "node_modules/@supabase/auth-js/dist/module/AuthClient.js", + "node_modules/@supabase/supabase-js/dist/index.mjs", + "src/lib/supabase/env.ts", + "src/lib/supabase/client.ts", + "src/lib/stores/settings-store.ts", + "src/components/ThemeToggle.tsx", + "node_modules/@radix-ui/number/dist/index.mjs", + "node_modules/@radix-ui/react-direction/dist/index.mjs", + "node_modules/@radix-ui/react-focus-guards/dist/index.mjs", + "node_modules/@radix-ui/react-focus-scope/dist/index.mjs", + "node_modules/@radix-ui/react-use-previous/dist/index.mjs", + "node_modules/aria-hidden/dist/es2015/index.js", + "node_modules/react-remove-scroll-bar/dist/es2015/constants.js", + "node_modules/use-callback-ref/dist/es2015/assignRef.js", + "node_modules/use-callback-ref/dist/es2015/useRef.js", + "node_modules/use-callback-ref/dist/es2015/useMergeRef.js", + "node_modules/use-sidecar/dist/es2015/medium.js", + "node_modules/use-sidecar/dist/es2015/exports.js", + "node_modules/react-remove-scroll/dist/es2015/medium.js", + "node_modules/react-remove-scroll/dist/es2015/UI.js", + "node_modules/get-nonce/dist/es2015/index.js", + "node_modules/react-style-singleton/dist/es2015/singleton.js", + "node_modules/react-style-singleton/dist/es2015/hook.js", + "node_modules/react-style-singleton/dist/es2015/component.js", + "node_modules/react-remove-scroll-bar/dist/es2015/utils.js", + "node_modules/react-remove-scroll-bar/dist/es2015/component.js", + "node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js", + "node_modules/react-remove-scroll/dist/es2015/handleScroll.js", + "node_modules/react-remove-scroll/dist/es2015/SideEffect.js", + "node_modules/react-remove-scroll/dist/es2015/sidecar.js", + "node_modules/react-remove-scroll/dist/es2015/Combination.js", + "node_modules/@radix-ui/react-select/dist/index.mjs", + "src/components/ui/select.tsx", + "node_modules/@radix-ui/react-dialog/dist/index.mjs", + "src/components/ui/dialog.tsx", + "node_modules/@radix-ui/react-label/dist/index.mjs", + "src/components/ui/label.tsx", + "src/components/LanguageSwitcher.tsx", + "src/components/layout/AnnouncementBanner.tsx", + "node_modules/zod/v4/core/util.js", + "node_modules/zod/v4/core/core.js", + "node_modules/zod/v4/core/errors.js", + "node_modules/zod/v4/core/parse.js", + "node_modules/zod/v4/core/regexes.js", + "node_modules/zod/v4/core/checks.js", + "node_modules/zod/v4/core/doc.js", + "node_modules/zod/v4/core/versions.js", + "node_modules/zod/v4/core/schemas.js", + "node_modules/zod/v4/core/memoizer.js", + "node_modules/zod/v4/locales/en.js", + "node_modules/zod/v4/core/registries.js", + "node_modules/zod/v4/core/api.js", + "node_modules/zod/v4/core/to-json-schema.js", + "node_modules/zod/v4/core/json-schema-processors.js", + "node_modules/zod/v4/classic/errors.js", + "node_modules/zod/v4/classic/parse.js", + "node_modules/zod/v4/classic/schemas.js", + "node_modules/zod/v4/classic/iso.js", + "src/lib/announcements.ts", + "src/components/layout/AppLayout.tsx", + "src/lib/stores/session-store.ts", + "src/lib/ai/schemas/sparring.ts", + "src/lib/sparring/formats.ts", + "src/lib/observability.ts", + "src/lib/stores/sparring-store.ts", + "node_modules/@capacitor/core/dist/index.js", + "node_modules/@capacitor/browser/dist/esm/index.js", + "src/lib/native.ts", + "node_modules/@jam.dev/sdk/dist/jamsdk.js", + "src/lib/jam-metadata.ts", + "src/lib/crossfire/schemas.ts", + "src/lib/crossfire/storage.ts", + "src/lib/supabase/AuthProvider.tsx", + "src/components/auth/RequireAuth.tsx", + "node_modules/@gilbarbara/deep-equal/dist/index.mjs", + "node_modules/is-lite/dist/index.mjs", + "node_modules/tree-changes/dist/index.mjs", + "node_modules/scroll/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scroll/index.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scrollparent/scrollparent.js?commonjs-module", + "node_modules/scrollparent/scrollparent.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scrollparent/scrollparent.js?commonjs-es-import", + "node_modules/react-innertext/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-innertext/index.js?commonjs-es-import", + "node_modules/deepmerge/dist/cjs.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/deepmerge/dist/cjs.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/prop-types/index.js?commonjs-module", + "node_modules/prop-types/lib/ReactPropTypesSecret.js", + "node_modules/prop-types/factoryWithThrowingShims.js", + "node_modules/prop-types/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/prop-types/index.js?commonjs-es-import", + "node_modules/popper.js/dist/esm/popper.js", + "node_modules/react-floater/node_modules/is-lite/esm/index.js", + "node_modules/react-floater/node_modules/@gilbarbara/deep-equal/esm/helpers.js", + "node_modules/react-floater/node_modules/@gilbarbara/deep-equal/esm/index.js", + "node_modules/react-floater/node_modules/tree-changes/esm/helpers.js", + "node_modules/react-floater/node_modules/tree-changes/esm/index.js", + "node_modules/react-floater/es/index.js", + "node_modules/react-joyride/dist/index.mjs", + "src/hooks/use-onboarding.ts", + "src/components/features/onboarding/OnboardingTour.tsx", + "src/components/ThemeProvider.tsx", + "src/hooks/use-session-storage-sync.ts", + "src/components/OfflineIndicator.tsx", + "src/App.tsx", + "src/components/WebTelemetry.tsx", + "node_modules/@capacitor/app/dist/esm/index.js", + "src/native-app-url-listener.ts", + "node_modules/@capacitor/haptics/dist/esm/definitions.js", + "node_modules/@capacitor/haptics/dist/esm/index.js", + "node_modules/@capacitor/keyboard/dist/esm/definitions.js", + "node_modules/@capacitor/keyboard/dist/esm/index.js", + "node_modules/@capacitor/status-bar/dist/esm/definitions.js", + "node_modules/@capacitor/status-bar/dist/esm/index.js", + "src/native-runtime.ts", + "src/register-service-worker.ts", + "src/main.tsx", + "src/bootstrap.ts", + "index.html?html-proxy&inline-css&index=1.css", + "index.html" + ], + "staticMembership": [ + "index.html", + "/", + "/login", + "/app", + "/app/generate", + "/app/attack", + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "index.html" + }, + { + "file": "assets/LandingPage-C861HgyL.js", + "bytes": 45725, + "gzipBytes": 11133, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/use-reduced-motion-DIRZraea.js", + "assets/proxy-CyJslaS_.js", + "assets/arrow-right-DE4H5pKc.js", + "assets/crown-C2TeHzqk.js", + "assets/zap-YNjUnyuz.js", + "assets/brain-BDMiUfF_.js", + "assets/search-70EybyUQ.js", + "assets/users-DWoVwdaK.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-check.js", + "node_modules/lucide-react/dist/esm/icons/file-search.js", + "node_modules/lucide-react/dist/esm/icons/gavel.js", + "node_modules/lucide-react/dist/esm/icons/graduation-cap.js", + "node_modules/lucide-react/dist/esm/icons/history.js", + "node_modules/lucide-react/dist/esm/icons/network.js", + "node_modules/lucide-react/dist/esm/icons/scan-search.js", + "node_modules/lucide-react/dist/esm/icons/trophy.js", + "node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs", + "src/components/landing/Navbar.tsx", + "src/components/landing/Hero.tsx", + "src/components/landing/SocialProof.tsx", + "src/components/landing/WhatsNew.tsx", + "src/components/landing/Features.tsx", + "src/components/landing/Pricing.tsx", + "src/components/landing/DeepDive.tsx", + "src/components/landing/UseCases.tsx", + "src/components/landing/HowItWorks.tsx", + "node_modules/@radix-ui/react-collapsible/dist/index.mjs", + "node_modules/@radix-ui/react-accordion/dist/index.mjs", + "src/components/ui/accordion.tsx", + "src/components/landing/FAQ.tsx", + "src/components/landing/FinalCTA.tsx", + "src/components/landing/Footer.tsx", + "src/pages/LandingPage.tsx" + ], + "staticMembership": [ + "/" + ], + "dynamicEntry": "src/pages/LandingPage.tsx" + }, + { + "file": "assets/TermsPage-Bv6alyEn.js", + "bytes": 772, + "gzipBytes": 418, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/pages/TermsPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/TermsPage.tsx" + }, + { + "file": "assets/PrivacyPage-D8yXViIB.js", + "bytes": 782, + "gzipBytes": 420, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/pages/PrivacyPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/PrivacyPage.tsx" + }, + { + "file": "assets/HomePage-CejS6iLs.js", + "bytes": 3353, + "gzipBytes": 1254, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/arrow-right-DE4H5pKc.js" + ], + "modules": [ + "src/pages/HomePage.tsx" + ], + "staticMembership": [ + "/app" + ], + "dynamicEntry": "src/pages/HomePage.tsx" + }, + { + "file": "assets/GeneratePage-BVMnUHTy.js", + "bytes": 28552, + "gzipBytes": 8162, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/streaming-indicator-DNahz1d3.js", + "assets/input-BRlCt18M.js", + "assets/card-DNuxaVKj.js", + "assets/client-B2Hmm4S3.js", + "assets/use-speech-to-text-DDdPsIfh.js", + "assets/ModelSelector-DPUAfvNL.js", + "assets/prefill-CPra3pyT.js", + "assets/badge-DOuwE0tA.js", + "assets/markdown-CePz3aK8.js", + "assets/ModelRestrictedModal-UK583TYw.js", + "assets/date-format-CG2nx3lR.js", + "assets/flame-DZjlhb1N.js", + "assets/save-VRo3zf0k.js", + "assets/refresh-cw-Dx_rovVU.js", + "assets/target-DmELU7_M.js", + "assets/shield-DsgIRl3K.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/error-display-B8noTjms.js", + "assets/PricingModal-DeTbMjVf.js", + "assets/use-reduced-motion-DIRZraea.js", + "assets/index-DmtgVR0T.js", + "assets/file-text-Bg60aQFS.js", + "assets/external-link-hWs27zxC.js", + "assets/url-D1MGTXu_.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/zap-YNjUnyuz.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-C2TeHzqk.js", + "assets/string-CvptbcKz.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/clipboard.js", + "node_modules/lucide-react/dist/esm/icons/wand-sparkles.js", + "src/components/features/generate/GenerateForm.tsx", + "src/components/features/generate/GenerateResults.tsx", + "src/pages/GeneratePage.tsx" + ], + "staticMembership": [ + "/app/generate" + ], + "dynamicEntry": "src/pages/GeneratePage.tsx" + }, + { + "file": "assets/AttackPage-P8XAOh8x.js", + "bytes": 19037, + "gzipBytes": 5369, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/streaming-indicator-DNahz1d3.js", + "assets/textarea-BxuDaNfy.js", + "assets/switch-CNm-rbvw.js", + "assets/card-DNuxaVKj.js", + "assets/client-B2Hmm4S3.js", + "assets/ModelSelector-DPUAfvNL.js", + "assets/prefill-CPra3pyT.js", + "assets/search-70EybyUQ.js", + "assets/badge-DOuwE0tA.js", + "assets/progress-BOMHF48O.js", + "assets/markdown-CePz3aK8.js", + "assets/ModelRestrictedModal-UK583TYw.js", + "assets/flame-DZjlhb1N.js", + "assets/circle-alert-ChwbUVv0.js", + "assets/refresh-cw-Dx_rovVU.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/error-display-B8noTjms.js", + "assets/PricingModal-DeTbMjVf.js", + "assets/file-text-Bg60aQFS.js", + "assets/external-link-hWs27zxC.js", + "assets/url-D1MGTXu_.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/zap-YNjUnyuz.js", + "assets/input-BRlCt18M.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-C2TeHzqk.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/info.js", + "node_modules/lucide-react/dist/esm/icons/scale.js", + "src/components/features/attack/AttackForm.tsx", + "src/components/features/attack/AttackResults.tsx", + "src/pages/AttackPage.tsx" + ], + "staticMembership": [ + "/app/attack" + ], + "dynamicEntry": "src/pages/AttackPage.tsx" + }, + { + "file": "assets/prefill-CPra3pyT.js", + "bytes": 1983, + "gzipBytes": 958, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/sliders-horizontal.js", + "node_modules/@radix-ui/react-separator/dist/index.mjs", + "src/components/ui/separator.tsx", + "src/lib/crossfire/prefill.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_prefill-CPra3pyT.js" + }, + { + "file": "assets/BrainstormPage-Chepxmgy.js", + "bytes": 15096, + "gzipBytes": 4726, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/streaming-indicator-DNahz1d3.js", + "assets/input-BRlCt18M.js", + "assets/textarea-BxuDaNfy.js", + "assets/card-DNuxaVKj.js", + "assets/ModelSelector-DPUAfvNL.js", + "assets/brain-BDMiUfF_.js", + "assets/badge-DOuwE0tA.js", + "assets/ModelRestrictedModal-UK583TYw.js", + "assets/empty-state-BkQZkMeo.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/arrow-right-DE4H5pKc.js", + "assets/client-B2Hmm4S3.js", + "assets/error-display-B8noTjms.js", + "assets/PricingModal-DeTbMjVf.js", + "assets/refresh-cw-Dx_rovVU.js", + "assets/file-text-Bg60aQFS.js", + "assets/external-link-hWs27zxC.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/zap-YNjUnyuz.js", + "assets/url-D1MGTXu_.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-C2TeHzqk.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/trending-up.js", + "src/lib/ai/schemas/brainstorm.ts", + "src/components/features/brainstorm/BrainstormForm.tsx", + "src/components/features/brainstorm/BrainstormResults.tsx", + "src/pages/BrainstormPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/BrainstormPage.tsx" + }, + { + "file": "assets/FactoidsPage-DXmrPY6J.js", + "bytes": 27488, + "gzipBytes": 9066, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/streaming-indicator-DNahz1d3.js", + "assets/input-BRlCt18M.js", + "assets/card-DNuxaVKj.js", + "assets/client-B2Hmm4S3.js", + "assets/ModelSelector-DPUAfvNL.js", + "assets/search-70EybyUQ.js", + "assets/badge-DOuwE0tA.js", + "assets/progress-BOMHF48O.js", + "assets/ModelRestrictedModal-UK583TYw.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/external-link-hWs27zxC.js", + "assets/bookmark-D5QAu8Kr.js", + "assets/error-display-B8noTjms.js", + "assets/PricingModal-DeTbMjVf.js", + "assets/refresh-cw-Dx_rovVU.js", + "assets/file-text-Bg60aQFS.js", + "assets/url-D1MGTXu_.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/zap-YNjUnyuz.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-C2TeHzqk.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-check-big.js", + "node_modules/@radix-ui/react-slider/dist/index.mjs", + "src/components/ui/slider.tsx", + "src/components/features/factoids/FactoidsForm.tsx", + "src/components/features/factoids/FactoidsResults.tsx", + "src/pages/FactoidsPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/FactoidsPage.tsx" + }, + { + "file": "assets/streaming-indicator-DNahz1d3.js", + "bytes": 40948, + "gzipBytes": 14986, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/refresh-cw-Dx_rovVU.js", + "assets/file-text-Bg60aQFS.js", + "assets/external-link-hWs27zxC.js", + "assets/badge-DOuwE0tA.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/file-down.js", + "node_modules/lucide-react/dist/esm/icons/undo-2.js", + "node_modules/react-hook-form/dist/index.esm.mjs", + "node_modules/@hookform/resolvers/dist/resolvers.mjs", + "node_modules/@hookform/resolvers/zod/dist/zod.mjs", + "src/components/ui/loading-spinner.tsx", + "src/components/ui/section-card.tsx", + "src/components/icons/GoogleDocsIcon.tsx", + "src/components/features/AutoSavedSourcesUndo.tsx", + "src/components/features/ExportToolbar.tsx", + "src/components/features/export/GoogleDriveAuthModal.tsx", + "src/components/features/shared/SourceQualityList.tsx", + "src/components/ui/streaming-indicator.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_streaming-indicator-DNahz1d3.js" + }, + { + "file": "assets/AskPage-Dbwv_nvF.js", + "bytes": 30936, + "gzipBytes": 9846, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/input-BRlCt18M.js", + "assets/markdown-CePz3aK8.js", + "assets/card-DNuxaVKj.js", + "assets/switch-CNm-rbvw.js", + "assets/scroll-area-B5p3Y_vr.js", + "assets/use-speech-to-text-DDdPsIfh.js", + "assets/date-format-CG2nx3lR.js", + "assets/ModelSelector-DPUAfvNL.js", + "assets/sheet-BqybMOOx.js", + "assets/use-reduced-motion-DIRZraea.js", + "assets/save-VRo3zf0k.js", + "assets/rotate-ccw-g7oK_yc2.js", + "assets/circle-help-Dn3L85BO.js", + "assets/search-70EybyUQ.js", + "assets/send-CYByA_eA.js", + "assets/bookmark-D5QAu8Kr.js", + "assets/client-B2Hmm4S3.js", + "assets/ModelRestrictedModal-UK583TYw.js", + "assets/error-display-B8noTjms.js", + "assets/PricingModal-DeTbMjVf.js", + "assets/badge-DOuwE0tA.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/url-D1MGTXu_.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/zap-YNjUnyuz.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-C2TeHzqk.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-plus.js", + "node_modules/lucide-react/dist/esm/icons/list.js", + "node_modules/lucide-react/dist/esm/icons/map.js", + "node_modules/lucide-react/dist/esm/icons/panel-left-open.js", + "node_modules/lucide-react/dist/esm/icons/paperclip.js", + "node_modules/lucide-react/dist/esm/icons/quote.js", + "src/lib/validation/file.ts", + "src/components/features/ask/AskChat.tsx", + "src/lib/ai/streaming.ts", + "src/pages/AskPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/AskPage.tsx" + }, + { + "file": "assets/use-speech-to-text-DDdPsIfh.js", + "bytes": 1930, + "gzipBytes": 950, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/mic-off.js", + "node_modules/lucide-react/dist/esm/icons/mic.js", + "src/hooks/use-speech-to-text.ts" + ], + "staticMembership": [ + "/app/generate" + ], + "dynamicEntry": "_use-speech-to-text-DDdPsIfh.js" + }, + { + "file": "assets/bookmark-D5QAu8Kr.js", + "bytes": 160, + "gzipBytes": 160, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/bookmark.js" + ], + "staticMembership": [], + "dynamicEntry": "_bookmark-D5QAu8Kr.js" + }, + { + "file": "assets/ModelRestrictedModal-UK583TYw.js", + "bytes": 3979, + "gzipBytes": 1457, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/client-B2Hmm4S3.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/zap-YNjUnyuz.js", + "assets/PricingModal-DeTbMjVf.js" + ], + "modules": [ + "src/components/ui/animated-section.tsx", + "src/hooks/use-subscription-error.ts", + "src/components/features/subscription/LimitReachedModal.tsx", + "src/components/features/subscription/ModelRestrictedModal.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_ModelRestrictedModal-UK583TYw.js" + }, + { + "file": "assets/CrossfirePage-B296oUFm.js", + "bytes": 26184, + "gzipBytes": 6862, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/badge-DOuwE0tA.js", + "assets/card-DNuxaVKj.js", + "assets/checkbox-CcU5IimS.js", + "assets/textarea-BxuDaNfy.js", + "assets/client-B2Hmm4S3.js", + "assets/error-display-B8noTjms.js", + "assets/use-reduced-motion-DIRZraea.js", + "assets/flame-DZjlhb1N.js", + "assets/circle-alert-ChwbUVv0.js", + "assets/refresh-cw-Dx_rovVU.js", + "assets/clock-3-BP2woNWy.js", + "assets/send-CYByA_eA.js", + "assets/rotate-ccw-g7oK_yc2.js", + "assets/shield-check-1u8_MjqX.js", + "assets/proxy-CyJslaS_.js", + "assets/url-D1MGTXu_.js" + ], + "modules": [ + "src/components/ui/alert.tsx", + "src/lib/crossfire/reducer.ts", + "src/pages/CrossfirePage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/CrossfirePage.tsx" + }, + { + "file": "assets/proxy-CyJslaS_.js", + "bytes": 121276, + "gzipBytes": 39635, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/use-reduced-motion-DIRZraea.js" + ], + "modules": [ + "node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs", + "node_modules/framer-motion/dist/es/utils/is-browser.mjs", + "node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs", + "node_modules/framer-motion/dist/es/context/PresenceContext.mjs", + "node_modules/motion-utils/dist/es/array.mjs", + "node_modules/motion-utils/dist/es/clamp.mjs", + "node_modules/motion-utils/dist/es/errors.mjs", + "node_modules/motion-utils/dist/es/global-config.mjs", + "node_modules/motion-utils/dist/es/is-numerical-string.mjs", + "node_modules/motion-utils/dist/es/is-object.mjs", + "node_modules/motion-utils/dist/es/is-zero-value-string.mjs", + "node_modules/motion-utils/dist/es/memo.mjs", + "node_modules/motion-utils/dist/es/noop.mjs", + "node_modules/motion-utils/dist/es/pipe.mjs", + "node_modules/motion-utils/dist/es/progress.mjs", + "node_modules/motion-utils/dist/es/subscription-manager.mjs", + "node_modules/motion-utils/dist/es/time-conversion.mjs", + "node_modules/motion-utils/dist/es/velocity-per-second.mjs", + "node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs", + "node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs", + "node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs", + "node_modules/motion-utils/dist/es/easing/back.mjs", + "node_modules/motion-utils/dist/es/easing/anticipate.mjs", + "node_modules/motion-utils/dist/es/easing/circ.mjs", + "node_modules/motion-utils/dist/es/easing/ease.mjs", + "node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs", + "node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs", + "node_modules/motion-utils/dist/es/easing/utils/map.mjs", + "node_modules/motion-dom/dist/es/frameloop/order.mjs", + "node_modules/motion-dom/dist/es/frameloop/render-step.mjs", + "node_modules/motion-dom/dist/es/frameloop/batcher.mjs", + "node_modules/motion-dom/dist/es/frameloop/frame.mjs", + "node_modules/motion-dom/dist/es/frameloop/sync-time.mjs", + "node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs", + "node_modules/motion-dom/dist/es/value/types/numbers/index.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs", + "node_modules/motion-dom/dist/es/value/types/color/utils.mjs", + "node_modules/motion-dom/dist/es/value/types/color/rgba.mjs", + "node_modules/motion-dom/dist/es/value/types/color/hex.mjs", + "node_modules/motion-dom/dist/es/value/types/numbers/units.mjs", + "node_modules/motion-dom/dist/es/value/types/color/hsla.mjs", + "node_modules/motion-dom/dist/es/value/types/color/index.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs", + "node_modules/motion-dom/dist/es/value/types/complex/index.mjs", + "node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs", + "node_modules/motion-dom/dist/es/utils/mix/immediate.mjs", + "node_modules/motion-dom/dist/es/utils/mix/number.mjs", + "node_modules/motion-dom/dist/es/utils/mix/color.mjs", + "node_modules/motion-dom/dist/es/utils/mix/visibility.mjs", + "node_modules/motion-dom/dist/es/utils/mix/complex.mjs", + "node_modules/motion-dom/dist/es/utils/mix/index.mjs", + "node_modules/motion-dom/dist/es/animation/drivers/frame.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs", + "node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs", + "node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs", + "node_modules/motion-dom/dist/es/animation/generators/spring.mjs", + "node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs", + "node_modules/motion-dom/dist/es/animation/generators/inertia.mjs", + "node_modules/motion-dom/dist/es/utils/interpolate.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs", + "node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs", + "node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs", + "node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs", + "node_modules/motion-dom/dist/es/animation/JSAnimation.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs", + "node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs", + "node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs", + "node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs", + "node_modules/motion-dom/dist/es/render/dom/style-set.mjs", + "node_modules/motion-dom/dist/es/utils/supports/flags.mjs", + "node_modules/motion-dom/dist/es/utils/supports/memo.mjs", + "node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs", + "node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs", + "node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs", + "node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs", + "node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs", + "node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs", + "node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs", + "node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/is-browser-color.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs", + "node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs", + "node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs", + "node_modules/motion-dom/dist/es/value/index.mjs", + "node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs", + "node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs", + "node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs", + "node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs", + "node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs", + "node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs", + "node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs", + "node_modules/motion-dom/dist/es/render/utils/keys-position.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs", + "node_modules/motion-dom/dist/es/render/utils/setters.mjs", + "node_modules/motion-dom/dist/es/value/will-change/is.mjs", + "node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs", + "node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs", + "node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs", + "node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs", + "node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs", + "node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs", + "node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs", + "node_modules/motion-dom/dist/es/value/types/auto.mjs", + "node_modules/motion-dom/dist/es/value/types/test.mjs", + "node_modules/motion-dom/dist/es/value/types/dimensions.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs", + "node_modules/motion-dom/dist/es/value/types/complex/filter.mjs", + "node_modules/motion-dom/dist/es/value/types/complex/mask.mjs", + "node_modules/motion-dom/dist/es/value/types/int.mjs", + "node_modules/motion-dom/dist/es/value/types/maps/transform.mjs", + "node_modules/motion-dom/dist/es/value/types/maps/number.mjs", + "node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs", + "node_modules/motion-dom/dist/es/utils/border-radius.mjs", + "node_modules/motion-dom/dist/es/utils/resolve-elements.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs", + "node_modules/motion-dom/dist/es/utils/is-html-element.mjs", + "node_modules/motion-dom/dist/es/frameloop/microtask.mjs", + "node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs", + "node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs", + "node_modules/motion-dom/dist/es/gestures/utils/setup.mjs", + "node_modules/motion-dom/dist/es/gestures/hover.mjs", + "node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs", + "node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs", + "node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs", + "node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs", + "node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs", + "node_modules/motion-dom/dist/es/gestures/press/index.mjs", + "node_modules/motion-dom/dist/es/utils/is-svg-element.mjs", + "node_modules/motion-dom/dist/es/resize/handle-element.mjs", + "node_modules/motion-dom/dist/es/resize/handle-window.mjs", + "node_modules/motion-dom/dist/es/resize/index.mjs", + "node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/find.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/models.mjs", + "node_modules/motion-dom/dist/es/render/store.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs", + "node_modules/motion-dom/dist/es/render/utils/variant-props.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs", + "node_modules/motion-dom/dist/es/render/utils/motion-values.mjs", + "node_modules/motion-dom/dist/es/render/VisualElement.mjs", + "node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs", + "node_modules/motion-dom/dist/es/render/Feature.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs", + "node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs", + "node_modules/motion-dom/dist/es/projection/utils/measure.mjs", + "node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs", + "node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs", + "node_modules/motion-dom/dist/es/render/html/utils/render.mjs", + "node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs", + "node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs", + "node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs", + "node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs", + "node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/path.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/render.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs", + "node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs", + "node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs", + "node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs", + "node_modules/motion-dom/dist/es/render/utils/animation-state.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/copy.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/utils.mjs", + "node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs", + "node_modules/motion-dom/dist/es/projection/styles/transform.mjs", + "node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs", + "node_modules/motion-dom/dist/es/animation/animate/single-value.mjs", + "node_modules/motion-dom/dist/es/events/add-dom-event.mjs", + "node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs", + "node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs", + "node_modules/motion-dom/dist/es/utils/delay.mjs", + "node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs", + "node_modules/motion-dom/dist/es/projection/shared/stack.mjs", + "node_modules/motion-dom/dist/es/projection/node/state.mjs", + "node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs", + "node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs", + "node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs", + "node_modules/framer-motion/dist/es/context/LazyContext.mjs", + "node_modules/framer-motion/dist/es/motion/features/definitions.mjs", + "node_modules/framer-motion/dist/es/motion/features/load-features.mjs", + "node_modules/framer-motion/dist/es/context/MotionContext/index.mjs", + "node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs", + "node_modules/framer-motion/dist/es/context/MotionContext/create.mjs", + "node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs", + "node_modules/framer-motion/dist/es/render/html/use-props.mjs", + "node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs", + "node_modules/framer-motion/dist/es/render/svg/use-props.mjs", + "node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs", + "node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs", + "node_modules/framer-motion/dist/es/render/dom/use-render.mjs", + "node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs", + "node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs", + "node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs", + "node_modules/framer-motion/dist/es/motion/utils/symbol.mjs", + "node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs", + "node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs", + "node_modules/framer-motion/dist/es/utils/is-ref-object.mjs", + "node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs", + "node_modules/framer-motion/dist/es/motion/index.mjs", + "node_modules/framer-motion/dist/es/render/components/create-proxy.mjs", + "node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs", + "node_modules/framer-motion/dist/es/motion/features/animation/index.mjs", + "node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs", + "node_modules/framer-motion/dist/es/motion/features/animations.mjs", + "node_modules/framer-motion/dist/es/events/event-info.mjs", + "node_modules/framer-motion/dist/es/events/add-pointer-event.mjs", + "node_modules/framer-motion/dist/es/utils/get-context-window.mjs", + "node_modules/framer-motion/dist/es/utils/distance.mjs", + "node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs", + "node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs", + "node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs", + "node_modules/framer-motion/dist/es/gestures/drag/index.mjs", + "node_modules/framer-motion/dist/es/gestures/pan/index.mjs", + "node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs", + "node_modules/framer-motion/dist/es/motion/features/drag.mjs", + "node_modules/framer-motion/dist/es/gestures/hover.mjs", + "node_modules/framer-motion/dist/es/gestures/focus.mjs", + "node_modules/framer-motion/dist/es/gestures/press.mjs", + "node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs", + "node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs", + "node_modules/framer-motion/dist/es/motion/features/gestures.mjs", + "node_modules/framer-motion/dist/es/motion/features/layout.mjs", + "node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs", + "node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs" + ], + "staticMembership": [ + "/" + ], + "dynamicEntry": "_proxy-CyJslaS_.js" + }, + { + "file": "assets/flame-DZjlhb1N.js", + "bytes": 275, + "gzipBytes": 226, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/flame.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_flame-DZjlhb1N.js" + }, + { + "file": "assets/refresh-cw-Dx_rovVU.js", + "bytes": 443, + "gzipBytes": 278, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/message-square.js", + "node_modules/lucide-react/dist/esm/icons/refresh-cw.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_refresh-cw-Dx_rovVU.js" + }, + { + "file": "assets/use-reduced-motion-DIRZraea.js", + "bytes": 387, + "gzipBytes": 269, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs", + "node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs", + "node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.mjs" + ], + "staticMembership": [ + "/", + "/app/generate" + ], + "dynamicEntry": "_use-reduced-motion-DIRZraea.js" + }, + { + "file": "assets/error-display-B8noTjms.js", + "bytes": 1464, + "gzipBytes": 629, + "imports": [ + "assets/client-B2Hmm4S3.js" + ], + "modules": [ + "src/lib/ai/error-display.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_error-display-B8noTjms.js" + }, + { + "file": "assets/SettingsPage-CCq-OUYp.js", + "bytes": 16451, + "gzipBytes": 5479, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/badge-DOuwE0tA.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/PricingModal-DeTbMjVf.js", + "assets/date-format-CG2nx3lR.js", + "assets/input-BRlCt18M.js", + "assets/crown-C2TeHzqk.js", + "assets/credit-card-CFOMlw74.js", + "assets/zap-YNjUnyuz.js", + "assets/shield-DsgIRl3K.js", + "assets/trash-2-rdeQ5AHC.js", + "assets/edge-function-error-dlcwXP30.js" + ], + "modules": [ + "node_modules/@tanstack/query-core/build/modern/queryObserver.js", + "node_modules/@tanstack/react-query/build/modern/IsRestoringProvider.js", + "node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js", + "node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js", + "node_modules/@tanstack/react-query/build/modern/suspense.js", + "node_modules/@tanstack/react-query/build/modern/useBaseQuery.js", + "node_modules/@tanstack/react-query/build/modern/useQuery.js", + "src/pages/SettingsPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/SettingsPage.tsx" + }, + { + "file": "assets/PricingModal-DeTbMjVf.js", + "bytes": 5543, + "gzipBytes": 1891, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/input-BRlCt18M.js", + "assets/badge-DOuwE0tA.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-C2TeHzqk.js", + "assets/zap-YNjUnyuz.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/lock.js", + "src/lib/stripe.ts", + "src/components/features/subscription/PricingModal.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_PricingModal-DeTbMjVf.js" + }, + { + "file": "assets/crown-C2TeHzqk.js", + "bytes": 359, + "gzipBytes": 253, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/crown.js" + ], + "staticMembership": [ + "/", + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_crown-C2TeHzqk.js" + }, + { + "file": "assets/HistoryPage-Dq0oiiwR.js", + "bytes": 11679, + "gzipBytes": 2619, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/tabs-DSSrXhZO.js", + "assets/badge-DOuwE0tA.js", + "assets/scroll-area-B5p3Y_vr.js", + "assets/date-format-CG2nx3lR.js", + "assets/alert-dialog-DDhjApTe.js", + "assets/empty-state-BkQZkMeo.js", + "assets/file-text-Bg60aQFS.js", + "assets/zap-YNjUnyuz.js", + "assets/brain-BDMiUfF_.js", + "assets/trash-2-rdeQ5AHC.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/eye.js", + "src/pages/HistoryPage.tsx" + ], + "staticMembership": [ + "/app/history" + ], + "dynamicEntry": "src/pages/HistoryPage.tsx" + }, + { + "file": "assets/empty-state-BkQZkMeo.js", + "bytes": 609, + "gzipBytes": 373, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/components/ui/empty-state.tsx" + ], + "staticMembership": [ + "/app/history" + ], + "dynamicEntry": "_empty-state-BkQZkMeo.js" + }, + { + "file": "assets/brain-BDMiUfF_.js", + "bytes": 731, + "gzipBytes": 352, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/brain.js" + ], + "staticMembership": [ + "/", + "/app/history" + ], + "dynamicEntry": "_brain-BDMiUfF_.js" + }, + { + "file": "assets/zap-YNjUnyuz.js", + "bytes": 259, + "gzipBytes": 204, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/zap.js" + ], + "staticMembership": [ + "/", + "/app/generate", + "/app/attack", + "/app/history" + ], + "dynamicEntry": "_zap-YNjUnyuz.js" + }, + { + "file": "assets/LibraryPage-da1Lz-zX.js", + "bytes": 45623, + "gzipBytes": 13539, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/input-BRlCt18M.js", + "assets/textarea-BxuDaNfy.js", + "assets/badge-DOuwE0tA.js", + "assets/switch-CNm-rbvw.js", + "assets/date-format-CG2nx3lR.js", + "assets/url-D1MGTXu_.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/alert-dialog-DDhjApTe.js", + "assets/sheet-BqybMOOx.js", + "assets/plus-B_HHoAv5.js", + "assets/trash-2-rdeQ5AHC.js", + "assets/search-70EybyUQ.js", + "assets/shield-check-1u8_MjqX.js", + "assets/file-text-Bg60aQFS.js", + "assets/copy-B5L0aXUh.js", + "assets/save-VRo3zf0k.js", + "assets/external-link-hWs27zxC.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/folder-minus.js", + "node_modules/lucide-react/dist/esm/icons/folder-plus.js", + "node_modules/lucide-react/dist/esm/icons/folder.js", + "node_modules/lucide-react/dist/esm/icons/link-2.js", + "node_modules/lucide-react/dist/esm/icons/pencil.js", + "node_modules/lucide-react/dist/esm/icons/shield-alert.js", + "node_modules/lucide-react/dist/esm/icons/upload.js", + "node_modules/react-window/dist/react-window.js", + "src/lib/ai/schemas/source-import.ts", + "src/lib/source-import.ts", + "node_modules/pdfjs-dist/legacy/build/pdf.worker.mjs?url", + "src/lib/source-file-import.ts", + "node_modules/@radix-ui/react-popover/dist/index.mjs", + "src/components/ui/popover.tsx", + "src/pages/LibraryPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/LibraryPage.tsx" + }, + { + "file": "assets/sheet-BqybMOOx.js", + "bytes": 2335, + "gzipBytes": 897, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/components/ui/sheet.tsx" + ], + "staticMembership": [], + "dynamicEntry": "_sheet-BqybMOOx.js" + }, + { + "file": "assets/switch-CNm-rbvw.js", + "bytes": 4150, + "gzipBytes": 1790, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@radix-ui/react-switch/dist/index.mjs", + "src/components/ui/switch.tsx" + ], + "staticMembership": [ + "/app/attack" + ], + "dynamicEntry": "_switch-CNm-rbvw.js" + }, + { + "file": "assets/shield-check-1u8_MjqX.js", + "bytes": 316, + "gzipBytes": 243, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/shield-check.js" + ], + "staticMembership": [], + "dynamicEntry": "_shield-check-1u8_MjqX.js" + }, + { + "file": "assets/edge-function-error-dlcwXP30.js", + "bytes": 694, + "gzipBytes": 378, + "imports": [], + "modules": [ + "src/lib/supabase/edge-function-error.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_edge-function-error-dlcwXP30.js" + }, + { + "file": "assets/TimerPage-gsuEL79V.js", + "bytes": 10973, + "gzipBytes": 3562, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/badge-DOuwE0tA.js", + "assets/progress-BOMHF48O.js", + "assets/rotate-ccw-g7oK_yc2.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/bell.js", + "node_modules/lucide-react/dist/esm/icons/keyboard.js", + "node_modules/lucide-react/dist/esm/icons/pause.js", + "node_modules/lucide-react/dist/esm/icons/play.js", + "node_modules/lucide-react/dist/esm/icons/volume-2.js", + "node_modules/lucide-react/dist/esm/icons/volume-x.js", + "src/pages/TimerPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/TimerPage.tsx" + }, + { + "file": "assets/SparringPage-nXprKVny.js", + "bytes": 55879, + "gzipBytes": 15403, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/client-B2Hmm4S3.js", + "assets/card-DNuxaVKj.js", + "assets/textarea-BxuDaNfy.js", + "assets/badge-DOuwE0tA.js", + "assets/ModelSelector-DPUAfvNL.js", + "assets/arrow-right-DE4H5pKc.js", + "assets/progress-BOMHF48O.js", + "assets/markdown-CePz3aK8.js", + "assets/clock-3-BP2woNWy.js", + "assets/rotate-ccw-g7oK_yc2.js", + "assets/circle-alert-ChwbUVv0.js", + "assets/send-CYByA_eA.js", + "assets/download-7v2KEx-L.js", + "assets/generateCategoricalChart-DZci5nEc.js", + "assets/target-DmELU7_M.js", + "assets/file-text-Bg60aQFS.js", + "assets/circle-help-Dn3L85BO.js", + "assets/url-D1MGTXu_.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/string-CvptbcKz.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/arrow-left.js", + "node_modules/lucide-react/dist/esm/icons/award.js", + "node_modules/lucide-react/dist/esm/icons/bot.js", + "node_modules/lucide-react/dist/esm/icons/chart-column.js", + "node_modules/lucide-react/dist/esm/icons/chevron-right.js", + "node_modules/lucide-react/dist/esm/icons/circle-pause.js", + "node_modules/lucide-react/dist/esm/icons/circle-play.js", + "node_modules/lucide-react/dist/esm/icons/cloud-off.js", + "node_modules/lucide-react/dist/esm/icons/gauge.js", + "node_modules/lucide-react/dist/esm/icons/user-round.js", + "node_modules/lucide-react/dist/esm/icons/wifi.js", + "src/components/features/sparring/SparringSetup.tsx", + "src/components/features/sparring/SparringRound.tsx", + "node_modules/recharts/es6/polar/PolarGrid.js", + "node_modules/lodash/head.js", + "node_modules/lodash/first.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/first.js?commonjs-es-import", + "node_modules/recharts/es6/polar/Radar.js", + "node_modules/recharts/es6/chart/RadarChart.js", + "src/components/features/sparring/SparringScorecard.tsx", + "src/pages/SparringPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/SparringPage.tsx" + }, + { + "file": "assets/arrow-right-DE4H5pKc.js", + "bytes": 161, + "gzipBytes": 160, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/arrow-right.js" + ], + "staticMembership": [ + "/", + "/app" + ], + "dynamicEntry": "_arrow-right-DE4H5pKc.js" + }, + { + "file": "assets/circle-help-Dn3L85BO.js", + "bytes": 230, + "gzipBytes": 197, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-help.js" + ], + "staticMembership": [], + "dynamicEntry": "_circle-help-Dn3L85BO.js" + }, + { + "file": "assets/markdown-CePz3aK8.js", + "bytes": 119379, + "gzipBytes": 36770, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/devlop/lib/default.js", + "node_modules/comma-separated-tokens/index.js", + "node_modules/estree-util-is-identifier-name/lib/index.js", + "node_modules/hast-util-whitespace/lib/index.js", + "node_modules/property-information/lib/util/schema.js", + "node_modules/property-information/lib/util/merge.js", + "node_modules/property-information/lib/normalize.js", + "node_modules/property-information/lib/util/info.js", + "node_modules/property-information/lib/util/types.js", + "node_modules/property-information/lib/util/defined-info.js", + "node_modules/property-information/lib/util/create.js", + "node_modules/property-information/lib/aria.js", + "node_modules/property-information/lib/util/case-sensitive-transform.js", + "node_modules/property-information/lib/util/case-insensitive-transform.js", + "node_modules/property-information/lib/html.js", + "node_modules/property-information/lib/svg.js", + "node_modules/property-information/lib/xlink.js", + "node_modules/property-information/lib/xmlns.js", + "node_modules/property-information/lib/xml.js", + "node_modules/property-information/lib/hast-to-react.js", + "node_modules/property-information/lib/find.js", + "node_modules/property-information/index.js", + "node_modules/space-separated-tokens/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/style-to-object/cjs/index.js?commonjs-exports", + "node_modules/inline-style-parser/cjs/index.js", + "node_modules/style-to-object/cjs/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/style-to-js/cjs/utilities.js?commonjs-exports", + "node_modules/style-to-js/cjs/utilities.js", + "node_modules/style-to-js/cjs/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/style-to-js/cjs/index.js?commonjs-es-import", + "node_modules/unist-util-position/lib/index.js", + "node_modules/unist-util-stringify-position/lib/index.js", + "node_modules/vfile-message/lib/index.js", + "node_modules/hast-util-to-jsx-runtime/lib/index.js", + "node_modules/html-url-attributes/lib/index.js", + "node_modules/mdast-util-to-string/lib/index.js", + "node_modules/decode-named-character-reference/index.dom.js", + "node_modules/micromark-util-chunked/index.js", + "node_modules/micromark-util-combine-extensions/index.js", + "node_modules/micromark-util-decode-numeric-character-reference/index.js", + "node_modules/micromark-util-normalize-identifier/index.js", + "node_modules/micromark-util-character/index.js", + "node_modules/micromark-util-sanitize-uri/index.js", + "node_modules/micromark-factory-space/index.js", + "node_modules/micromark/lib/initialize/content.js", + "node_modules/micromark/lib/initialize/document.js", + "node_modules/micromark-util-classify-character/index.js", + "node_modules/micromark-util-resolve-all/index.js", + "node_modules/micromark-core-commonmark/lib/attention.js", + "node_modules/micromark-core-commonmark/lib/autolink.js", + "node_modules/micromark-core-commonmark/lib/blank-line.js", + "node_modules/micromark-core-commonmark/lib/block-quote.js", + "node_modules/micromark-core-commonmark/lib/character-escape.js", + "node_modules/micromark-core-commonmark/lib/character-reference.js", + "node_modules/micromark-core-commonmark/lib/code-fenced.js", + "node_modules/micromark-core-commonmark/lib/code-indented.js", + "node_modules/micromark-core-commonmark/lib/code-text.js", + "node_modules/micromark-util-subtokenize/lib/splice-buffer.js", + "node_modules/micromark-util-subtokenize/index.js", + "node_modules/micromark-core-commonmark/lib/content.js", + "node_modules/micromark-factory-destination/index.js", + "node_modules/micromark-factory-label/index.js", + "node_modules/micromark-factory-title/index.js", + "node_modules/micromark-factory-whitespace/index.js", + "node_modules/micromark-core-commonmark/lib/definition.js", + "node_modules/micromark-core-commonmark/lib/hard-break-escape.js", + "node_modules/micromark-core-commonmark/lib/heading-atx.js", + "node_modules/micromark-util-html-tag-name/index.js", + "node_modules/micromark-core-commonmark/lib/html-flow.js", + "node_modules/micromark-core-commonmark/lib/html-text.js", + "node_modules/micromark-core-commonmark/lib/label-end.js", + "node_modules/micromark-core-commonmark/lib/label-start-image.js", + "node_modules/micromark-core-commonmark/lib/label-start-link.js", + "node_modules/micromark-core-commonmark/lib/line-ending.js", + "node_modules/micromark-core-commonmark/lib/thematic-break.js", + "node_modules/micromark-core-commonmark/lib/list.js", + "node_modules/micromark-core-commonmark/lib/setext-underline.js", + "node_modules/micromark/lib/initialize/flow.js", + "node_modules/micromark/lib/initialize/text.js", + "node_modules/micromark/lib/constructs.js", + "node_modules/micromark/lib/create-tokenizer.js", + "node_modules/micromark/lib/parse.js", + "node_modules/micromark/lib/postprocess.js", + "node_modules/micromark/lib/preprocess.js", + "node_modules/micromark-util-decode-string/index.js", + "node_modules/mdast-util-from-markdown/lib/index.js", + "node_modules/remark-parse/lib/index.js", + "node_modules/mdast-util-to-hast/lib/handlers/blockquote.js", + "node_modules/mdast-util-to-hast/lib/handlers/break.js", + "node_modules/mdast-util-to-hast/lib/handlers/code.js", + "node_modules/mdast-util-to-hast/lib/handlers/delete.js", + "node_modules/mdast-util-to-hast/lib/handlers/emphasis.js", + "node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js", + "node_modules/mdast-util-to-hast/lib/handlers/heading.js", + "node_modules/mdast-util-to-hast/lib/handlers/html.js", + "node_modules/mdast-util-to-hast/lib/revert.js", + "node_modules/mdast-util-to-hast/lib/handlers/image-reference.js", + "node_modules/mdast-util-to-hast/lib/handlers/image.js", + "node_modules/mdast-util-to-hast/lib/handlers/inline-code.js", + "node_modules/mdast-util-to-hast/lib/handlers/link-reference.js", + "node_modules/mdast-util-to-hast/lib/handlers/link.js", + "node_modules/mdast-util-to-hast/lib/handlers/list-item.js", + "node_modules/mdast-util-to-hast/lib/handlers/list.js", + "node_modules/mdast-util-to-hast/lib/handlers/paragraph.js", + "node_modules/mdast-util-to-hast/lib/handlers/root.js", + "node_modules/mdast-util-to-hast/lib/handlers/strong.js", + "node_modules/mdast-util-to-hast/lib/handlers/table.js", + "node_modules/mdast-util-to-hast/lib/handlers/table-row.js", + "node_modules/mdast-util-to-hast/lib/handlers/table-cell.js", + "node_modules/trim-lines/index.js", + "node_modules/mdast-util-to-hast/lib/handlers/text.js", + "node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js", + "node_modules/mdast-util-to-hast/lib/handlers/index.js", + "node_modules/@ungap/structured-clone/esm/types.js", + "node_modules/@ungap/structured-clone/esm/deserialize.js", + "node_modules/@ungap/structured-clone/esm/serialize.js", + "node_modules/@ungap/structured-clone/esm/index.js", + "node_modules/mdast-util-to-hast/lib/footer.js", + "node_modules/unist-util-is/lib/index.js", + "node_modules/unist-util-visit-parents/lib/color.js", + "node_modules/unist-util-visit-parents/lib/index.js", + "node_modules/unist-util-visit/lib/index.js", + "node_modules/mdast-util-to-hast/lib/state.js", + "node_modules/mdast-util-to-hast/lib/index.js", + "node_modules/remark-rehype/lib/index.js", + "node_modules/bail/index.js", + "node_modules/extend/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/extend/index.js?commonjs-es-import", + "node_modules/is-plain-obj/index.js", + "node_modules/trough/lib/index.js", + "node_modules/vfile/lib/minpath.browser.js", + "node_modules/vfile/lib/minproc.browser.js", + "node_modules/vfile/lib/minurl.shared.js", + "node_modules/vfile/lib/minurl.browser.js", + "node_modules/vfile/lib/index.js", + "node_modules/unified/lib/callable-instance.js", + "node_modules/unified/lib/index.js", + "node_modules/react-markdown/lib/index.js", + "src/components/ui/markdown.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_markdown-CePz3aK8.js" + }, + { + "file": "assets/ModelSelector-DPUAfvNL.js", + "bytes": 2512, + "gzipBytes": 1078, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/badge-DOuwE0tA.js", + "assets/use-subscription-TWRM-hpK.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/cpu.js", + "src/components/ModelSelector.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_ModelSelector-DPUAfvNL.js" + }, + { + "file": "assets/clock-3-BP2woNWy.js", + "bytes": 178, + "gzipBytes": 168, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/clock-3.js" + ], + "staticMembership": [], + "dynamicEntry": "_clock-3-BP2woNWy.js" + }, + { + "file": "assets/send-CYByA_eA.js", + "bytes": 287, + "gzipBytes": 225, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/send.js" + ], + "staticMembership": [], + "dynamicEntry": "_send-CYByA_eA.js" + }, + { + "file": "assets/client-B2Hmm4S3.js", + "bytes": 39898, + "gzipBytes": 13784, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/url-D1MGTXu_.js" + ], + "modules": [ + "node_modules/zod/v4/classic/coerce.js", + "src/lib/ai/schemas/generate.ts", + "src/lib/ai/providers/mock-provider.ts", + "src/lib/ai/schemas/attack.ts", + "src/lib/ai/schemas/factoids.ts", + "src/lib/ai/schemas/ask.ts", + "src/lib/validation/url.ts", + "src/lib/ai/client.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_client-B2Hmm4S3.js" + }, + { + "file": "assets/use-subscription-TWRM-hpK.js", + "bytes": 2234, + "gzipBytes": 1000, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/hooks/use-subscription.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_use-subscription-TWRM-hpK.js" + }, + { + "file": "assets/url-D1MGTXu_.js", + "bytes": 179, + "gzipBytes": 165, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/lib/ai/schemas/url.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_url-D1MGTXu_.js" + }, + { + "file": "assets/file-text-Bg60aQFS.js", + "bytes": 329, + "gzipBytes": 214, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/file-text.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack", + "/app/history" + ], + "dynamicEntry": "_file-text-Bg60aQFS.js" + }, + { + "file": "assets/progress-BOMHF48O.js", + "bytes": 2198, + "gzipBytes": 1093, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@radix-ui/react-progress/dist/index.mjs", + "src/components/ui/progress.tsx" + ], + "staticMembership": [ + "/app/attack" + ], + "dynamicEntry": "_progress-BOMHF48O.js" + }, + { + "file": "assets/AdminPage-D-E666bh.js", + "bytes": 77425, + "gzipBytes": 20319, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/input-BRlCt18M.js", + "assets/badge-DOuwE0tA.js", + "assets/tabs-DSSrXhZO.js", + "assets/scroll-area-B5p3Y_vr.js", + "assets/date-format-CG2nx3lR.js", + "assets/checkbox-CcU5IimS.js", + "assets/textarea-BxuDaNfy.js", + "assets/alert-dialog-DDhjApTe.js", + "assets/search-70EybyUQ.js", + "assets/trash-2-rdeQ5AHC.js", + "assets/shield-DsgIRl3K.js", + "assets/circle-alert-ChwbUVv0.js", + "assets/users-DWoVwdaK.js", + "assets/credit-card-CFOMlw74.js", + "assets/generateCategoricalChart-DZci5nEc.js", + "assets/copy-B5L0aXUh.js", + "assets/rotate-ccw-g7oK_yc2.js", + "assets/string-CvptbcKz.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/activity.js", + "node_modules/lucide-react/dist/esm/icons/ban.js", + "node_modules/lucide-react/dist/esm/icons/dollar-sign.js", + "node_modules/lucide-react/dist/esm/icons/gift.js", + "node_modules/lucide-react/dist/esm/icons/key-round.js", + "node_modules/lucide-react/dist/esm/icons/settings-2.js", + "node_modules/lucide-react/dist/esm/icons/ticket.js", + "node_modules/lucide-react/dist/esm/icons/user-check.js", + "node_modules/recharts/es6/polar/Pie.js", + "node_modules/recharts/es6/util/getEveryNthWithCondition.js", + "node_modules/recharts/es6/util/TickUtils.js", + "node_modules/recharts/es6/cartesian/getEquidistantTicks.js", + "node_modules/recharts/es6/cartesian/getTicks.js", + "node_modules/recharts/es6/cartesian/CartesianAxis.js", + "node_modules/recharts/es6/cartesian/CartesianGrid.js", + "node_modules/recharts/es6/cartesian/XAxis.js", + "node_modules/recharts/es6/cartesian/YAxis.js", + "node_modules/recharts/es6/chart/BarChart.js", + "node_modules/recharts/es6/chart/PieChart.js", + "src/components/admin/AdminAnnouncements.tsx", + "src/pages/AdminPage.tsx" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "src/pages/AdminPage.tsx" + }, + { + "file": "assets/users-DWoVwdaK.js", + "bytes": 301, + "gzipBytes": 224, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/users.js" + ], + "staticMembership": [ + "/", + "/app/admin" + ], + "dynamicEntry": "_users-DWoVwdaK.js" + }, + { + "file": "assets/checkbox-CcU5IimS.js", + "bytes": 4320, + "gzipBytes": 1874, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@radix-ui/react-checkbox/dist/index.mjs", + "src/components/ui/checkbox.tsx" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_checkbox-CcU5IimS.js" + }, + { + "file": "assets/credit-card-CFOMlw74.js", + "bytes": 203, + "gzipBytes": 183, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/credit-card.js" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_credit-card-CFOMlw74.js" + }, + { + "file": "assets/scroll-area-B5p3Y_vr.js", + "bytes": 13530, + "gzipBytes": 4249, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@radix-ui/react-scroll-area/dist/index.mjs", + "src/components/ui/scroll-area.tsx" + ], + "staticMembership": [ + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_scroll-area-B5p3Y_vr.js" + }, + { + "file": "assets/copy-B5L0aXUh.js", + "bytes": 228, + "gzipBytes": 203, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/copy.js" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_copy-B5L0aXUh.js" + }, + { + "file": "assets/search-70EybyUQ.js", + "bytes": 164, + "gzipBytes": 163, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/search.js" + ], + "staticMembership": [ + "/", + "/app/attack", + "/app/admin" + ], + "dynamicEntry": "_search-70EybyUQ.js" + }, + { + "file": "assets/generateCategoricalChart-DZci5nEc.js", + "bytes": 364541, + "gzipBytes": 99153, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/string-CvptbcKz.js" + ], + "modules": [ + "node_modules/d3-interpolate/src/numberArray.js", + "node_modules/d3-interpolate/src/array.js", + "node_modules/d3-interpolate/src/date.js", + "node_modules/d3-interpolate/src/object.js", + "node_modules/d3-interpolate/src/value.js", + "node_modules/d3-interpolate/src/round.js", + "node_modules/d3-interpolate/src/piecewise.js", + "node_modules/lodash/isArray.js", + "node_modules/lodash/_freeGlobal.js", + "node_modules/lodash/_root.js", + "node_modules/lodash/_Symbol.js", + "node_modules/lodash/_getRawTag.js", + "node_modules/lodash/_objectToString.js", + "node_modules/lodash/_baseGetTag.js", + "node_modules/lodash/isObjectLike.js", + "node_modules/lodash/isSymbol.js", + "node_modules/lodash/_isKey.js", + "node_modules/lodash/isObject.js", + "node_modules/lodash/isFunction.js", + "node_modules/lodash/_coreJsData.js", + "node_modules/lodash/_isMasked.js", + "node_modules/lodash/_toSource.js", + "node_modules/lodash/_baseIsNative.js", + "node_modules/lodash/_getValue.js", + "node_modules/lodash/_getNative.js", + "node_modules/lodash/_nativeCreate.js", + "node_modules/lodash/_hashClear.js", + "node_modules/lodash/_hashDelete.js", + "node_modules/lodash/_hashGet.js", + "node_modules/lodash/_hashHas.js", + "node_modules/lodash/_hashSet.js", + "node_modules/lodash/_Hash.js", + "node_modules/lodash/_listCacheClear.js", + "node_modules/lodash/eq.js", + "node_modules/lodash/_assocIndexOf.js", + "node_modules/lodash/_listCacheDelete.js", + "node_modules/lodash/_listCacheGet.js", + "node_modules/lodash/_listCacheHas.js", + "node_modules/lodash/_listCacheSet.js", + "node_modules/lodash/_ListCache.js", + "node_modules/lodash/_Map.js", + "node_modules/lodash/_mapCacheClear.js", + "node_modules/lodash/_isKeyable.js", + "node_modules/lodash/_getMapData.js", + "node_modules/lodash/_mapCacheDelete.js", + "node_modules/lodash/_mapCacheGet.js", + "node_modules/lodash/_mapCacheHas.js", + "node_modules/lodash/_mapCacheSet.js", + "node_modules/lodash/_MapCache.js", + "node_modules/lodash/memoize.js", + "node_modules/lodash/_memoizeCapped.js", + "node_modules/lodash/_stringToPath.js", + "node_modules/lodash/_arrayMap.js", + "node_modules/lodash/_baseToString.js", + "node_modules/lodash/toString.js", + "node_modules/lodash/_castPath.js", + "node_modules/lodash/_toKey.js", + "node_modules/lodash/_baseGet.js", + "node_modules/lodash/get.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/get.js?commonjs-es-import", + "node_modules/lodash/isNil.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isNil.js?commonjs-es-import", + "node_modules/lodash/isString.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isString.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isFunction.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isObject.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/recharts/node_modules/react-is/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/recharts/node_modules/react-is/cjs/react-is.production.min.js?commonjs-exports", + "node_modules/recharts/node_modules/react-is/cjs/react-is.production.min.js", + "node_modules/recharts/node_modules/react-is/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/recharts/node_modules/react-is/index.js?commonjs-es-import", + "node_modules/lodash/isNumber.js", + "node_modules/lodash/isNaN.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isNaN.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isNumber.js?commonjs-es-import", + "node_modules/recharts/es6/util/DataUtils.js", + "node_modules/recharts/es6/util/ShallowEqual.js", + "node_modules/recharts/es6/util/types.js", + "node_modules/recharts/es6/util/ReactUtils.js", + "node_modules/recharts/es6/container/Surface.js", + "node_modules/recharts/es6/container/Layer.js", + "node_modules/recharts/es6/util/LogUtils.js", + "node_modules/lodash/_baseSlice.js", + "node_modules/lodash/_castSlice.js", + "node_modules/lodash/_hasUnicode.js", + "node_modules/lodash/_asciiToArray.js", + "node_modules/lodash/_unicodeToArray.js", + "node_modules/lodash/_stringToArray.js", + "node_modules/lodash/_createCaseFirst.js", + "node_modules/lodash/upperFirst.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/upperFirst.js?commonjs-es-import", + "node_modules/d3-shape/src/constant.js", + "node_modules/d3-shape/src/math.js", + "node_modules/d3-path/src/path.js", + "node_modules/d3-shape/src/path.js", + "node_modules/d3-shape/src/array.js", + "node_modules/d3-shape/src/curve/linear.js", + "node_modules/d3-shape/src/point.js", + "node_modules/d3-shape/src/line.js", + "node_modules/d3-shape/src/area.js", + "node_modules/d3-shape/src/curve/bump.js", + "node_modules/d3-shape/src/symbol/circle.js", + "node_modules/d3-shape/src/symbol/cross.js", + "node_modules/d3-shape/src/symbol/diamond.js", + "node_modules/d3-shape/src/symbol/square.js", + "node_modules/d3-shape/src/symbol/star.js", + "node_modules/d3-shape/src/symbol/triangle.js", + "node_modules/d3-shape/src/symbol/wye.js", + "node_modules/d3-shape/src/symbol.js", + "node_modules/d3-shape/src/noop.js", + "node_modules/d3-shape/src/curve/basis.js", + "node_modules/d3-shape/src/curve/basisClosed.js", + "node_modules/d3-shape/src/curve/basisOpen.js", + "node_modules/d3-shape/src/curve/linearClosed.js", + "node_modules/d3-shape/src/curve/monotone.js", + "node_modules/d3-shape/src/curve/natural.js", + "node_modules/d3-shape/src/curve/step.js", + "node_modules/d3-shape/src/offset/none.js", + "node_modules/d3-shape/src/order/none.js", + "node_modules/d3-shape/src/stack.js", + "node_modules/d3-shape/src/offset/expand.js", + "node_modules/d3-shape/src/offset/silhouette.js", + "node_modules/d3-shape/src/offset/wiggle.js", + "node_modules/recharts/es6/shape/Symbols.js", + "node_modules/recharts/es6/component/DefaultLegendContent.js", + "node_modules/lodash/_stackClear.js", + "node_modules/lodash/_stackDelete.js", + "node_modules/lodash/_stackGet.js", + "node_modules/lodash/_stackHas.js", + "node_modules/lodash/_stackSet.js", + "node_modules/lodash/_Stack.js", + "node_modules/lodash/_setCacheAdd.js", + "node_modules/lodash/_setCacheHas.js", + "node_modules/lodash/_SetCache.js", + "node_modules/lodash/_arraySome.js", + "node_modules/lodash/_cacheHas.js", + "node_modules/lodash/_equalArrays.js", + "node_modules/lodash/_Uint8Array.js", + "node_modules/lodash/_mapToArray.js", + "node_modules/lodash/_setToArray.js", + "node_modules/lodash/_equalByTag.js", + "node_modules/lodash/_arrayPush.js", + "node_modules/lodash/_baseGetAllKeys.js", + "node_modules/lodash/_arrayFilter.js", + "node_modules/lodash/stubArray.js", + "node_modules/lodash/_getSymbols.js", + "node_modules/lodash/_baseTimes.js", + "node_modules/lodash/_baseIsArguments.js", + "node_modules/lodash/isArguments.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isBuffer.js?commonjs-module", + "node_modules/lodash/stubFalse.js", + "node_modules/lodash/isBuffer.js", + "node_modules/lodash/_isIndex.js", + "node_modules/lodash/isLength.js", + "node_modules/lodash/_baseIsTypedArray.js", + "node_modules/lodash/_baseUnary.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/_nodeUtil.js?commonjs-module", + "node_modules/lodash/_nodeUtil.js", + "node_modules/lodash/isTypedArray.js", + "node_modules/lodash/_arrayLikeKeys.js", + "node_modules/lodash/_isPrototype.js", + "node_modules/lodash/_overArg.js", + "node_modules/lodash/_nativeKeys.js", + "node_modules/lodash/_baseKeys.js", + "node_modules/lodash/isArrayLike.js", + "node_modules/lodash/keys.js", + "node_modules/lodash/_getAllKeys.js", + "node_modules/lodash/_equalObjects.js", + "node_modules/lodash/_DataView.js", + "node_modules/lodash/_Promise.js", + "node_modules/lodash/_Set.js", + "node_modules/lodash/_WeakMap.js", + "node_modules/lodash/_getTag.js", + "node_modules/lodash/_baseIsEqualDeep.js", + "node_modules/lodash/_baseIsEqual.js", + "node_modules/lodash/_baseIsMatch.js", + "node_modules/lodash/_isStrictComparable.js", + "node_modules/lodash/_getMatchData.js", + "node_modules/lodash/_matchesStrictComparable.js", + "node_modules/lodash/_baseMatches.js", + "node_modules/lodash/_baseHasIn.js", + "node_modules/lodash/_hasPath.js", + "node_modules/lodash/hasIn.js", + "node_modules/lodash/_baseMatchesProperty.js", + "node_modules/lodash/identity.js", + "node_modules/lodash/_baseProperty.js", + "node_modules/lodash/_basePropertyDeep.js", + "node_modules/lodash/property.js", + "node_modules/lodash/_baseIteratee.js", + "node_modules/lodash/_baseFindIndex.js", + "node_modules/lodash/_baseIsNaN.js", + "node_modules/lodash/_strictIndexOf.js", + "node_modules/lodash/_baseIndexOf.js", + "node_modules/lodash/_arrayIncludes.js", + "node_modules/lodash/_arrayIncludesWith.js", + "node_modules/lodash/noop.js", + "node_modules/lodash/_createSet.js", + "node_modules/lodash/_baseUniq.js", + "node_modules/lodash/uniqBy.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/uniqBy.js?commonjs-es-import", + "node_modules/recharts/es6/util/payload/getUniqPayload.js", + "node_modules/recharts/es6/component/Legend.js", + "node_modules/lodash/_isFlattenable.js", + "node_modules/lodash/_baseFlatten.js", + "node_modules/lodash/_createBaseFor.js", + "node_modules/lodash/_baseFor.js", + "node_modules/lodash/_baseForOwn.js", + "node_modules/lodash/_createBaseEach.js", + "node_modules/lodash/_baseEach.js", + "node_modules/lodash/_baseMap.js", + "node_modules/lodash/_baseSortBy.js", + "node_modules/lodash/_compareAscending.js", + "node_modules/lodash/_compareMultiple.js", + "node_modules/lodash/_baseOrderBy.js", + "node_modules/lodash/_apply.js", + "node_modules/lodash/_overRest.js", + "node_modules/lodash/constant.js", + "node_modules/lodash/_defineProperty.js", + "node_modules/lodash/_baseSetToString.js", + "node_modules/lodash/_shortOut.js", + "node_modules/lodash/_setToString.js", + "node_modules/lodash/_baseRest.js", + "node_modules/lodash/_isIterateeCall.js", + "node_modules/lodash/sortBy.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/sortBy.js?commonjs-es-import", + "node_modules/recharts/es6/component/DefaultTooltipContent.js", + "node_modules/recharts/es6/util/tooltip/translate.js", + "node_modules/recharts/es6/component/TooltipBoundingBox.js", + "node_modules/recharts/es6/util/Global.js", + "node_modules/recharts/es6/component/Tooltip.js", + "node_modules/lodash/now.js", + "node_modules/lodash/_trimmedEndIndex.js", + "node_modules/lodash/_baseTrim.js", + "node_modules/lodash/toNumber.js", + "node_modules/lodash/debounce.js", + "node_modules/lodash/throttle.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/throttle.js?commonjs-es-import", + "node_modules/recharts/es6/component/ResponsiveContainer.js", + "node_modules/recharts/es6/component/Cell.js", + "node_modules/recharts/es6/util/DOMUtils.js", + "node_modules/recharts/es6/util/ReduceCSSCalc.js", + "node_modules/recharts/es6/component/Text.js", + "node_modules/d3-array/src/ascending.js", + "node_modules/d3-array/src/descending.js", + "node_modules/d3-array/src/bisector.js", + "node_modules/d3-array/src/number.js", + "node_modules/d3-array/src/bisect.js", + "node_modules/internmap/src/index.js", + "node_modules/d3-array/src/sort.js", + "node_modules/d3-array/src/ticks.js", + "node_modules/d3-array/src/max.js", + "node_modules/d3-array/src/min.js", + "node_modules/d3-array/src/quickselect.js", + "node_modules/d3-array/src/quantile.js", + "node_modules/d3-array/src/range.js", + "node_modules/d3-scale/src/init.js", + "node_modules/d3-scale/src/ordinal.js", + "node_modules/d3-scale/src/band.js", + "node_modules/d3-scale/src/constant.js", + "node_modules/d3-scale/src/number.js", + "node_modules/d3-scale/src/continuous.js", + "node_modules/d3-format/src/formatDecimal.js", + "node_modules/d3-format/src/exponent.js", + "node_modules/d3-format/src/formatGroup.js", + "node_modules/d3-format/src/formatNumerals.js", + "node_modules/d3-format/src/formatSpecifier.js", + "node_modules/d3-format/src/formatTrim.js", + "node_modules/d3-format/src/formatPrefixAuto.js", + "node_modules/d3-format/src/formatRounded.js", + "node_modules/d3-format/src/formatTypes.js", + "node_modules/d3-format/src/identity.js", + "node_modules/d3-format/src/locale.js", + "node_modules/d3-format/src/defaultLocale.js", + "node_modules/d3-format/src/precisionFixed.js", + "node_modules/d3-format/src/precisionPrefix.js", + "node_modules/d3-format/src/precisionRound.js", + "node_modules/d3-scale/src/tickFormat.js", + "node_modules/d3-scale/src/linear.js", + "node_modules/d3-scale/src/identity.js", + "node_modules/d3-scale/src/nice.js", + "node_modules/d3-scale/src/log.js", + "node_modules/d3-scale/src/symlog.js", + "node_modules/d3-scale/src/pow.js", + "node_modules/d3-scale/src/radial.js", + "node_modules/d3-scale/src/quantile.js", + "node_modules/d3-scale/src/quantize.js", + "node_modules/d3-scale/src/threshold.js", + "node_modules/d3-time/src/interval.js", + "node_modules/d3-time/src/millisecond.js", + "node_modules/d3-time/src/duration.js", + "node_modules/d3-time/src/second.js", + "node_modules/d3-time/src/minute.js", + "node_modules/d3-time/src/hour.js", + "node_modules/d3-time/src/day.js", + "node_modules/d3-time/src/week.js", + "node_modules/d3-time/src/month.js", + "node_modules/d3-time/src/year.js", + "node_modules/d3-time/src/ticks.js", + "node_modules/d3-time-format/src/locale.js", + "node_modules/d3-time-format/src/defaultLocale.js", + "node_modules/d3-scale/src/time.js", + "node_modules/d3-scale/src/utcTime.js", + "node_modules/d3-scale/src/sequential.js", + "node_modules/d3-scale/src/sequentialQuantile.js", + "node_modules/d3-scale/src/diverging.js", + "node_modules/victory-vendor/es/d3-scale.js", + "node_modules/lodash/_baseExtremum.js", + "node_modules/lodash/_baseGt.js", + "node_modules/lodash/max.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/max.js?commonjs-es-import", + "node_modules/lodash/_baseLt.js", + "node_modules/lodash/min.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/min.js?commonjs-es-import", + "node_modules/lodash/map.js", + "node_modules/lodash/flatMap.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/flatMap.js?commonjs-es-import", + "node_modules/lodash/isEqual.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isEqual.js?commonjs-es-import", + "node_modules/decimal.js-light/decimal.mjs", + "node_modules/recharts-scale/es6/util/utils.js", + "node_modules/recharts-scale/es6/util/arithmetic.js", + "node_modules/recharts-scale/es6/getNiceTickValues.js", + "node_modules/tiny-invariant/dist/esm/tiny-invariant.js", + "node_modules/recharts/es6/cartesian/ErrorBar.js", + "node_modules/recharts/es6/util/getLegendProps.js", + "node_modules/recharts/es6/util/ChartUtils.js", + "node_modules/recharts/es6/util/PolarUtils.js", + "node_modules/recharts/es6/component/Label.js", + "node_modules/lodash/last.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/last.js?commonjs-es-import", + "node_modules/recharts/es6/component/LabelList.js", + "node_modules/recharts/es6/shape/Sector.js", + "node_modules/recharts/es6/shape/Curve.js", + "node_modules/fast-equals/dist/es/index.mjs", + "node_modules/react-smooth/es6/setRafTimeout.js", + "node_modules/react-smooth/es6/AnimateManager.js", + "node_modules/react-smooth/es6/util.js", + "node_modules/react-smooth/es6/easing.js", + "node_modules/react-smooth/es6/configUpdate.js", + "node_modules/react-smooth/es6/Animate.js", + "node_modules/recharts/es6/shape/Rectangle.js", + "node_modules/recharts/es6/shape/Polygon.js", + "node_modules/recharts/es6/shape/Dot.js", + "node_modules/recharts/es6/shape/Cross.js", + "node_modules/lodash/maxBy.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/maxBy.js?commonjs-es-import", + "node_modules/lodash/minBy.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/minBy.js?commonjs-es-import", + "node_modules/recharts/es6/polar/PolarRadiusAxis.js", + "node_modules/recharts/es6/polar/PolarAngleAxis.js", + "node_modules/lodash/_getPrototype.js", + "node_modules/lodash/isPlainObject.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isPlainObject.js?commonjs-es-import", + "node_modules/lodash/isBoolean.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isBoolean.js?commonjs-es-import", + "node_modules/recharts/es6/shape/Trapezoid.js", + "node_modules/recharts/es6/util/ActiveShapeUtils.js", + "node_modules/lodash/_baseRange.js", + "node_modules/lodash/toFinite.js", + "node_modules/lodash/_createRange.js", + "node_modules/lodash/range.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/range.js?commonjs-es-import", + "node_modules/recharts/es6/util/CssPrefixUtils.js", + "node_modules/recharts/es6/cartesian/Brush.js", + "node_modules/lodash/_baseSome.js", + "node_modules/lodash/some.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/some.js?commonjs-es-import", + "node_modules/recharts/es6/util/IfOverflowMatches.js", + "node_modules/lodash/_baseAssignValue.js", + "node_modules/lodash/mapValues.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/mapValues.js?commonjs-es-import", + "node_modules/lodash/_arrayEvery.js", + "node_modules/lodash/_baseEvery.js", + "node_modules/lodash/every.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/every.js?commonjs-es-import", + "node_modules/recharts/es6/util/BarUtils.js", + "node_modules/recharts/es6/cartesian/Bar.js", + "node_modules/recharts/es6/util/CartesianUtils.js", + "node_modules/lodash/_createFind.js", + "node_modules/lodash/toInteger.js", + "node_modules/lodash/findIndex.js", + "node_modules/lodash/find.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/find.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/memoize.js?commonjs-es-import", + "node_modules/recharts/es6/util/calculateViewBox.js", + "node_modules/recharts/es6/context/chartLayoutContext.js", + "node_modules/recharts/es6/cartesian/ReferenceLine.js", + "node_modules/recharts/es6/cartesian/ReferenceDot.js", + "node_modules/recharts/es6/cartesian/ReferenceArea.js", + "node_modules/recharts/es6/util/DetectReferenceElementsDomain.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/eventemitter3/index.js?commonjs-module", + "node_modules/eventemitter3/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/eventemitter3/index.js?commonjs-es-import", + "node_modules/recharts/es6/util/Events.js", + "node_modules/recharts/es6/chart/AccessibilityManager.js", + "node_modules/recharts/es6/util/isDomainSpecifiedByUser.js", + "node_modules/recharts/es6/util/cursor/getCursorRectangle.js", + "node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js", + "node_modules/recharts/es6/util/cursor/getCursorPoints.js", + "node_modules/recharts/es6/component/Cursor.js", + "node_modules/recharts/es6/chart/generateCategoricalChart.js" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_generateCategoricalChart-DZci5nEc.js" + }, + { + "file": "assets/circle-alert-ChwbUVv0.js", + "bytes": 246, + "gzipBytes": 184, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-alert.js" + ], + "staticMembership": [ + "/app/attack", + "/app/admin" + ], + "dynamicEntry": "_circle-alert-ChwbUVv0.js" + }, + { + "file": "assets/rotate-ccw-g7oK_yc2.js", + "bytes": 196, + "gzipBytes": 179, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/rotate-ccw.js" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_rotate-ccw-g7oK_yc2.js" + }, + { + "file": "assets/SharedPage-Btv4hRK8.js", + "bytes": 3252, + "gzipBytes": 1301, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/badge-DOuwE0tA.js", + "assets/date-format-CG2nx3lR.js", + "assets/download-7v2KEx-L.js", + "assets/external-link-hWs27zxC.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/share-2.js", + "src/pages/SharedPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/SharedPage.tsx" + }, + { + "file": "assets/external-link-hWs27zxC.js", + "bytes": 247, + "gzipBytes": 196, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/external-link.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_external-link-hWs27zxC.js" + }, + { + "file": "assets/FlowchartPage-BJaDG0uJ.js", + "bytes": 50503, + "gzipBytes": 16770, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/badge-DOuwE0tA.js", + "assets/input-BRlCt18M.js", + "assets/textarea-BxuDaNfy.js", + "assets/alert-dialog-DDhjApTe.js", + "assets/index-DmtgVR0T.js", + "assets/trash-2-rdeQ5AHC.js", + "assets/save-VRo3zf0k.js", + "assets/plus-B_HHoAv5.js", + "assets/download-7v2KEx-L.js", + "assets/target-DmELU7_M.js", + "assets/shield-DsgIRl3K.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/string-CvptbcKz.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/folder-open.js", + "node_modules/lucide-react/dist/esm/icons/layout-grid.js", + "node_modules/@reactflow/minimap/node_modules/zustand/esm/shallow.mjs", + "node_modules/@reactflow/minimap/dist/esm/index.mjs", + "node_modules/@reactflow/controls/node_modules/zustand/esm/shallow.mjs", + "node_modules/@reactflow/controls/dist/esm/index.mjs", + "node_modules/@reactflow/background/node_modules/zustand/esm/shallow.mjs", + "node_modules/@reactflow/background/dist/esm/index.mjs", + "node_modules/reactflow/dist/style.css", + "node_modules/html-to-image/es/util.js", + "node_modules/html-to-image/es/clone-pseudos.js", + "node_modules/html-to-image/es/mimes.js", + "node_modules/html-to-image/es/dataurl.js", + "node_modules/html-to-image/es/clone-node.js", + "node_modules/html-to-image/es/embed-resources.js", + "node_modules/html-to-image/es/embed-images.js", + "node_modules/html-to-image/es/apply-style.js", + "node_modules/html-to-image/es/embed-webfonts.js", + "node_modules/html-to-image/es/index.js", + "node_modules/date-fns/toDate.mjs", + "node_modules/date-fns/constructFrom.mjs", + "node_modules/date-fns/constants.mjs", + "node_modules/date-fns/_lib/defaultOptions.mjs", + "node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs", + "node_modules/date-fns/compareAsc.mjs", + "node_modules/date-fns/constructNow.mjs", + "node_modules/date-fns/differenceInCalendarMonths.mjs", + "node_modules/date-fns/_lib/getRoundingMethod.mjs", + "node_modules/date-fns/differenceInMilliseconds.mjs", + "node_modules/date-fns/endOfDay.mjs", + "node_modules/date-fns/endOfMonth.mjs", + "node_modules/date-fns/isLastDayOfMonth.mjs", + "node_modules/date-fns/differenceInMonths.mjs", + "node_modules/date-fns/differenceInSeconds.mjs", + "node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs", + "node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs", + "node_modules/date-fns/locale/en-US/_lib/formatLong.mjs", + "node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs", + "node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs", + "node_modules/date-fns/locale/en-US/_lib/localize.mjs", + "node_modules/date-fns/locale/_lib/buildMatchFn.mjs", + "node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs", + "node_modules/date-fns/locale/en-US/_lib/match.mjs", + "node_modules/date-fns/locale/en-US.mjs", + "node_modules/date-fns/formatDistance.mjs", + "node_modules/date-fns/formatDistanceToNow.mjs", + "src/pages/FlowchartPage.tsx" + ], + "staticMembership": [ + "/app/flowchart" + ], + "dynamicEntry": "src/pages/FlowchartPage.tsx" + }, + { + "file": "assets/index-DmtgVR0T.js", + "bytes": 127878, + "gzipBytes": 41134, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/string-CvptbcKz.js" + ], + "modules": [ + "node_modules/classcat/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/shim/with-selector.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/shim/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js?commonjs-exports", + "node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js", + "node_modules/use-sync-external-store/shim/index.js", + "node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js", + "node_modules/use-sync-external-store/shim/with-selector.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/shim/with-selector.js?commonjs-es-import", + "node_modules/@reactflow/core/node_modules/zustand/esm/vanilla.mjs", + "node_modules/@reactflow/core/node_modules/zustand/esm/traditional.mjs", + "node_modules/@reactflow/core/node_modules/zustand/esm/shallow.mjs", + "node_modules/d3-dispatch/src/dispatch.js", + "node_modules/d3-selection/src/namespaces.js", + "node_modules/d3-selection/src/namespace.js", + "node_modules/d3-selection/src/creator.js", + "node_modules/d3-selection/src/selector.js", + "node_modules/d3-selection/src/selection/select.js", + "node_modules/d3-selection/src/array.js", + "node_modules/d3-selection/src/selectorAll.js", + "node_modules/d3-selection/src/selection/selectAll.js", + "node_modules/d3-selection/src/matcher.js", + "node_modules/d3-selection/src/selection/selectChild.js", + "node_modules/d3-selection/src/selection/selectChildren.js", + "node_modules/d3-selection/src/selection/filter.js", + "node_modules/d3-selection/src/selection/sparse.js", + "node_modules/d3-selection/src/selection/enter.js", + "node_modules/d3-selection/src/constant.js", + "node_modules/d3-selection/src/selection/data.js", + "node_modules/d3-selection/src/selection/exit.js", + "node_modules/d3-selection/src/selection/join.js", + "node_modules/d3-selection/src/selection/merge.js", + "node_modules/d3-selection/src/selection/order.js", + "node_modules/d3-selection/src/selection/sort.js", + "node_modules/d3-selection/src/selection/call.js", + "node_modules/d3-selection/src/selection/nodes.js", + "node_modules/d3-selection/src/selection/node.js", + "node_modules/d3-selection/src/selection/size.js", + "node_modules/d3-selection/src/selection/empty.js", + "node_modules/d3-selection/src/selection/each.js", + "node_modules/d3-selection/src/selection/attr.js", + "node_modules/d3-selection/src/window.js", + "node_modules/d3-selection/src/selection/style.js", + "node_modules/d3-selection/src/selection/property.js", + "node_modules/d3-selection/src/selection/classed.js", + "node_modules/d3-selection/src/selection/text.js", + "node_modules/d3-selection/src/selection/html.js", + "node_modules/d3-selection/src/selection/raise.js", + "node_modules/d3-selection/src/selection/lower.js", + "node_modules/d3-selection/src/selection/append.js", + "node_modules/d3-selection/src/selection/insert.js", + "node_modules/d3-selection/src/selection/remove.js", + "node_modules/d3-selection/src/selection/clone.js", + "node_modules/d3-selection/src/selection/datum.js", + "node_modules/d3-selection/src/selection/on.js", + "node_modules/d3-selection/src/selection/dispatch.js", + "node_modules/d3-selection/src/selection/iterator.js", + "node_modules/d3-selection/src/selection/index.js", + "node_modules/d3-selection/src/select.js", + "node_modules/d3-selection/src/sourceEvent.js", + "node_modules/d3-selection/src/pointer.js", + "node_modules/d3-drag/src/noevent.js", + "node_modules/d3-drag/src/nodrag.js", + "node_modules/d3-drag/src/constant.js", + "node_modules/d3-drag/src/event.js", + "node_modules/d3-drag/src/drag.js", + "node_modules/d3-interpolate/src/transform/decompose.js", + "node_modules/d3-interpolate/src/transform/parse.js", + "node_modules/d3-interpolate/src/transform/index.js", + "node_modules/d3-interpolate/src/zoom.js", + "node_modules/d3-timer/src/timer.js", + "node_modules/d3-timer/src/timeout.js", + "node_modules/d3-transition/src/transition/schedule.js", + "node_modules/d3-transition/src/interrupt.js", + "node_modules/d3-transition/src/selection/interrupt.js", + "node_modules/d3-transition/src/transition/tween.js", + "node_modules/d3-transition/src/transition/interpolate.js", + "node_modules/d3-transition/src/transition/attr.js", + "node_modules/d3-transition/src/transition/attrTween.js", + "node_modules/d3-transition/src/transition/delay.js", + "node_modules/d3-transition/src/transition/duration.js", + "node_modules/d3-transition/src/transition/ease.js", + "node_modules/d3-transition/src/transition/easeVarying.js", + "node_modules/d3-transition/src/transition/filter.js", + "node_modules/d3-transition/src/transition/merge.js", + "node_modules/d3-transition/src/transition/on.js", + "node_modules/d3-transition/src/transition/remove.js", + "node_modules/d3-transition/src/transition/select.js", + "node_modules/d3-transition/src/transition/selectAll.js", + "node_modules/d3-transition/src/transition/selection.js", + "node_modules/d3-transition/src/transition/style.js", + "node_modules/d3-transition/src/transition/styleTween.js", + "node_modules/d3-transition/src/transition/text.js", + "node_modules/d3-transition/src/transition/textTween.js", + "node_modules/d3-transition/src/transition/transition.js", + "node_modules/d3-transition/src/transition/end.js", + "node_modules/d3-transition/src/transition/index.js", + "node_modules/d3-ease/src/cubic.js", + "node_modules/d3-transition/src/selection/transition.js", + "node_modules/d3-transition/src/selection/index.js", + "node_modules/d3-zoom/src/constant.js", + "node_modules/d3-zoom/src/event.js", + "node_modules/d3-zoom/src/transform.js", + "node_modules/d3-zoom/src/noevent.js", + "node_modules/d3-zoom/src/zoom.js", + "node_modules/@reactflow/core/dist/esm/index.mjs" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart" + ], + "dynamicEntry": "_index-DmtgVR0T.js" + }, + { + "file": "assets/triangle-alert-DAkLJ_Hs.js", + "bytes": 261, + "gzipBytes": 210, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/triangle-alert.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack", + "/app/flowchart" + ], + "dynamicEntry": "_triangle-alert-DAkLJ_Hs.js" + }, + { + "file": "assets/plus-B_HHoAv5.js", + "bytes": 150, + "gzipBytes": 147, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/plus.js" + ], + "staticMembership": [ + "/app/flowchart" + ], + "dynamicEntry": "_plus-B_HHoAv5.js" + }, + { + "file": "assets/save-VRo3zf0k.js", + "bytes": 324, + "gzipBytes": 225, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/save.js" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart" + ], + "dynamicEntry": "_save-VRo3zf0k.js" + }, + { + "file": "assets/target-DmELU7_M.js", + "bytes": 218, + "gzipBytes": 157, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/target.js" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart" + ], + "dynamicEntry": "_target-DmELU7_M.js" + }, + { + "file": "assets/shield-DsgIRl3K.js", + "bytes": 269, + "gzipBytes": 220, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/shield.js" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart", + "/app/admin" + ], + "dynamicEntry": "_shield-DsgIRl3K.js" + }, + { + "file": "assets/alert-dialog-DDhjApTe.js", + "bytes": 3698, + "gzipBytes": 1236, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@radix-ui/react-alert-dialog/dist/index.mjs", + "src/components/ui/alert-dialog.tsx" + ], + "staticMembership": [ + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_alert-dialog-DDhjApTe.js" + }, + { + "file": "assets/trash-2-rdeQ5AHC.js", + "bytes": 354, + "gzipBytes": 244, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/trash-2.js" + ], + "staticMembership": [ + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_trash-2-rdeQ5AHC.js" + }, + { + "file": "assets/string-CvptbcKz.js", + "bytes": 8378, + "gzipBytes": 3585, + "imports": [], + "modules": [ + "node_modules/d3-color/src/define.js", + "node_modules/d3-color/src/color.js", + "node_modules/d3-interpolate/src/constant.js", + "node_modules/d3-interpolate/src/color.js", + "node_modules/d3-interpolate/src/rgb.js", + "node_modules/d3-interpolate/src/number.js", + "node_modules/d3-interpolate/src/string.js" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart", + "/app/admin" + ], + "dynamicEntry": "_string-CvptbcKz.js" + }, + { + "file": "assets/textarea-BxuDaNfy.js", + "bytes": 508, + "gzipBytes": 332, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/components/ui/textarea.tsx" + ], + "staticMembership": [ + "/app/attack", + "/app/flowchart", + "/app/admin" + ], + "dynamicEntry": "_textarea-BxuDaNfy.js" + }, + { + "file": "assets/download-7v2KEx-L.js", + "bytes": 259, + "gzipBytes": 217, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/download.js" + ], + "staticMembership": [ + "/app/flowchart" + ], + "dynamicEntry": "_download-7v2KEx-L.js" + }, + { + "file": "assets/badge-DOuwE0tA.js", + "bytes": 796, + "gzipBytes": 405, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/components/ui/badge.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack", + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_badge-DOuwE0tA.js" + }, + { + "file": "assets/LoginPage-NBbG4nMQ.js", + "bytes": 6791, + "gzipBytes": 2207, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/input-BRlCt18M.js", + "assets/tabs-DSSrXhZO.js" + ], + "modules": [ + "src/pages/LoginPage.tsx" + ], + "staticMembership": [ + "/login" + ], + "dynamicEntry": "src/pages/LoginPage.tsx" + }, + { + "file": "assets/tabs-DSSrXhZO.js", + "bytes": 7560, + "gzipBytes": 2988, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@radix-ui/react-use-is-hydrated/dist/index.mjs", + "node_modules/@radix-ui/react-roving-focus/dist/index.mjs", + "node_modules/@radix-ui/react-tabs/dist/index.mjs", + "src/components/ui/tabs.tsx" + ], + "staticMembership": [ + "/login", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_tabs-DSSrXhZO.js" + }, + { + "file": "assets/input-BRlCt18M.js", + "bytes": 593, + "gzipBytes": 359, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/components/ui/input.tsx" + ], + "staticMembership": [ + "/login", + "/app/generate", + "/app/attack", + "/app/flowchart", + "/app/admin" + ], + "dynamicEntry": "_input-BRlCt18M.js" + }, + { + "file": "assets/card-DNuxaVKj.js", + "bytes": 999, + "gzipBytes": 384, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/components/ui/card.tsx" + ], + "staticMembership": [ + "/login", + "/app", + "/app/generate", + "/app/attack", + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_card-DNuxaVKj.js" + }, + { + "file": "assets/SourcesPage-DSqTyQn_.js", + "bytes": 4766, + "gzipBytes": 2079, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/pages/SourcesPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/SourcesPage.tsx" + }, + { + "file": "assets/NotFound-Dvo2F00T.js", + "bytes": 660, + "gzipBytes": 382, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/pages/NotFound.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/NotFound.tsx" + }, + { + "file": "assets/index-KVFzqUoF.js", + "bytes": 2665, + "gzipBytes": 1241, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@vercel/analytics/dist/react/index.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@vercel/analytics/dist/react/index.mjs" + }, + { + "file": "assets/index-D8Vu6iKp.js", + "bytes": 2350, + "gzipBytes": 1106, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@vercel/speed-insights/dist/react/index.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@vercel/speed-insights/dist/react/index.mjs" + }, + { + "file": "assets/web-BHBSb3xY.js", + "bytes": 843, + "gzipBytes": 398, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@capacitor/app/dist/esm/web.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@capacitor/app/dist/esm/web.js" + }, + { + "file": "assets/web-SENkJeDj.js", + "bytes": 899, + "gzipBytes": 457, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@capacitor/haptics/dist/esm/web.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@capacitor/haptics/dist/esm/web.js" + }, + { + "file": "assets/web-CpI6q_hi.js", + "bytes": 380, + "gzipBytes": 251, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@capacitor/browser/dist/esm/web.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@capacitor/browser/dist/esm/web.js" + }, + { + "file": "assets/export-utils-rzho5miz.js", + "bytes": 17952, + "gzipBytes": 4367, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/date-format-CG2nx3lR.js" + ], + "modules": [ + "src/lib/export-utils.ts" + ], + "staticMembership": [], + "dynamicEntry": "src/lib/export-utils.ts" + }, + { + "file": "assets/pdf-export-utils-e2iA0MLn.js", + "bytes": 13432, + "gzipBytes": 4521, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/date-format-CG2nx3lR.js" + ], + "modules": [ + "src/lib/pdf-export-utils.ts" + ], + "staticMembership": [], + "dynamicEntry": "src/lib/pdf-export-utils.ts" + }, + { + "file": "assets/date-format-CG2nx3lR.js", + "bytes": 693, + "gzipBytes": 314, + "imports": [], + "modules": [ + "src/lib/date-format.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_date-format-CG2nx3lR.js" + }, + { + "file": "assets/index-DkAE3Ges.js", + "bytes": 504096, + "gzipBytes": 131454, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/index.js?commonjs-exports", + "node_modules/underscore/modules/_setup.js", + "node_modules/underscore/modules/restArguments.js", + "node_modules/underscore/modules/isObject.js", + "node_modules/underscore/modules/isNull.js", + "node_modules/underscore/modules/isUndefined.js", + "node_modules/underscore/modules/isBoolean.js", + "node_modules/underscore/modules/isElement.js", + "node_modules/underscore/modules/_tagTester.js", + "node_modules/underscore/modules/isString.js", + "node_modules/underscore/modules/isNumber.js", + "node_modules/underscore/modules/isDate.js", + "node_modules/underscore/modules/isRegExp.js", + "node_modules/underscore/modules/isError.js", + "node_modules/underscore/modules/isSymbol.js", + "node_modules/underscore/modules/isArrayBuffer.js", + "node_modules/underscore/modules/isFunction.js", + "node_modules/underscore/modules/_hasObjectTag.js", + "node_modules/underscore/modules/_stringTagBug.js", + "node_modules/underscore/modules/isDataView.js", + "node_modules/underscore/modules/isArray.js", + "node_modules/underscore/modules/_has.js", + "node_modules/underscore/modules/isArguments.js", + "node_modules/underscore/modules/isFinite.js", + "node_modules/underscore/modules/isNaN.js", + "node_modules/underscore/modules/constant.js", + "node_modules/underscore/modules/_createSizePropertyCheck.js", + "node_modules/underscore/modules/_shallowProperty.js", + "node_modules/underscore/modules/_getByteLength.js", + "node_modules/underscore/modules/_isBufferLike.js", + "node_modules/underscore/modules/isTypedArray.js", + "node_modules/underscore/modules/_getLength.js", + "node_modules/underscore/modules/_collectNonEnumProps.js", + "node_modules/underscore/modules/keys.js", + "node_modules/underscore/modules/isEmpty.js", + "node_modules/underscore/modules/isMatch.js", + "node_modules/underscore/modules/underscore.js", + "node_modules/underscore/modules/_toBufferView.js", + "node_modules/underscore/modules/isEqual.js", + "node_modules/underscore/modules/allKeys.js", + "node_modules/underscore/modules/_methodFingerprint.js", + "node_modules/underscore/modules/isMap.js", + "node_modules/underscore/modules/isWeakMap.js", + "node_modules/underscore/modules/isSet.js", + "node_modules/underscore/modules/isWeakSet.js", + "node_modules/underscore/modules/values.js", + "node_modules/underscore/modules/pairs.js", + "node_modules/underscore/modules/invert.js", + "node_modules/underscore/modules/functions.js", + "node_modules/underscore/modules/_createAssigner.js", + "node_modules/underscore/modules/extend.js", + "node_modules/underscore/modules/extendOwn.js", + "node_modules/underscore/modules/defaults.js", + "node_modules/underscore/modules/_baseCreate.js", + "node_modules/underscore/modules/create.js", + "node_modules/underscore/modules/clone.js", + "node_modules/underscore/modules/tap.js", + "node_modules/underscore/modules/toPath.js", + "node_modules/underscore/modules/_toPath.js", + "node_modules/underscore/modules/_deepGet.js", + "node_modules/underscore/modules/get.js", + "node_modules/underscore/modules/has.js", + "node_modules/underscore/modules/identity.js", + "node_modules/underscore/modules/matcher.js", + "node_modules/underscore/modules/property.js", + "node_modules/underscore/modules/_optimizeCb.js", + "node_modules/underscore/modules/_baseIteratee.js", + "node_modules/underscore/modules/iteratee.js", + "node_modules/underscore/modules/_cb.js", + "node_modules/underscore/modules/mapObject.js", + "node_modules/underscore/modules/noop.js", + "node_modules/underscore/modules/propertyOf.js", + "node_modules/underscore/modules/times.js", + "node_modules/underscore/modules/random.js", + "node_modules/underscore/modules/now.js", + "node_modules/underscore/modules/_createEscaper.js", + "node_modules/underscore/modules/_escapeMap.js", + "node_modules/underscore/modules/escape.js", + "node_modules/underscore/modules/_unescapeMap.js", + "node_modules/underscore/modules/unescape.js", + "node_modules/underscore/modules/templateSettings.js", + "node_modules/underscore/modules/template.js", + "node_modules/underscore/modules/result.js", + "node_modules/underscore/modules/uniqueId.js", + "node_modules/underscore/modules/chain.js", + "node_modules/underscore/modules/_executeBound.js", + "node_modules/underscore/modules/partial.js", + "node_modules/underscore/modules/bind.js", + "node_modules/underscore/modules/_isArrayLike.js", + "node_modules/underscore/modules/_flatten.js", + "node_modules/underscore/modules/bindAll.js", + "node_modules/underscore/modules/memoize.js", + "node_modules/underscore/modules/delay.js", + "node_modules/underscore/modules/defer.js", + "node_modules/underscore/modules/throttle.js", + "node_modules/underscore/modules/debounce.js", + "node_modules/underscore/modules/wrap.js", + "node_modules/underscore/modules/negate.js", + "node_modules/underscore/modules/compose.js", + "node_modules/underscore/modules/after.js", + "node_modules/underscore/modules/before.js", + "node_modules/underscore/modules/once.js", + "node_modules/underscore/modules/findKey.js", + "node_modules/underscore/modules/_createPredicateIndexFinder.js", + "node_modules/underscore/modules/findIndex.js", + "node_modules/underscore/modules/findLastIndex.js", + "node_modules/underscore/modules/sortedIndex.js", + "node_modules/underscore/modules/_createIndexFinder.js", + "node_modules/underscore/modules/indexOf.js", + "node_modules/underscore/modules/lastIndexOf.js", + "node_modules/underscore/modules/find.js", + "node_modules/underscore/modules/findWhere.js", + "node_modules/underscore/modules/each.js", + "node_modules/underscore/modules/map.js", + "node_modules/underscore/modules/_createReduce.js", + "node_modules/underscore/modules/reduce.js", + "node_modules/underscore/modules/reduceRight.js", + "node_modules/underscore/modules/filter.js", + "node_modules/underscore/modules/reject.js", + "node_modules/underscore/modules/every.js", + "node_modules/underscore/modules/some.js", + "node_modules/underscore/modules/contains.js", + "node_modules/underscore/modules/invoke.js", + "node_modules/underscore/modules/pluck.js", + "node_modules/underscore/modules/where.js", + "node_modules/underscore/modules/max.js", + "node_modules/underscore/modules/min.js", + "node_modules/underscore/modules/toArray.js", + "node_modules/underscore/modules/sample.js", + "node_modules/underscore/modules/shuffle.js", + "node_modules/underscore/modules/sortBy.js", + "node_modules/underscore/modules/_group.js", + "node_modules/underscore/modules/groupBy.js", + "node_modules/underscore/modules/indexBy.js", + "node_modules/underscore/modules/countBy.js", + "node_modules/underscore/modules/partition.js", + "node_modules/underscore/modules/size.js", + "node_modules/underscore/modules/_keyInObj.js", + "node_modules/underscore/modules/pick.js", + "node_modules/underscore/modules/omit.js", + "node_modules/underscore/modules/initial.js", + "node_modules/underscore/modules/first.js", + "node_modules/underscore/modules/rest.js", + "node_modules/underscore/modules/last.js", + "node_modules/underscore/modules/compact.js", + "node_modules/underscore/modules/flatten.js", + "node_modules/underscore/modules/difference.js", + "node_modules/underscore/modules/without.js", + "node_modules/underscore/modules/uniq.js", + "node_modules/underscore/modules/union.js", + "node_modules/underscore/modules/intersection.js", + "node_modules/underscore/modules/unzip.js", + "node_modules/underscore/modules/zip.js", + "node_modules/underscore/modules/object.js", + "node_modules/underscore/modules/range.js", + "node_modules/underscore/modules/chunk.js", + "node_modules/underscore/modules/_chainResult.js", + "node_modules/underscore/modules/mixin.js", + "node_modules/underscore/modules/underscore-array-methods.js", + "node_modules/underscore/modules/index.js", + "node_modules/underscore/modules/index-default.js", + "node_modules/underscore/modules/index-all.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/underscore/modules/index-all.js?commonjs-proxy", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/docx-reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/promises.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/bluebird/js/release/promise.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/bluebird/js/release/es5.js?commonjs-module", + "node_modules/bluebird/js/release/es5.js", + "node_modules/bluebird/js/release/util.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/bluebird/js/release/async.js?commonjs-module", + "node_modules/bluebird/js/release/schedule.js", + "node_modules/bluebird/js/release/queue.js", + "node_modules/bluebird/js/release/async.js", + "node_modules/bluebird/js/release/errors.js", + "node_modules/bluebird/js/release/thenables.js", + "node_modules/bluebird/js/release/promise_array.js", + "node_modules/bluebird/js/release/context.js", + "node_modules/bluebird/js/release/debuggability.js", + "node_modules/bluebird/js/release/finally.js", + "node_modules/bluebird/js/release/catch_filter.js", + "node_modules/bluebird/js/release/nodeback.js", + "node_modules/bluebird/js/release/method.js", + "node_modules/bluebird/js/release/bind.js", + "node_modules/bluebird/js/release/cancel.js", + "node_modules/bluebird/js/release/direct_resolve.js", + "node_modules/bluebird/js/release/synchronous_inspection.js", + "node_modules/bluebird/js/release/join.js", + "node_modules/bluebird/js/release/map.js", + "node_modules/bluebird/js/release/call_get.js", + "node_modules/bluebird/js/release/using.js", + "node_modules/bluebird/js/release/timers.js", + "node_modules/bluebird/js/release/generators.js", + "node_modules/bluebird/js/release/nodeify.js", + "node_modules/bluebird/js/release/promisify.js", + "node_modules/bluebird/js/release/props.js", + "node_modules/bluebird/js/release/race.js", + "node_modules/bluebird/js/release/reduce.js", + "node_modules/bluebird/js/release/settle.js", + "node_modules/bluebird/js/release/some.js", + "node_modules/bluebird/js/release/filter.js", + "node_modules/bluebird/js/release/each.js", + "node_modules/bluebird/js/release/any.js", + "node_modules/bluebird/js/release/promise.js", + "node_modules/mammoth/lib/promises.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/documents.js?commonjs-exports", + "node_modules/mammoth/lib/documents.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/results.js?commonjs-exports", + "node_modules/mammoth/lib/results.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/zipfile.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/base64-js/index.js?commonjs-exports", + "node_modules/base64-js/index.js", + "\u0000commonjs-dynamic-modules", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/jszip/dist/jszip.min.js?commonjs-module", + "node_modules/jszip/dist/jszip.min.js", + "node_modules/mammoth/lib/zipfile.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/office-xml-reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/nodes.js?commonjs-exports", + "node_modules/mammoth/lib/xml/nodes.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/xmldom.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/dom.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/conventions.js?commonjs-exports", + "node_modules/@xmldom/xmldom/lib/conventions.js", + "node_modules/@xmldom/xmldom/lib/dom.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/dom-parser.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/entities.js?commonjs-exports", + "node_modules/@xmldom/xmldom/lib/entities.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/sax.js?commonjs-exports", + "node_modules/@xmldom/xmldom/lib/sax.js", + "node_modules/@xmldom/xmldom/lib/dom-parser.js", + "node_modules/@xmldom/xmldom/lib/index.js", + "node_modules/mammoth/lib/xml/xmldom.js", + "node_modules/mammoth/lib/xml/reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/writer.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/Utility.js?commonjs-exports", + "node_modules/xmlbuilder/lib/Utility.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDocument.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLNode.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLElement.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLAttribute.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLAttribute.js", + "node_modules/xmlbuilder/lib/XMLElement.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLCData.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLCData.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLComment.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLComment.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDeclaration.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDeclaration.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDocType.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDTDAttList.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDTDAttList.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDTDEntity.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDTDEntity.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDTDElement.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDTDElement.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDTDNotation.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDTDNotation.js", + "node_modules/xmlbuilder/lib/XMLDocType.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLRaw.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLRaw.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLText.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLText.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLProcessingInstruction.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDummy.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDummy.js", + "node_modules/xmlbuilder/lib/XMLNode.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLStringifier.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLStringifier.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLStringWriter.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLWriterBase.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLWriterBase.js", + "node_modules/xmlbuilder/lib/XMLStringWriter.js", + "node_modules/xmlbuilder/lib/XMLDocument.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDocumentCB.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDocumentCB.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLStreamWriter.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLStreamWriter.js", + "node_modules/xmlbuilder/lib/index.js", + "node_modules/mammoth/lib/xml/writer.js", + "node_modules/mammoth/lib/xml/index.js", + "node_modules/mammoth/lib/docx/office-xml-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/body-reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/dingbat-to-unicode/dist/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/dingbat-to-unicode/dist/dingbats.js?commonjs-exports", + "node_modules/dingbat-to-unicode/dist/dingbats.js", + "node_modules/dingbat-to-unicode/dist/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/transforms.js?commonjs-exports", + "node_modules/mammoth/lib/transforms.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/uris.js?commonjs-exports", + "node_modules/mammoth/lib/docx/uris.js", + "node_modules/mammoth/lib/docx/body-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/document-xml-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/document-xml-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/relationships-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/relationships-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/content-types-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/content-types-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/numbering-xml.js?commonjs-exports", + "node_modules/mammoth/lib/docx/numbering-xml.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/styles-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/styles-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/notes-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/notes-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/comments-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/comments-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/browser/docx/files.js?commonjs-exports", + "node_modules/mammoth/browser/docx/files.js", + "node_modules/mammoth/lib/docx/docx-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/style-map.js?commonjs-exports", + "node_modules/mammoth/lib/docx/style-map.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/document-to-html.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/styles/html-paths.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/html/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/html/ast.js?commonjs-exports", + "node_modules/mammoth/lib/html/ast.js", + "node_modules/mammoth/lib/html/simplify.js", + "node_modules/mammoth/lib/html/index.js", + "node_modules/mammoth/lib/styles/html-paths.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/images.js?commonjs-exports", + "node_modules/mammoth/lib/images.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/writers/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/writers/html-writer.js?commonjs-exports", + "node_modules/mammoth/lib/writers/html-writer.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/writers/markdown-writer.js?commonjs-exports", + "node_modules/mammoth/lib/writers/markdown-writer.js", + "node_modules/mammoth/lib/writers/index.js", + "node_modules/mammoth/lib/document-to-html.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/raw-text.js?commonjs-exports", + "node_modules/mammoth/lib/raw-text.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/style-reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/parser.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/TokenIterator.js?commonjs-module", + "node_modules/lop/lib/TokenIterator.js", + "node_modules/lop/lib/parser.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/rules.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/option/index.js?commonjs-exports", + "node_modules/option/index.js", + "node_modules/lop/lib/parsing-results.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/errors.js?commonjs-exports", + "node_modules/lop/lib/errors.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/lazy-iterators.js?commonjs-exports", + "node_modules/lop/lib/lazy-iterators.js", + "node_modules/lop/lib/rules.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/StringSource.js?commonjs-module", + "node_modules/lop/lib/StringSource.js", + "node_modules/lop/lib/Token.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/bottom-up.js?commonjs-exports", + "node_modules/lop/lib/bottom-up.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/regex-tokeniser.js?commonjs-exports", + "node_modules/lop/lib/regex-tokeniser.js", + "node_modules/lop/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/styles/document-matchers.js?commonjs-exports", + "node_modules/mammoth/lib/styles/document-matchers.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/styles/parser/tokeniser.js?commonjs-exports", + "node_modules/mammoth/lib/styles/parser/tokeniser.js", + "node_modules/mammoth/lib/style-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/options-reader.js?commonjs-exports", + "node_modules/mammoth/lib/options-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/browser/unzip.js?commonjs-exports", + "node_modules/mammoth/browser/unzip.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/underline.js?commonjs-exports", + "node_modules/mammoth/lib/underline.js", + "node_modules/mammoth/lib/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/index.js?commonjs-es-import" + ], + "staticMembership": [], + "dynamicEntry": "_index-DkAE3Ges.js" + }, + { + "file": "assets/pdf-ClZ_1Nv1.js", + "bytes": 495636, + "gzipBytes": 151463, + "imports": [], + "modules": [ + "node_modules/pdfjs-dist/legacy/build/pdf.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/pdfjs-dist/legacy/build/pdf.mjs" + }, + { + "file": "assets/index-BOF6v8rb.js", + "bytes": 410621, + "gzipBytes": 118834, + "imports": [], + "modules": [ + "node_modules/docx/dist/index.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/docx/dist/index.mjs" + }, + { + "file": "assets/FileSaver.min-DZLZy2z8.js", + "bytes": 3037, + "gzipBytes": 1485, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/file-saver/dist/FileSaver.min.js?commonjs-module", + "node_modules/file-saver/dist/FileSaver.min.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/file-saver/dist/FileSaver.min.js?commonjs-es-import" + ], + "staticMembership": [], + "dynamicEntry": "_FileSaver.min-DZLZy2z8.js" + }, + { + "file": "assets/jspdf.es.min-CWsuy3PZ.js", + "bytes": 386191, + "gzipBytes": 126389, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@babel/runtime/helpers/esm/typeof.js", + "node_modules/fflate/esm/browser.js", + "node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js", + "node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js", + "node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js", + "node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js", + "node_modules/@babel/runtime/helpers/esm/nonIterableRest.js", + "node_modules/@babel/runtime/helpers/esm/slicedToArray.js", + "node_modules/iobuffer/lib-esm/text.js", + "node_modules/iobuffer/lib-esm/IOBuffer.js", + "node_modules/pako/dist/pako.esm.mjs", + "node_modules/fast-png/lib-esm/helpers/crc.js", + "node_modules/fast-png/lib-esm/helpers/unfilter.js", + "node_modules/fast-png/lib-esm/helpers/applyUnfilter.js", + "node_modules/fast-png/lib-esm/helpers/decodeInterlaceAdam7.js", + "node_modules/fast-png/lib-esm/helpers/decodeInterlaceNull.js", + "node_modules/fast-png/lib-esm/helpers/signature.js", + "node_modules/fast-png/lib-esm/helpers/text.js", + "node_modules/fast-png/lib-esm/internalTypes.js", + "node_modules/fast-png/lib-esm/PngDecoder.js", + "node_modules/fast-png/lib-esm/types.js", + "node_modules/fast-png/lib-esm/index.js", + "node_modules/jspdf/dist/jspdf.es.min.js" + ], + "staticMembership": [], + "dynamicEntry": "_jspdf.es.min-CWsuy3PZ.js" + }, + { + "file": "assets/jspdf.plugin.autotable-BBLUVd7n.js", + "bytes": 30934, + "gzipBytes": 9870, + "imports": [], + "modules": [ + "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs" + }, + { + "file": "assets/html2canvas.esm-DXEQVQnt.js", + "bytes": 201041, + "gzipBytes": 47431, + "imports": [], + "modules": [ + "node_modules/html2canvas/dist/html2canvas.esm.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/html2canvas/dist/html2canvas.esm.js" + }, + { + "file": "assets/purify.es-4eNOHKSq.js", + "bytes": 28741, + "gzipBytes": 11017, + "imports": [], + "modules": [ + "node_modules/dompurify/dist/purify.es.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/dompurify/dist/purify.es.mjs" + }, + { + "file": "assets/index.es-4Ssukks_.js", + "bytes": 158950, + "gzipBytes": 53058, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/jspdf.es.min-CWsuy3PZ.js" + ], + "modules": [ + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.constructor.js?commonjs-exports", + "node_modules/core-js/internals/global-this.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-get-own-property-descriptor.js?commonjs-exports", + "node_modules/core-js/internals/fails.js", + "node_modules/core-js/internals/descriptors.js", + "node_modules/core-js/internals/function-bind-native.js", + "node_modules/core-js/internals/function-call.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-property-is-enumerable.js?commonjs-exports", + "node_modules/core-js/internals/object-property-is-enumerable.js", + "node_modules/core-js/internals/create-property-descriptor.js", + "node_modules/core-js/internals/function-uncurry-this.js", + "node_modules/core-js/internals/classof-raw.js", + "node_modules/core-js/internals/indexed-object.js", + "node_modules/core-js/internals/is-null-or-undefined.js", + "node_modules/core-js/internals/require-object-coercible.js", + "node_modules/core-js/internals/to-indexed-object.js", + "node_modules/core-js/internals/is-callable.js", + "node_modules/core-js/internals/is-object.js", + "node_modules/core-js/internals/get-built-in.js", + "node_modules/core-js/internals/object-is-prototype-of.js", + "node_modules/core-js/internals/environment-user-agent.js", + "node_modules/core-js/internals/environment-v8-version.js", + "node_modules/core-js/internals/symbol-constructor-detection.js", + "node_modules/core-js/internals/use-symbol-as-uid.js", + "node_modules/core-js/internals/is-symbol.js", + "node_modules/core-js/internals/try-to-string.js", + "node_modules/core-js/internals/a-callable.js", + "node_modules/core-js/internals/get-method.js", + "node_modules/core-js/internals/ordinary-to-primitive.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/shared-store.js?commonjs-module", + "node_modules/core-js/internals/is-pure.js", + "node_modules/core-js/internals/define-global-property.js", + "node_modules/core-js/internals/shared-store.js", + "node_modules/core-js/internals/shared.js", + "node_modules/core-js/internals/to-object.js", + "node_modules/core-js/internals/has-own-property.js", + "node_modules/core-js/internals/uid.js", + "node_modules/core-js/internals/well-known-symbol.js", + "node_modules/core-js/internals/to-primitive.js", + "node_modules/core-js/internals/to-property-key.js", + "node_modules/core-js/internals/document-create-element.js", + "node_modules/core-js/internals/ie8-dom-define.js", + "node_modules/core-js/internals/object-get-own-property-descriptor.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-define-property.js?commonjs-exports", + "node_modules/core-js/internals/v8-prototype-define-bug.js", + "node_modules/core-js/internals/an-object.js", + "node_modules/core-js/internals/object-define-property.js", + "node_modules/core-js/internals/create-non-enumerable-property.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/make-built-in.js?commonjs-module", + "node_modules/core-js/internals/function-name.js", + "node_modules/core-js/internals/inspect-source.js", + "node_modules/core-js/internals/weak-map-basic-detection.js", + "node_modules/core-js/internals/shared-key.js", + "node_modules/core-js/internals/hidden-keys.js", + "node_modules/core-js/internals/internal-state.js", + "node_modules/core-js/internals/make-built-in.js", + "node_modules/core-js/internals/define-built-in.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-get-own-property-names.js?commonjs-exports", + "node_modules/core-js/internals/math-trunc.js", + "node_modules/core-js/internals/to-integer-or-infinity.js", + "node_modules/core-js/internals/to-absolute-index.js", + "node_modules/core-js/internals/to-length.js", + "node_modules/core-js/internals/length-of-array-like.js", + "node_modules/core-js/internals/array-includes.js", + "node_modules/core-js/internals/object-keys-internal.js", + "node_modules/core-js/internals/enum-bug-keys.js", + "node_modules/core-js/internals/object-get-own-property-names.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-get-own-property-symbols.js?commonjs-exports", + "node_modules/core-js/internals/object-get-own-property-symbols.js", + "node_modules/core-js/internals/own-keys.js", + "node_modules/core-js/internals/copy-constructor-properties.js", + "node_modules/core-js/internals/is-forced.js", + "node_modules/core-js/internals/export.js", + "node_modules/core-js/internals/environment.js", + "node_modules/core-js/internals/environment-is-node.js", + "node_modules/core-js/internals/path.js", + "node_modules/core-js/internals/function-uncurry-this-accessor.js", + "node_modules/core-js/internals/is-possible-prototype.js", + "node_modules/core-js/internals/a-possible-prototype.js", + "node_modules/core-js/internals/object-set-prototype-of.js", + "node_modules/core-js/internals/set-to-string-tag.js", + "node_modules/core-js/internals/define-built-in-accessor.js", + "node_modules/core-js/internals/set-species.js", + "node_modules/core-js/internals/an-instance.js", + "node_modules/core-js/internals/to-string-tag-support.js", + "node_modules/core-js/internals/classof.js", + "node_modules/core-js/internals/is-constructor.js", + "node_modules/core-js/internals/a-constructor.js", + "node_modules/core-js/internals/species-constructor.js", + "node_modules/core-js/internals/function-apply.js", + "node_modules/core-js/internals/function-uncurry-this-clause.js", + "node_modules/core-js/internals/function-bind-context.js", + "node_modules/core-js/internals/html.js", + "node_modules/core-js/internals/array-slice.js", + "node_modules/core-js/internals/validate-arguments-length.js", + "node_modules/core-js/internals/environment-is-ios.js", + "node_modules/core-js/internals/task.js", + "node_modules/core-js/internals/safe-get-built-in.js", + "node_modules/core-js/internals/queue.js", + "node_modules/core-js/internals/environment-is-ios-pebble.js", + "node_modules/core-js/internals/environment-is-webos-webkit.js", + "node_modules/core-js/internals/microtask.js", + "node_modules/core-js/internals/host-report-errors.js", + "node_modules/core-js/internals/perform.js", + "node_modules/core-js/internals/promise-native-constructor.js", + "node_modules/core-js/internals/promise-constructor-detection.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/new-promise-capability.js?commonjs-exports", + "node_modules/core-js/internals/new-promise-capability.js", + "node_modules/core-js/modules/es.promise.constructor.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.all.js?commonjs-exports", + "node_modules/core-js/internals/iterators.js", + "node_modules/core-js/internals/is-array-iterator-method.js", + "node_modules/core-js/internals/get-iterator-method-internal.js", + "node_modules/core-js/internals/get-iterator-internal.js", + "node_modules/core-js/internals/iterator-close.js", + "node_modules/core-js/internals/iterate.js", + "node_modules/core-js/internals/check-correctness-of-iteration.js", + "node_modules/core-js/internals/promise-statics-incorrect-iteration.js", + "node_modules/core-js/modules/es.promise.all.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.catch.js?commonjs-exports", + "node_modules/core-js/modules/es.promise.catch.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.race.js?commonjs-exports", + "node_modules/core-js/modules/es.promise.race.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.reject.js?commonjs-exports", + "node_modules/core-js/modules/es.promise.reject.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.resolve.js?commonjs-exports", + "node_modules/core-js/internals/promise-resolve.js", + "node_modules/core-js/modules/es.promise.resolve.js", + "node_modules/core-js/modules/es.promise.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.js?commonjs-es-import", + "node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.match.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.regexp.exec.js?commonjs-exports", + "node_modules/core-js/internals/to-string.js", + "node_modules/core-js/internals/regexp-flags.js", + "node_modules/core-js/internals/regexp-sticky-helpers.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-define-properties.js?commonjs-exports", + "node_modules/core-js/internals/object-keys.js", + "node_modules/core-js/internals/object-define-properties.js", + "node_modules/core-js/internals/object-create.js", + "node_modules/core-js/internals/regexp-unsupported-dot-all.js", + "node_modules/core-js/internals/regexp-unsupported-ncg.js", + "node_modules/core-js/internals/regexp-exec.js", + "node_modules/core-js/modules/es.regexp.exec.js", + "node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js", + "node_modules/core-js/internals/string-multibyte.js", + "node_modules/core-js/internals/advance-string-index.js", + "node_modules/core-js/internals/regexp-flags-detection.js", + "node_modules/core-js/internals/regexp-get-flags.js", + "node_modules/core-js/internals/regexp-exec-abstract.js", + "node_modules/core-js/modules/es.string.match.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.match.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.replace.js?commonjs-exports", + "node_modules/core-js/internals/get-substitution.js", + "node_modules/core-js/modules/es.string.replace.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.replace.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.starts-with.js?commonjs-exports", + "node_modules/core-js/internals/is-regexp.js", + "node_modules/core-js/internals/not-a-regexp.js", + "node_modules/core-js/internals/correct-is-regexp-logic.js", + "node_modules/core-js/modules/es.string.starts-with.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.starts-with.js?commonjs-es-import", + "node_modules/core-js/internals/add-to-unscopables.js", + "node_modules/core-js/internals/correct-prototype-getter.js", + "node_modules/core-js/internals/object-get-prototype-of.js", + "node_modules/core-js/internals/iterators-core.js", + "node_modules/core-js/internals/iterator-create-constructor.js", + "node_modules/core-js/internals/iterator-define.js", + "node_modules/core-js/internals/create-iter-result-object.js", + "node_modules/core-js/modules/es.array.iterator.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.iterator.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/web.dom-collections.iterator.js?commonjs-exports", + "node_modules/core-js/internals/dom-iterables.js", + "node_modules/core-js/internals/dom-token-list-prototype.js", + "node_modules/core-js/modules/web.dom-collections.iterator.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/web.dom-collections.iterator.js?commonjs-es-import", + "node_modules/@babel/runtime/helpers/esm/toPrimitive.js", + "node_modules/@babel/runtime/helpers/esm/toPropertyKey.js", + "node_modules/@babel/runtime/helpers/esm/defineProperty.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.reduce.js?commonjs-exports", + "node_modules/core-js/internals/array-reduce.js", + "node_modules/core-js/internals/array-method-is-strict.js", + "node_modules/core-js/modules/es.array.reduce.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.reduce.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.ends-with.js?commonjs-exports", + "node_modules/core-js/modules/es.string.ends-with.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.ends-with.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.split.js?commonjs-exports", + "node_modules/core-js/modules/es.string.split.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.split.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/raf/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/performance-now/lib/performance-now.js?commonjs-module", + "node_modules/performance-now/lib/performance-now.js", + "node_modules/raf/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/raf/index.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.trim.js?commonjs-exports", + "node_modules/core-js/internals/whitespaces.js", + "node_modules/core-js/internals/string-trim.js", + "node_modules/core-js/internals/string-trim-forced.js", + "node_modules/core-js/modules/es.string.trim.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.trim.js?commonjs-es-import", + "node_modules/rgbcolor/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/rgbcolor/index.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.index-of.js?commonjs-exports", + "node_modules/core-js/modules/es.array.index-of.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.index-of.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.includes.js?commonjs-exports", + "node_modules/core-js/modules/es.string.includes.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.includes.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.reverse.js?commonjs-exports", + "node_modules/core-js/internals/is-array.js", + "node_modules/core-js/modules/es.array.reverse.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.reverse.js?commonjs-es-import", + "node_modules/svg-pathdata/lib/SVGPathData.module.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.regexp.to-string.js?commonjs-exports", + "node_modules/core-js/modules/es.regexp.to-string.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.regexp.to-string.js?commonjs-es-import", + "node_modules/stackblur-canvas/dist/stackblur-es.js", + "node_modules/canvg/lib/index.es.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/canvg/lib/index.es.js" + } + ] + } +} diff --git a/docs/performance/smooth-navigation-baseline/run-2.json b/docs/performance/smooth-navigation-baseline/run-2.json new file mode 100644 index 000000000..578e5f912 --- /dev/null +++ b/docs/performance/smooth-navigation-baseline/run-2.json @@ -0,0 +1,6995 @@ +{ + "metadata": { + "runLabel": "run-2", + "capturedAt": "2026-09-19T22:24:51.496Z", + "sourceCommit": "b2ba178dee148d06d9bf89793f044add69d705b8", + "harnessCommit": "c68c6c3fa68662ddc3dd9419794b620192a17136", + "nodeVersion": "v22.23.2", + "npmVersion": "12.0.2", + "browser": { + "name": "Chromium", + "version": "151.0.7922.34", + "executablePath": "/home/codex/.cache/ms-playwright/chromium-1234/chrome-linux64/chrome", + "playwrightVersion": "1.62.1" + }, + "vite": { + "serverMode": "development", + "productionGraphMode": "production", + "version": "7.3.6", + "port": 42453, + "cacheState": "cold routes disable HTTP cache through CDP and block service workers; clicks use a fresh or warmed browser cache" + }, + "profiles": [ + { + "name": "desktop", + "viewport": { + "width": 1280, + "height": 800 + }, + "deviceScaleFactor": 1, + "isMobile": false, + "hasTouch": false, + "userAgent": null, + "networkProfile": "unthrottled loopback", + "cpuProfile": "Chromium default CPU, no emulation" + }, + { + "name": "pixel-5", + "viewport": { + "width": 393, + "height": 727 + }, + "deviceScaleFactor": 2.75, + "isMobile": true, + "hasTouch": true, + "userAgent": "Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Mobile Safari/537.36", + "networkProfile": "unthrottled loopback", + "cpuProfile": "Chromium default CPU, no emulation" + } + ] + }, + "summary": { + "measurements": 38, + "byKind": { + "cold-refresh": 16, + "first-visit-click": 10, + "warm-click": 10, + "delayed-click": 2 + }, + "delayedFilmstrips": [ + "desktop", + "pixel-5" + ] + }, + "results": [ + { + "path": "/", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 2914.5999999046326, + "firstRealContentFrameMs": 3192.899999856949, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/LandingPage.tsx", + "startTime": 2899.399999856949, + "endTime": 2922.2000000476837, + "duration": 22.800000190734863, + "transferSize": 7643, + "decodedBodySize": 7343 + } + ], + "longTasks": [ + { + "startTime": 2685.7999999523163, + "duration": 185 + }, + { + "startTime": 3096.5, + "duration": 92 + }, + { + "startTime": 3257.399999856949, + "duration": 87 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 133, + "browserRequestCount": 143, + "externalRequestCount": 10, + "transferredBytes": 7455868, + "encodedBytes": 7415968, + "decodedBytes": 7415968, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 2869.2000000476837, + "loadEventEnd": 2921.7999999523163, + "responseEnd": 1966.2000000476837 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "LandingPage" + }, + { + "path": "/login", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 517.2999999523163, + "firstRealContentFrameMs": 595.2999999523163, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/LoginPage.tsx", + "startTime": 501.7000000476837, + "endTime": 528, + "duration": 26.299999952316284, + "transferSize": 63754, + "decodedBodySize": 63454 + } + ], + "longTasks": [ + { + "startTime": 340.7000000476837, + "duration": 129 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 121, + "browserRequestCount": 131, + "externalRequestCount": 10, + "transferredBytes": 6934207, + "encodedBytes": 6897907, + "decodedBytes": 6897907, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 468.10000014305115, + "loadEventEnd": 522, + "responseEnd": 19.200000047683716 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /login", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "LoginPage" + }, + { + "path": "/app", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 658, + "firstRealContentFrameMs": 725.7000000476837, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/HomePage.tsx", + "startTime": 634.9000000953674, + "endTime": 653.9000000953674, + "duration": 19, + "transferSize": 25533, + "decodedBodySize": 25233 + } + ], + "longTasks": [ + { + "startTime": 365.40000009536743, + "duration": 173 + }, + { + "startTime": 541.2999999523163, + "duration": 53 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 119, + "browserRequestCount": 140, + "externalRequestCount": 21, + "transferredBytes": 7142818, + "encodedBytes": 7107118, + "decodedBytes": 7107118, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 536.9000000953674, + "loadEventEnd": 677.2000000476837, + "responseEnd": 21.90000009536743 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "HomePage" + }, + { + "path": "/app/generate", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 593.5999999046326, + "firstRealContentFrameMs": 950.5, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/GeneratePage.tsx", + "startTime": 566.8999998569489, + "endTime": 595, + "duration": 28.100000143051147, + "transferSize": 78506, + "decodedBodySize": 78206 + } + ], + "longTasks": [ + { + "startTime": 314.2999999523163, + "duration": 145 + }, + { + "startTime": 462.09999990463257, + "duration": 57 + }, + { + "startTime": 864.0999999046326, + "duration": 85 + } + ], + "cls": 0.0028984375, + "layoutShifts": [ + { + "startTime": 976.5999999046326, + "value": 0.0028984375 + } + ], + "requestCount": 162, + "browserRequestCount": 184, + "externalRequestCount": 22, + "transferredBytes": 8770111, + "encodedBytes": 8721511, + "decodedBytes": 8721511, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 457.89999985694885, + "loadEventEnd": 614.2999999523163, + "responseEnd": 11.399999856948853 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/generate", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "GeneratePage" + }, + { + "path": "/app/attack", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 576.3999998569489, + "firstRealContentFrameMs": 883.8999998569489, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/AttackPage.tsx", + "startTime": 547.1999998092651, + "endTime": 571.0999999046326, + "duration": 23.90000009536743, + "transferSize": 33746, + "decodedBodySize": 33446 + } + ], + "longTasks": [ + { + "startTime": 313.89999985694885, + "duration": 140 + }, + { + "startTime": 794.5, + "duration": 83 + } + ], + "cls": 0.01097265625, + "layoutShifts": [ + { + "startTime": 883.5999999046326, + "value": 0.01097265625 + } + ], + "requestCount": 163, + "browserRequestCount": 185, + "externalRequestCount": 22, + "transferredBytes": 8366088, + "encodedBytes": 8317188, + "decodedBytes": 8317188, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 451.59999990463257, + "loadEventEnd": 511.69999980926514, + "responseEnd": 14.399999856948853 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/attack", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AttackPage" + }, + { + "path": "/app/flowchart", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 633.4000000953674, + "firstRealContentFrameMs": 846.1000001430511, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/FlowchartPage.tsx", + "startTime": 603.2999999523163, + "endTime": 643.5, + "duration": 40.200000047683716, + "transferSize": 205577, + "decodedBodySize": 205277 + } + ], + "longTasks": [ + { + "startTime": 347.60000014305115, + "duration": 155 + }, + { + "startTime": 779.7000000476837, + "duration": 57 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 129, + "browserRequestCount": 150, + "externalRequestCount": 21, + "transferredBytes": 7916321, + "encodedBytes": 7877621, + "decodedBytes": 7877621, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 501.10000014305115, + "loadEventEnd": 657.2999999523163, + "responseEnd": 13.5 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/flowchart", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "FlowchartPage" + }, + { + "path": "/app/history", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 604.7999999523163, + "firstRealContentFrameMs": 746.0999999046326, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/HistoryPage.tsx", + "startTime": 576.2999999523163, + "endTime": 606.7000000476837, + "duration": 30.40000009536743, + "transferSize": 143448, + "decodedBodySize": 143148 + } + ], + "longTasks": [ + { + "startTime": 326.59999990463257, + "duration": 142 + }, + { + "startTime": 470.89999985694885, + "duration": 60 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 128, + "browserRequestCount": 149, + "externalRequestCount": 21, + "transferredBytes": 7374303, + "encodedBytes": 7335903, + "decodedBytes": 7335903, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 467.2000000476837, + "loadEventEnd": 623.2000000476837, + "responseEnd": 13 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/history", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "HistoryPage" + }, + { + "path": "/app/admin", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 587.5, + "firstRealContentFrameMs": 849.8000001907349, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/AdminPage.tsx", + "startTime": 562.3000001907349, + "endTime": 615.1000001430511, + "duration": 52.799999952316284, + "transferSize": 394470, + "decodedBodySize": 394170 + } + ], + "longTasks": [ + { + "startTime": 327.40000009536743, + "duration": 148 + }, + { + "startTime": 738.2000000476837, + "duration": 70 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 134, + "browserRequestCount": 160, + "externalRequestCount": 26, + "transferredBytes": 8980386, + "encodedBytes": 8940186, + "decodedBytes": 8940186, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 473.40000009536743, + "loadEventEnd": 603.2000000476837, + "responseEnd": 14 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/admin", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AdminPage" + }, + { + "path": "/app", + "clickTime": 1611.7000000476837, + "measurementBoundary": 1611.7000000476837, + "firstSkeletonFrameMs": 55.39999985694885, + "firstRealContentFrameMs": 88.29999995231628, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/HomePage.tsx", + "startTime": 1651.2999999523163, + "endTime": 1666.7000000476837, + "duration": 15.400000095367432, + "transferSize": 25533, + "decodedBodySize": 25233 + } + ], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 2, + "browserRequestCount": 3, + "externalRequestCount": 1, + "transferredBytes": 35756, + "encodedBytes": 35156, + "decodedBytes": 35156, + "sourceWorkExcluded": { + "requestCount": 133, + "longTaskCount": 3, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 469.09999990463257, + "loadEventEnd": 523.5, + "responseEnd": 11.5 + }, + "shellDomIdentitySurvived": null, + "kind": "first-visit-click", + "label": "Landing CTA -> /app", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "HomePage" + }, + { + "path": "/app", + "clickTime": 3029.9000000953674, + "measurementBoundary": 3029.9000000953674, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 100, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 135, + "longTaskCount": 3, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 472.2000000476837, + "loadEventEnd": 526.2000000476837, + "responseEnd": 11 + }, + "shellDomIdentitySurvived": null, + "kind": "warm-click", + "label": "Landing CTA -> /app", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "HomePage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:42453/src/pages/HomePage.tsx", + "startTime": 1524.1000001430511, + "responseEnd": 1530.9000000953674, + "transferSize": 25533, + "encodedBodySize": 25233, + "decodedBodySize": 25233 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/generate", + "clickTime": 779.2000000476837, + "measurementBoundary": 779.2000000476837, + "firstSkeletonFrameMs": 52.39999985694885, + "firstRealContentFrameMs": 339, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/GeneratePage.tsx", + "startTime": 813.2999999523163, + "endTime": 821.0999999046326, + "duration": 7.799999952316284, + "transferSize": 78506, + "decodedBodySize": 78206 + } + ], + "longTasks": [ + { + "startTime": 1010.0999999046326, + "duration": 85 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 44, + "browserRequestCount": 46, + "externalRequestCount": 2, + "transferredBytes": 1652826, + "encodedBytes": 1639626, + "decodedBytes": 1639626, + "sourceWorkExcluded": { + "requestCount": 119, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 466, + "loadEventEnd": 516.4000000953674, + "responseEnd": 15.599999904632568 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> Generate", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "GeneratePage" + }, + { + "path": "/app/generate", + "clickTime": 1383.2999999523163, + "measurementBoundary": 1383.2999999523163, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 92.39999985694885, + "routeChunkRequests": [], + "longTasks": [ + { + "startTime": 1410.2999999523163, + "duration": 58 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 11, + "externalRequestCount": 11, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 163, + "longTaskCount": 2, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 515.7999999523163, + "loadEventEnd": 563.3999998569489, + "responseEnd": 11.099999904632568 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> Generate", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "GeneratePage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:42453/src/pages/GeneratePage.tsx", + "startTime": 802.1999998092651, + "responseEnd": 817.6999998092651, + "transferSize": 78506, + "encodedBodySize": 78206, + "decodedBodySize": 78206 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/attack", + "clickTime": 981.5, + "measurementBoundary": 981.5, + "firstSkeletonFrameMs": 36.90000009536743, + "firstRealContentFrameMs": 148.10000014305115, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/AttackPage.tsx", + "startTime": 999.7000000476837, + "endTime": 1025.5, + "duration": 25.799999952316284, + "transferSize": 33746, + "decodedBodySize": 33446 + } + ], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 8, + "browserRequestCount": 10, + "externalRequestCount": 2, + "transferredBytes": 221821, + "encodedBytes": 219421, + "decodedBytes": 219421, + "sourceWorkExcluded": { + "requestCount": 162, + "longTaskCount": 2, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 447, + "loadEventEnd": 500.40000009536743, + "responseEnd": 12.600000143051147 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Generate -> Attack", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "AttackPage" + }, + { + "path": "/app/attack", + "clickTime": 1511.0999999046326, + "measurementBoundary": 1511.0999999046326, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 63.90000009536743, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 2, + "externalRequestCount": 2, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 170, + "longTaskCount": 4, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 377.2999999523163, + "loadEventEnd": 480.09999990463257, + "responseEnd": 10.900000095367432 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Generate -> Attack", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "AttackPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:42453/src/pages/AttackPage.tsx", + "startTime": 952.0999999046326, + "responseEnd": 958.7000000476837, + "transferSize": 33746, + "encodedBodySize": 33446, + "decodedBodySize": 33446 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/flowchart", + "clickTime": 700.6999998092651, + "measurementBoundary": 700.6999998092651, + "firstSkeletonFrameMs": 32.90000009536743, + "firstRealContentFrameMs": 182.40000009536743, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/FlowchartPage.tsx", + "startTime": 723.5999999046326, + "endTime": 739.5, + "duration": 15.900000095367432, + "transferSize": 205577, + "decodedBodySize": 205277 + } + ], + "longTasks": [ + { + "startTime": 821.5999999046326, + "duration": 51 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 11, + "browserRequestCount": 12, + "externalRequestCount": 1, + "transferredBytes": 799036, + "encodedBytes": 795736, + "decodedBytes": 795736, + "sourceWorkExcluded": { + "requestCount": 119, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 406.89999985694885, + "loadEventEnd": 546, + "responseEnd": 10.899999856948853 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> Flowchart", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "FlowchartPage" + }, + { + "path": "/app/flowchart", + "clickTime": 1267.2000000476837, + "measurementBoundary": 1267.2000000476837, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 68.59999990463257, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 130, + "longTaskCount": 2, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 501.09999990463257, + "loadEventEnd": 609.2000000476837, + "responseEnd": 12.900000095367432 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> Flowchart", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "FlowchartPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:42453/src/pages/FlowchartPage.tsx", + "startTime": 799.0999999046326, + "responseEnd": 806.5999999046326, + "transferSize": 205577, + "encodedBodySize": 205277, + "decodedBodySize": 205277 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/history", + "clickTime": 787.2000000476837, + "measurementBoundary": 787.2000000476837, + "firstSkeletonFrameMs": 42.59999990463257, + "firstRealContentFrameMs": 133, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/HistoryPage.tsx", + "startTime": 815.2999999523163, + "endTime": 822.8999998569489, + "duration": 7.599999904632568, + "transferSize": 143448, + "decodedBodySize": 143148 + } + ], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 10, + "browserRequestCount": 11, + "externalRequestCount": 1, + "transferredBytes": 257018, + "encodedBytes": 254018, + "decodedBytes": 254018, + "sourceWorkExcluded": { + "requestCount": 119, + "longTaskCount": 2, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 471.7000000476837, + "loadEventEnd": 536.8999998569489, + "responseEnd": 13.5 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> History", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "HistoryPage" + }, + { + "path": "/app/history", + "clickTime": 1156.8999998569489, + "measurementBoundary": 1156.8999998569489, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 37.5, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 129, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 445.2999999523163, + "loadEventEnd": 506.69999980926514, + "responseEnd": 13.099999904632568 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> History", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "HistoryPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:42453/src/pages/HistoryPage.tsx", + "startTime": 759.8999998569489, + "responseEnd": 775.5, + "transferSize": 143448, + "encodedBodySize": 143148, + "decodedBodySize": 143148 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 548.5, + "firstRealContentFrameMs": 790.2000000476837, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/LandingPage.tsx", + "startTime": 527.2999999523163, + "endTime": 550.3999998569489, + "duration": 23.09999990463257, + "transferSize": 7643, + "decodedBodySize": 7343 + } + ], + "longTasks": [ + { + "startTime": 325, + "duration": 162 + }, + { + "startTime": 489.89999985694885, + "duration": 55 + }, + { + "startTime": 714.7000000476837, + "duration": 72 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 133, + "browserRequestCount": 143, + "externalRequestCount": 10, + "transferredBytes": 7455868, + "encodedBytes": 7415968, + "decodedBytes": 7415968, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 484.89999985694885, + "loadEventEnd": 558.8999998569489, + "responseEnd": 15.399999856948853 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "LandingPage" + }, + { + "path": "/login", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 525.5999999046326, + "firstRealContentFrameMs": 588.7000000476837, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/LoginPage.tsx", + "startTime": 509.40000009536743, + "endTime": 528.5, + "duration": 19.09999990463257, + "transferSize": 63754, + "decodedBodySize": 63454 + } + ], + "longTasks": [ + { + "startTime": 301.59999990463257, + "duration": 169 + }, + { + "startTime": 473.40000009536743, + "duration": 50 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 121, + "browserRequestCount": 131, + "externalRequestCount": 10, + "transferredBytes": 6934207, + "encodedBytes": 6897907, + "decodedBytes": 6897907, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 467.59999990463257, + "loadEventEnd": 530, + "responseEnd": 9.700000047683716 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /login", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "LoginPage" + }, + { + "path": "/app", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 677.2000000476837, + "firstRealContentFrameMs": 740.0999999046326, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/HomePage.tsx", + "startTime": 655.4000000953674, + "endTime": 669.2000000476837, + "duration": 13.799999952316284, + "transferSize": 25533, + "decodedBodySize": 25233 + } + ], + "longTasks": [ + { + "startTime": 417.7999999523163, + "duration": 157 + } + ], + "cls": 0.06467384003526769, + "layoutShifts": [ + { + "startTime": 751, + "value": 0.06467384003526769 + } + ], + "requestCount": 119, + "browserRequestCount": 140, + "externalRequestCount": 21, + "transferredBytes": 7142818, + "encodedBytes": 7107118, + "decodedBytes": 7107118, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 573.2999999523163, + "loadEventEnd": 689.7000000476837, + "responseEnd": 28.299999952316284 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "HomePage" + }, + { + "path": "/app/generate", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 577, + "firstRealContentFrameMs": 928.5999999046326, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/GeneratePage.tsx", + "startTime": 551, + "endTime": 566.5999999046326, + "duration": 15.599999904632568, + "transferSize": 78506, + "decodedBodySize": 78206 + } + ], + "longTasks": [ + { + "startTime": 309.19999980926514, + "duration": 145 + }, + { + "startTime": 833.7999999523163, + "duration": 94 + } + ], + "cls": 0.11049724802234125, + "layoutShifts": [ + { + "startTime": 957.0999999046326, + "value": 0.11049724802234125 + } + ], + "requestCount": 162, + "browserRequestCount": 184, + "externalRequestCount": 22, + "transferredBytes": 8770111, + "encodedBytes": 8721511, + "decodedBytes": 8721511, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 452, + "loadEventEnd": 594.5999999046326, + "responseEnd": 8.799999952316284 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/generate", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "GeneratePage" + }, + { + "path": "/app/attack", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 586.2999999523163, + "firstRealContentFrameMs": 909.2999999523163, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/AttackPage.tsx", + "startTime": 565.9000000953674, + "endTime": 580.4000000953674, + "duration": 14.5, + "transferSize": 33746, + "decodedBodySize": 33446 + } + ], + "longTasks": [ + { + "startTime": 337.59999990463257, + "duration": 136 + }, + { + "startTime": 801.7999999523163, + "duration": 101 + } + ], + "cls": 0.11141678129298486, + "layoutShifts": [ + { + "startTime": 909, + "value": 0.11141678129298486 + } + ], + "requestCount": 163, + "browserRequestCount": 185, + "externalRequestCount": 22, + "transferredBytes": 8366088, + "encodedBytes": 8317188, + "decodedBytes": 8317188, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 472, + "loadEventEnd": 528.7000000476837, + "responseEnd": 15.400000095367432 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/attack", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AttackPage" + }, + { + "path": "/app/flowchart", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 569.2999999523163, + "firstRealContentFrameMs": 758.9000000953674, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/FlowchartPage.tsx", + "startTime": 550.4000000953674, + "endTime": 567.1000001430511, + "duration": 16.700000047683716, + "transferSize": 205577, + "decodedBodySize": 205277 + } + ], + "longTasks": [ + { + "startTime": 303.5, + "duration": 147 + }, + { + "startTime": 453.60000014305115, + "duration": 54 + }, + { + "startTime": 694.9000000953674, + "duration": 56 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 129, + "browserRequestCount": 150, + "externalRequestCount": 21, + "transferredBytes": 7916321, + "encodedBytes": 7877621, + "decodedBytes": 7877621, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 447.90000009536743, + "loadEventEnd": 515.7999999523163, + "responseEnd": 14.200000047683716 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/flowchart", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "FlowchartPage" + }, + { + "path": "/app/history", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 629.2999999523163, + "firstRealContentFrameMs": 767.6000001430511, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/HistoryPage.tsx", + "startTime": 605.2000000476837, + "endTime": 621.2000000476837, + "duration": 16, + "transferSize": 143448, + "decodedBodySize": 143148 + } + ], + "longTasks": [ + { + "startTime": 327.60000014305115, + "duration": 167 + }, + { + "startTime": 497.40000009536743, + "duration": 60 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 128, + "browserRequestCount": 149, + "externalRequestCount": 21, + "transferredBytes": 7374303, + "encodedBytes": 7335903, + "decodedBytes": 7335903, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 491.7999999523163, + "loadEventEnd": 565.4000000953674, + "responseEnd": 12.600000143051147 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/history", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "HistoryPage" + }, + { + "path": "/app/admin", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": 517.5, + "firstRealContentFrameMs": 723.6999998092651, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/AdminPage.tsx", + "startTime": 496.09999990463257, + "endTime": 520.2999999523163, + "duration": 24.200000047683716, + "transferSize": 394470, + "decodedBodySize": 394170 + } + ], + "longTasks": [ + { + "startTime": 278.5, + "duration": 125 + }, + { + "startTime": 625.5, + "duration": 61 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 134, + "browserRequestCount": 160, + "externalRequestCount": 26, + "transferredBytes": 8980386, + "encodedBytes": 8940186, + "decodedBytes": 8940186, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 402, + "loadEventEnd": 453.2999999523163, + "responseEnd": 12.899999856948853 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/admin", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AdminPage" + }, + { + "path": "/app", + "clickTime": 852.5, + "measurementBoundary": 852.5, + "firstSkeletonFrameMs": 78.5, + "firstRealContentFrameMs": 115.40000009536743, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/HomePage.tsx", + "startTime": 900.7000000476837, + "endTime": 907.4000000953674, + "duration": 6.700000047683716, + "transferSize": 25533, + "decodedBodySize": 25233 + } + ], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 2, + "browserRequestCount": 3, + "externalRequestCount": 1, + "transferredBytes": 35756, + "encodedBytes": 35156, + "decodedBytes": 35156, + "sourceWorkExcluded": { + "requestCount": 133, + "longTaskCount": 3, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 386.7999999523163, + "loadEventEnd": 452.90000009536743, + "responseEnd": 10.5 + }, + "shellDomIdentitySurvived": null, + "kind": "first-visit-click", + "label": "Landing CTA -> /app", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "HomePage" + }, + { + "path": "/app", + "clickTime": 1378.2000000476837, + "measurementBoundary": 1378.2000000476837, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 62.40000009536743, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 10, + "externalRequestCount": 10, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 135, + "longTaskCount": 3, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 462.90000009536743, + "loadEventEnd": 538.8000001907349, + "responseEnd": 11.900000095367432 + }, + "shellDomIdentitySurvived": null, + "kind": "warm-click", + "label": "Landing CTA -> /app", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "HomePage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:42453/src/pages/HomePage.tsx", + "startTime": 1014.2000000476837, + "responseEnd": 1030.4000000953674, + "transferSize": 25533, + "encodedBodySize": 25233, + "decodedBodySize": 25233 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/generate", + "clickTime": 717.4000000953674, + "measurementBoundary": 717.4000000953674, + "firstSkeletonFrameMs": 28.59999990463257, + "firstRealContentFrameMs": 302.2999999523163, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/GeneratePage.tsx", + "startTime": 737.2000000476837, + "endTime": 750.4000000953674, + "duration": 13.200000047683716, + "transferSize": 78506, + "decodedBodySize": 78206 + } + ], + "longTasks": [ + { + "startTime": 920.2999999523163, + "duration": 75 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 44, + "browserRequestCount": 46, + "externalRequestCount": 2, + "transferredBytes": 1652826, + "encodedBytes": 1639626, + "decodedBytes": 1639626, + "sourceWorkExcluded": { + "requestCount": 119, + "longTaskCount": 1, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 448.2999999523163, + "loadEventEnd": 506, + "responseEnd": 11.599999904632568 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> Generate", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "GeneratePage" + }, + { + "path": "/app/generate", + "clickTime": 1342.8999998569489, + "measurementBoundary": 1342.8999998569489, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 94.79999995231628, + "routeChunkRequests": [], + "longTasks": [ + { + "startTime": 1374.1999998092651, + "duration": 58 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 11, + "externalRequestCount": 11, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 163, + "longTaskCount": 2, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 468.39999985694885, + "loadEventEnd": 529.2999999523163, + "responseEnd": 12.599999904632568 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> Generate", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "GeneratePage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:42453/src/pages/GeneratePage.tsx", + "startTime": 752.1999998092651, + "responseEnd": 767.6999998092651, + "transferSize": 78506, + "encodedBodySize": 78206, + "decodedBodySize": 78206 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/attack", + "clickTime": 1927.4000000953674, + "measurementBoundary": 1927.4000000953674, + "firstSkeletonFrameMs": 40.799999952316284, + "firstRealContentFrameMs": 180.90000009536743, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/AttackPage.tsx", + "startTime": 1953.2000000476837, + "endTime": 1973.2000000476837, + "duration": 20, + "transferSize": 33746, + "decodedBodySize": 33446 + } + ], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 8, + "browserRequestCount": 10, + "externalRequestCount": 2, + "transferredBytes": 221821, + "encodedBytes": 219421, + "decodedBytes": 219421, + "sourceWorkExcluded": { + "requestCount": 162, + "longTaskCount": 2, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 447.5, + "loadEventEnd": 572.8000001907349, + "responseEnd": 11.800000190734863 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Generate -> Attack", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "AttackPage" + }, + { + "path": "/app/attack", + "clickTime": 4455.099999904633, + "measurementBoundary": 4455.099999904633, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 76.79999995231628, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 2, + "externalRequestCount": 2, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 170, + "longTaskCount": 3, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 420.7999999523163, + "loadEventEnd": 545.1999998092651, + "responseEnd": 10.299999952316284 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Generate -> Attack", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "AttackPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:42453/src/pages/AttackPage.tsx", + "startTime": 1964.5999999046326, + "responseEnd": 1971.7999999523163, + "transferSize": 33746, + "encodedBodySize": 33446, + "decodedBodySize": 33446 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/flowchart", + "clickTime": 732.4000000953674, + "measurementBoundary": 732.4000000953674, + "firstSkeletonFrameMs": 29.59999990463257, + "firstRealContentFrameMs": 159.29999995231628, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/FlowchartPage.tsx", + "startTime": 752.3000001907349, + "endTime": 768.7000000476837, + "duration": 16.399999856948853, + "transferSize": 205577, + "decodedBodySize": 205277 + } + ], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 11, + "browserRequestCount": 12, + "externalRequestCount": 1, + "transferredBytes": 799036, + "encodedBytes": 795736, + "decodedBytes": 795736, + "sourceWorkExcluded": { + "requestCount": 119, + "longTaskCount": 1, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 457.90000009536743, + "loadEventEnd": 580.4000000953674, + "responseEnd": 15.300000190734863 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> Flowchart", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "FlowchartPage" + }, + { + "path": "/app/flowchart", + "clickTime": 1143.1999998092651, + "measurementBoundary": 1143.1999998092651, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 62.80000019073486, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 130, + "longTaskCount": 1, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 430.5, + "loadEventEnd": 550, + "responseEnd": 15.799999952316284 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> Flowchart", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "FlowchartPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:42453/src/pages/FlowchartPage.tsx", + "startTime": 701.5999999046326, + "responseEnd": 718.8999998569489, + "transferSize": 205577, + "encodedBodySize": 205277, + "decodedBodySize": 205277 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/history", + "clickTime": 717.9000000953674, + "measurementBoundary": 717.9000000953674, + "firstSkeletonFrameMs": 39.700000047683716, + "firstRealContentFrameMs": 146.20000004768372, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/HistoryPage.tsx", + "startTime": 740.5, + "endTime": 758.3000001907349, + "duration": 17.800000190734863, + "transferSize": 143448, + "decodedBodySize": 143148 + } + ], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 10, + "browserRequestCount": 11, + "externalRequestCount": 1, + "transferredBytes": 257018, + "encodedBytes": 254018, + "decodedBytes": 254018, + "sourceWorkExcluded": { + "requestCount": 119, + "longTaskCount": 1, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 432.30000019073486, + "loadEventEnd": 559.8000001907349, + "responseEnd": 10 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> History", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "HistoryPage" + }, + { + "path": "/app/history", + "clickTime": 1080.2000000476837, + "measurementBoundary": 1080.2000000476837, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 41.700000047683716, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 129, + "longTaskCount": 1, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 406.2000000476837, + "loadEventEnd": 467.40000009536743, + "responseEnd": 9.900000095367432 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> History", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "HistoryPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:42453/src/pages/HistoryPage.tsx", + "startTime": 686.7999999523163, + "responseEnd": 704.5999999046326, + "transferSize": 143448, + "encodedBodySize": 143148, + "decodedBodySize": 143148 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + } + ], + "delayed": [ + { + "path": "/app/attack", + "clickTime": 1172.8999998569489, + "measurementBoundary": 1172.8999998569489, + "firstSkeletonFrameMs": 39.40000009536743, + "firstRealContentFrameMs": 902, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/AttackPage.tsx", + "startTime": 1197.5, + "endTime": 1958.3999998569489, + "duration": 760.8999998569489, + "transferSize": 33746, + "decodedBodySize": 33446 + } + ], + "longTasks": [ + { + "startTime": 2012.7999999523163, + "duration": 55 + } + ], + "cls": 0.01097265625, + "layoutShifts": [ + { + "startTime": 2074.5999999046326, + "value": 0.01097265625 + } + ], + "requestCount": 8, + "browserRequestCount": 20, + "externalRequestCount": 12, + "transferredBytes": 221821, + "encodedBytes": 219421, + "decodedBytes": 219421, + "sourceWorkExcluded": { + "requestCount": 162, + "longTaskCount": 2, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 535, + "loadEventEnd": 663.1999998092651, + "responseEnd": 22.399999856948853 + }, + "shellDomIdentitySurvived": true, + "kind": "delayed-click", + "label": "Delayed Generate -> Attack", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AttackPage", + "delayMs": 750, + "delayRequestObserved": true, + "frameStates": [ + { + "route": "/app/generate", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": true, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": true, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": true, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": true, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + } + ], + "video": "docs/performance/smooth-navigation-baseline/desktop-delayed.webm", + "filmstrip": "docs/performance/smooth-navigation-baseline/desktop-delayed-filmstrip.png" + }, + { + "path": "/app/attack", + "clickTime": 2010.5999999046326, + "measurementBoundary": 2010.5999999046326, + "firstSkeletonFrameMs": 92.40000009536743, + "firstRealContentFrameMs": 953.5999999046326, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:42453/src/pages/AttackPage.tsx", + "startTime": 2088.5, + "endTime": 2859.2999999523163, + "duration": 770.7999999523163, + "transferSize": 33746, + "decodedBodySize": 33446 + } + ], + "longTasks": [], + "cls": 0.11141678129298486, + "layoutShifts": [ + { + "startTime": 2963.399999856949, + "value": 0.11141678129298486 + } + ], + "requestCount": 8, + "browserRequestCount": 21, + "externalRequestCount": 13, + "transferredBytes": 221821, + "encodedBytes": 219421, + "decodedBytes": 219421, + "sourceWorkExcluded": { + "requestCount": 162, + "longTaskCount": 2, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 458.89999985694885, + "loadEventEnd": 518.5999999046326, + "responseEnd": 14.699999809265137 + }, + "shellDomIdentitySurvived": true, + "kind": "delayed-click", + "label": "Delayed Generate -> Attack", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AttackPage", + "delayMs": 750, + "delayRequestObserved": true, + "frameStates": [ + { + "route": "/app/generate", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": true, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": true, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": true, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + } + ], + "video": "docs/performance/smooth-navigation-baseline/pixel-5-delayed.webm", + "filmstrip": "docs/performance/smooth-navigation-baseline/pixel-5-delayed-filmstrip.png" + } + ], + "bundleGraph": { + "manifestEntries": [ + { + "key": "_FileSaver.min-DZLZy2z8.js", + "file": "assets/FileSaver.min-DZLZy2z8.js", + "name": "FileSaver.min", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "_ModelRestrictedModal-UK583TYw.js", + "file": "assets/ModelRestrictedModal-UK583TYw.js", + "name": "ModelRestrictedModal", + "imports": [ + "index.html", + "_client-B2Hmm4S3.js", + "_triangle-alert-DAkLJ_Hs.js", + "_zap-YNjUnyuz.js", + "_PricingModal-DeTbMjVf.js" + ] + }, + { + "key": "_ModelSelector-DPUAfvNL.js", + "file": "assets/ModelSelector-DPUAfvNL.js", + "name": "ModelSelector", + "imports": [ + "index.html", + "_badge-DOuwE0tA.js", + "_use-subscription-TWRM-hpK.js" + ] + }, + { + "key": "_PricingModal-DeTbMjVf.js", + "file": "assets/PricingModal-DeTbMjVf.js", + "name": "PricingModal", + "imports": [ + "index.html", + "_input-BRlCt18M.js", + "_badge-DOuwE0tA.js", + "_edge-function-error-dlcwXP30.js", + "_crown-C2TeHzqk.js", + "_zap-YNjUnyuz.js" + ] + }, + { + "key": "_alert-dialog-DDhjApTe.js", + "file": "assets/alert-dialog-DDhjApTe.js", + "name": "alert-dialog", + "imports": [ + "index.html" + ] + }, + { + "key": "_arrow-right-DE4H5pKc.js", + "file": "assets/arrow-right-DE4H5pKc.js", + "name": "arrow-right", + "imports": [ + "index.html" + ] + }, + { + "key": "_badge-DOuwE0tA.js", + "file": "assets/badge-DOuwE0tA.js", + "name": "badge", + "imports": [ + "index.html" + ] + }, + { + "key": "_bookmark-D5QAu8Kr.js", + "file": "assets/bookmark-D5QAu8Kr.js", + "name": "bookmark", + "imports": [ + "index.html" + ] + }, + { + "key": "_brain-BDMiUfF_.js", + "file": "assets/brain-BDMiUfF_.js", + "name": "brain", + "imports": [ + "index.html" + ] + }, + { + "key": "_card-DNuxaVKj.js", + "file": "assets/card-DNuxaVKj.js", + "name": "card", + "imports": [ + "index.html" + ] + }, + { + "key": "_checkbox-CcU5IimS.js", + "file": "assets/checkbox-CcU5IimS.js", + "name": "checkbox", + "imports": [ + "index.html" + ] + }, + { + "key": "_circle-alert-ChwbUVv0.js", + "file": "assets/circle-alert-ChwbUVv0.js", + "name": "circle-alert", + "imports": [ + "index.html" + ] + }, + { + "key": "_circle-help-Dn3L85BO.js", + "file": "assets/circle-help-Dn3L85BO.js", + "name": "circle-help", + "imports": [ + "index.html" + ] + }, + { + "key": "_client-B2Hmm4S3.js", + "file": "assets/client-B2Hmm4S3.js", + "name": "client", + "imports": [ + "index.html", + "_url-D1MGTXu_.js" + ] + }, + { + "key": "_clock-3-BP2woNWy.js", + "file": "assets/clock-3-BP2woNWy.js", + "name": "clock-3", + "imports": [ + "index.html" + ] + }, + { + "key": "_copy-B5L0aXUh.js", + "file": "assets/copy-B5L0aXUh.js", + "name": "copy", + "imports": [ + "index.html" + ] + }, + { + "key": "_credit-card-CFOMlw74.js", + "file": "assets/credit-card-CFOMlw74.js", + "name": "credit-card", + "imports": [ + "index.html" + ] + }, + { + "key": "_crown-C2TeHzqk.js", + "file": "assets/crown-C2TeHzqk.js", + "name": "crown", + "imports": [ + "index.html" + ] + }, + { + "key": "_date-format-CG2nx3lR.js", + "file": "assets/date-format-CG2nx3lR.js", + "name": "date-format" + }, + { + "key": "_download-7v2KEx-L.js", + "file": "assets/download-7v2KEx-L.js", + "name": "download", + "imports": [ + "index.html" + ] + }, + { + "key": "_edge-function-error-dlcwXP30.js", + "file": "assets/edge-function-error-dlcwXP30.js", + "name": "edge-function-error" + }, + { + "key": "_empty-state-BkQZkMeo.js", + "file": "assets/empty-state-BkQZkMeo.js", + "name": "empty-state", + "imports": [ + "index.html" + ] + }, + { + "key": "_error-display-B8noTjms.js", + "file": "assets/error-display-B8noTjms.js", + "name": "error-display", + "imports": [ + "_client-B2Hmm4S3.js" + ] + }, + { + "key": "_external-link-hWs27zxC.js", + "file": "assets/external-link-hWs27zxC.js", + "name": "external-link", + "imports": [ + "index.html" + ] + }, + { + "key": "_file-text-Bg60aQFS.js", + "file": "assets/file-text-Bg60aQFS.js", + "name": "file-text", + "imports": [ + "index.html" + ] + }, + { + "key": "_flame-DZjlhb1N.js", + "file": "assets/flame-DZjlhb1N.js", + "name": "flame", + "imports": [ + "index.html" + ] + }, + { + "key": "_generateCategoricalChart-DZci5nEc.js", + "file": "assets/generateCategoricalChart-DZci5nEc.js", + "name": "generateCategoricalChart", + "imports": [ + "index.html", + "_string-CvptbcKz.js" + ] + }, + { + "key": "_index-DkAE3Ges.js", + "file": "assets/index-DkAE3Ges.js", + "name": "index", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "_index-DmtgVR0T.js", + "file": "assets/index-DmtgVR0T.js", + "name": "index", + "imports": [ + "index.html", + "_string-CvptbcKz.js" + ] + }, + { + "key": "_input-BRlCt18M.js", + "file": "assets/input-BRlCt18M.js", + "name": "input", + "imports": [ + "index.html" + ] + }, + { + "key": "_jspdf.es.min-CWsuy3PZ.js", + "file": "assets/jspdf.es.min-CWsuy3PZ.js", + "name": "jspdf.es.min", + "isDynamicEntry": true, + "imports": [ + "index.html" + ], + "dynamicImports": [ + "node_modules/html2canvas/dist/html2canvas.esm.js", + "node_modules/dompurify/dist/purify.es.mjs", + "node_modules/canvg/lib/index.es.js" + ] + }, + { + "key": "_markdown-CePz3aK8.js", + "file": "assets/markdown-CePz3aK8.js", + "name": "markdown", + "imports": [ + "index.html" + ] + }, + { + "key": "_plus-B_HHoAv5.js", + "file": "assets/plus-B_HHoAv5.js", + "name": "plus", + "imports": [ + "index.html" + ] + }, + { + "key": "_prefill-CPra3pyT.js", + "file": "assets/prefill-CPra3pyT.js", + "name": "prefill", + "imports": [ + "index.html" + ] + }, + { + "key": "_progress-BOMHF48O.js", + "file": "assets/progress-BOMHF48O.js", + "name": "progress", + "imports": [ + "index.html" + ] + }, + { + "key": "_proxy-CyJslaS_.js", + "file": "assets/proxy-CyJslaS_.js", + "name": "proxy", + "imports": [ + "index.html", + "_use-reduced-motion-DIRZraea.js" + ] + }, + { + "key": "_refresh-cw-Dx_rovVU.js", + "file": "assets/refresh-cw-Dx_rovVU.js", + "name": "refresh-cw", + "imports": [ + "index.html" + ] + }, + { + "key": "_rotate-ccw-g7oK_yc2.js", + "file": "assets/rotate-ccw-g7oK_yc2.js", + "name": "rotate-ccw", + "imports": [ + "index.html" + ] + }, + { + "key": "_save-VRo3zf0k.js", + "file": "assets/save-VRo3zf0k.js", + "name": "save", + "imports": [ + "index.html" + ] + }, + { + "key": "_scroll-area-B5p3Y_vr.js", + "file": "assets/scroll-area-B5p3Y_vr.js", + "name": "scroll-area", + "imports": [ + "index.html" + ] + }, + { + "key": "_search-70EybyUQ.js", + "file": "assets/search-70EybyUQ.js", + "name": "search", + "imports": [ + "index.html" + ] + }, + { + "key": "_send-CYByA_eA.js", + "file": "assets/send-CYByA_eA.js", + "name": "send", + "imports": [ + "index.html" + ] + }, + { + "key": "_sheet-BqybMOOx.js", + "file": "assets/sheet-BqybMOOx.js", + "name": "sheet", + "imports": [ + "index.html" + ] + }, + { + "key": "_shield-DsgIRl3K.js", + "file": "assets/shield-DsgIRl3K.js", + "name": "shield", + "imports": [ + "index.html" + ] + }, + { + "key": "_shield-check-1u8_MjqX.js", + "file": "assets/shield-check-1u8_MjqX.js", + "name": "shield-check", + "imports": [ + "index.html" + ] + }, + { + "key": "_streaming-indicator-DNahz1d3.js", + "file": "assets/streaming-indicator-DNahz1d3.js", + "name": "streaming-indicator", + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_refresh-cw-Dx_rovVU.js", + "_file-text-Bg60aQFS.js", + "_external-link-hWs27zxC.js", + "_badge-DOuwE0tA.js" + ] + }, + { + "key": "_string-CvptbcKz.js", + "file": "assets/string-CvptbcKz.js", + "name": "string" + }, + { + "key": "_switch-CNm-rbvw.js", + "file": "assets/switch-CNm-rbvw.js", + "name": "switch", + "imports": [ + "index.html" + ] + }, + { + "key": "_tabs-DSSrXhZO.js", + "file": "assets/tabs-DSSrXhZO.js", + "name": "tabs", + "imports": [ + "index.html" + ] + }, + { + "key": "_target-DmELU7_M.js", + "file": "assets/target-DmELU7_M.js", + "name": "target", + "imports": [ + "index.html" + ] + }, + { + "key": "_textarea-BxuDaNfy.js", + "file": "assets/textarea-BxuDaNfy.js", + "name": "textarea", + "imports": [ + "index.html" + ] + }, + { + "key": "_trash-2-rdeQ5AHC.js", + "file": "assets/trash-2-rdeQ5AHC.js", + "name": "trash-2", + "imports": [ + "index.html" + ] + }, + { + "key": "_triangle-alert-DAkLJ_Hs.js", + "file": "assets/triangle-alert-DAkLJ_Hs.js", + "name": "triangle-alert", + "imports": [ + "index.html" + ] + }, + { + "key": "_url-D1MGTXu_.js", + "file": "assets/url-D1MGTXu_.js", + "name": "url", + "imports": [ + "index.html" + ] + }, + { + "key": "_use-reduced-motion-DIRZraea.js", + "file": "assets/use-reduced-motion-DIRZraea.js", + "name": "use-reduced-motion", + "imports": [ + "index.html" + ] + }, + { + "key": "_use-speech-to-text-DDdPsIfh.js", + "file": "assets/use-speech-to-text-DDdPsIfh.js", + "name": "use-speech-to-text", + "imports": [ + "index.html" + ] + }, + { + "key": "_use-subscription-TWRM-hpK.js", + "file": "assets/use-subscription-TWRM-hpK.js", + "name": "use-subscription", + "imports": [ + "index.html" + ] + }, + { + "key": "_users-DWoVwdaK.js", + "file": "assets/users-DWoVwdaK.js", + "name": "users", + "imports": [ + "index.html" + ] + }, + { + "key": "_zap-YNjUnyuz.js", + "file": "assets/zap-YNjUnyuz.js", + "name": "zap", + "imports": [ + "index.html" + ] + }, + { + "key": "index.html", + "file": "assets/index-tRveWWC9.js", + "name": "index", + "src": "index.html", + "isEntry": true, + "isDynamicEntry": true, + "dynamicImports": [ + "node_modules/@capacitor/browser/dist/esm/web.js", + "src/pages/LandingPage.tsx", + "src/pages/TermsPage.tsx", + "src/pages/PrivacyPage.tsx", + "src/pages/HomePage.tsx", + "src/pages/GeneratePage.tsx", + "src/pages/AttackPage.tsx", + "src/pages/BrainstormPage.tsx", + "src/pages/FactoidsPage.tsx", + "src/pages/AskPage.tsx", + "src/pages/CrossfirePage.tsx", + "src/pages/SettingsPage.tsx", + "src/pages/HistoryPage.tsx", + "src/pages/LibraryPage.tsx", + "src/pages/TimerPage.tsx", + "src/pages/SparringPage.tsx", + "src/pages/AdminPage.tsx", + "src/pages/SharedPage.tsx", + "src/pages/FlowchartPage.tsx", + "src/pages/LoginPage.tsx", + "src/pages/SourcesPage.tsx", + "src/pages/NotFound.tsx", + "node_modules/@vercel/analytics/dist/react/index.mjs", + "node_modules/@vercel/speed-insights/dist/react/index.mjs", + "node_modules/@capacitor/app/dist/esm/web.js", + "node_modules/@capacitor/haptics/dist/esm/web.js" + ], + "css": [ + "assets/index-DWCAClxw.css" + ] + }, + { + "key": "node_modules/@capacitor/app/dist/esm/web.js", + "file": "assets/web-BHBSb3xY.js", + "name": "web", + "src": "node_modules/@capacitor/app/dist/esm/web.js", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/@capacitor/browser/dist/esm/web.js", + "file": "assets/web-CpI6q_hi.js", + "name": "web", + "src": "node_modules/@capacitor/browser/dist/esm/web.js", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/@capacitor/haptics/dist/esm/web.js", + "file": "assets/web-SENkJeDj.js", + "name": "web", + "src": "node_modules/@capacitor/haptics/dist/esm/web.js", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/@vercel/analytics/dist/react/index.mjs", + "file": "assets/index-KVFzqUoF.js", + "name": "index", + "src": "node_modules/@vercel/analytics/dist/react/index.mjs", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/@vercel/speed-insights/dist/react/index.mjs", + "file": "assets/index-D8Vu6iKp.js", + "name": "index", + "src": "node_modules/@vercel/speed-insights/dist/react/index.mjs", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/canvg/lib/index.es.js", + "file": "assets/index.es-4Ssukks_.js", + "name": "index.es", + "src": "node_modules/canvg/lib/index.es.js", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_jspdf.es.min-CWsuy3PZ.js" + ] + }, + { + "key": "node_modules/docx/dist/index.mjs", + "file": "assets/index-BOF6v8rb.js", + "name": "index", + "src": "node_modules/docx/dist/index.mjs", + "isDynamicEntry": true + }, + { + "key": "node_modules/dompurify/dist/purify.es.mjs", + "file": "assets/purify.es-4eNOHKSq.js", + "name": "purify.es", + "src": "node_modules/dompurify/dist/purify.es.mjs", + "isDynamicEntry": true + }, + { + "key": "node_modules/html2canvas/dist/html2canvas.esm.js", + "file": "assets/html2canvas.esm-DXEQVQnt.js", + "name": "html2canvas.esm", + "src": "node_modules/html2canvas/dist/html2canvas.esm.js", + "isDynamicEntry": true + }, + { + "key": "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs", + "file": "assets/jspdf.plugin.autotable-BBLUVd7n.js", + "name": "jspdf.plugin.autotable", + "src": "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs", + "isDynamicEntry": true + }, + { + "key": "node_modules/pdfjs-dist/legacy/build/pdf.mjs", + "file": "assets/pdf-ClZ_1Nv1.js", + "name": "pdf", + "src": "node_modules/pdfjs-dist/legacy/build/pdf.mjs", + "isDynamicEntry": true + }, + { + "key": "node_modules/pdfjs-dist/legacy/build/pdf.worker.mjs", + "file": "assets/pdf.worker-DTrjDNvb.mjs", + "src": "node_modules/pdfjs-dist/legacy/build/pdf.worker.mjs" + }, + { + "key": "src/lib/export-utils.ts", + "file": "assets/export-utils-rzho5miz.js", + "name": "export-utils", + "src": "src/lib/export-utils.ts", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_date-format-CG2nx3lR.js" + ], + "dynamicImports": [ + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-DZLZy2z8.js", + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-DZLZy2z8.js", + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-DZLZy2z8.js", + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-DZLZy2z8.js", + "index.html", + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-DZLZy2z8.js" + ] + }, + { + "key": "src/lib/pdf-export-utils.ts", + "file": "assets/pdf-export-utils-e2iA0MLn.js", + "name": "pdf-export-utils", + "src": "src/lib/pdf-export-utils.ts", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_date-format-CG2nx3lR.js" + ], + "dynamicImports": [ + "_jspdf.es.min-CWsuy3PZ.js", + "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs" + ] + }, + { + "key": "src/pages/AdminPage.tsx", + "file": "assets/AdminPage-D-E666bh.js", + "name": "AdminPage", + "src": "src/pages/AdminPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_input-BRlCt18M.js", + "_badge-DOuwE0tA.js", + "_tabs-DSSrXhZO.js", + "_scroll-area-B5p3Y_vr.js", + "_date-format-CG2nx3lR.js", + "_checkbox-CcU5IimS.js", + "_textarea-BxuDaNfy.js", + "_alert-dialog-DDhjApTe.js", + "_search-70EybyUQ.js", + "_trash-2-rdeQ5AHC.js", + "_shield-DsgIRl3K.js", + "_circle-alert-ChwbUVv0.js", + "_users-DWoVwdaK.js", + "_credit-card-CFOMlw74.js", + "_generateCategoricalChart-DZci5nEc.js", + "_copy-B5L0aXUh.js", + "_rotate-ccw-g7oK_yc2.js", + "_string-CvptbcKz.js" + ] + }, + { + "key": "src/pages/AskPage.tsx", + "file": "assets/AskPage-Dbwv_nvF.js", + "name": "AskPage", + "src": "src/pages/AskPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_input-BRlCt18M.js", + "_markdown-CePz3aK8.js", + "_card-DNuxaVKj.js", + "_switch-CNm-rbvw.js", + "_scroll-area-B5p3Y_vr.js", + "_use-speech-to-text-DDdPsIfh.js", + "_date-format-CG2nx3lR.js", + "_ModelSelector-DPUAfvNL.js", + "_sheet-BqybMOOx.js", + "_use-reduced-motion-DIRZraea.js", + "_save-VRo3zf0k.js", + "_rotate-ccw-g7oK_yc2.js", + "_circle-help-Dn3L85BO.js", + "_search-70EybyUQ.js", + "_send-CYByA_eA.js", + "_bookmark-D5QAu8Kr.js", + "_client-B2Hmm4S3.js", + "_ModelRestrictedModal-UK583TYw.js", + "_error-display-B8noTjms.js", + "_PricingModal-DeTbMjVf.js", + "_badge-DOuwE0tA.js", + "_use-subscription-TWRM-hpK.js", + "_url-D1MGTXu_.js", + "_triangle-alert-DAkLJ_Hs.js", + "_zap-YNjUnyuz.js", + "_edge-function-error-dlcwXP30.js", + "_crown-C2TeHzqk.js" + ] + }, + { + "key": "src/pages/AttackPage.tsx", + "file": "assets/AttackPage-P8XAOh8x.js", + "name": "AttackPage", + "src": "src/pages/AttackPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_streaming-indicator-DNahz1d3.js", + "_textarea-BxuDaNfy.js", + "_switch-CNm-rbvw.js", + "_card-DNuxaVKj.js", + "_client-B2Hmm4S3.js", + "_ModelSelector-DPUAfvNL.js", + "_prefill-CPra3pyT.js", + "_search-70EybyUQ.js", + "_badge-DOuwE0tA.js", + "_progress-BOMHF48O.js", + "_markdown-CePz3aK8.js", + "_ModelRestrictedModal-UK583TYw.js", + "_flame-DZjlhb1N.js", + "_circle-alert-ChwbUVv0.js", + "_refresh-cw-Dx_rovVU.js", + "_triangle-alert-DAkLJ_Hs.js", + "_error-display-B8noTjms.js", + "_PricingModal-DeTbMjVf.js", + "_file-text-Bg60aQFS.js", + "_external-link-hWs27zxC.js", + "_url-D1MGTXu_.js", + "_use-subscription-TWRM-hpK.js", + "_zap-YNjUnyuz.js", + "_input-BRlCt18M.js", + "_edge-function-error-dlcwXP30.js", + "_crown-C2TeHzqk.js" + ], + "dynamicImports": [ + "src/lib/pdf-export-utils.ts", + "src/lib/export-utils.ts", + "src/lib/export-utils.ts" + ] + }, + { + "key": "src/pages/BrainstormPage.tsx", + "file": "assets/BrainstormPage-Chepxmgy.js", + "name": "BrainstormPage", + "src": "src/pages/BrainstormPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_streaming-indicator-DNahz1d3.js", + "_input-BRlCt18M.js", + "_textarea-BxuDaNfy.js", + "_card-DNuxaVKj.js", + "_ModelSelector-DPUAfvNL.js", + "_brain-BDMiUfF_.js", + "_badge-DOuwE0tA.js", + "_ModelRestrictedModal-UK583TYw.js", + "_empty-state-BkQZkMeo.js", + "_triangle-alert-DAkLJ_Hs.js", + "_arrow-right-DE4H5pKc.js", + "_client-B2Hmm4S3.js", + "_error-display-B8noTjms.js", + "_PricingModal-DeTbMjVf.js", + "_refresh-cw-Dx_rovVU.js", + "_file-text-Bg60aQFS.js", + "_external-link-hWs27zxC.js", + "_use-subscription-TWRM-hpK.js", + "_zap-YNjUnyuz.js", + "_url-D1MGTXu_.js", + "_edge-function-error-dlcwXP30.js", + "_crown-C2TeHzqk.js" + ], + "dynamicImports": [ + "src/lib/export-utils.ts", + "src/lib/export-utils.ts", + "src/lib/pdf-export-utils.ts" + ] + }, + { + "key": "src/pages/CrossfirePage.tsx", + "file": "assets/CrossfirePage-B296oUFm.js", + "name": "CrossfirePage", + "src": "src/pages/CrossfirePage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_badge-DOuwE0tA.js", + "_card-DNuxaVKj.js", + "_checkbox-CcU5IimS.js", + "_textarea-BxuDaNfy.js", + "_client-B2Hmm4S3.js", + "_error-display-B8noTjms.js", + "_use-reduced-motion-DIRZraea.js", + "_flame-DZjlhb1N.js", + "_circle-alert-ChwbUVv0.js", + "_refresh-cw-Dx_rovVU.js", + "_clock-3-BP2woNWy.js", + "_send-CYByA_eA.js", + "_rotate-ccw-g7oK_yc2.js", + "_shield-check-1u8_MjqX.js", + "_proxy-CyJslaS_.js", + "_url-D1MGTXu_.js" + ] + }, + { + "key": "src/pages/FactoidsPage.tsx", + "file": "assets/FactoidsPage-DXmrPY6J.js", + "name": "FactoidsPage", + "src": "src/pages/FactoidsPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_streaming-indicator-DNahz1d3.js", + "_input-BRlCt18M.js", + "_card-DNuxaVKj.js", + "_client-B2Hmm4S3.js", + "_ModelSelector-DPUAfvNL.js", + "_search-70EybyUQ.js", + "_badge-DOuwE0tA.js", + "_progress-BOMHF48O.js", + "_ModelRestrictedModal-UK583TYw.js", + "_triangle-alert-DAkLJ_Hs.js", + "_external-link-hWs27zxC.js", + "_bookmark-D5QAu8Kr.js", + "_error-display-B8noTjms.js", + "_PricingModal-DeTbMjVf.js", + "_refresh-cw-Dx_rovVU.js", + "_file-text-Bg60aQFS.js", + "_url-D1MGTXu_.js", + "_use-subscription-TWRM-hpK.js", + "_zap-YNjUnyuz.js", + "_edge-function-error-dlcwXP30.js", + "_crown-C2TeHzqk.js" + ], + "dynamicImports": [ + "src/lib/export-utils.ts", + "src/lib/export-utils.ts", + "src/lib/pdf-export-utils.ts" + ] + }, + { + "key": "src/pages/FlowchartPage.tsx", + "file": "assets/FlowchartPage-BJaDG0uJ.js", + "name": "FlowchartPage", + "src": "src/pages/FlowchartPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_badge-DOuwE0tA.js", + "_input-BRlCt18M.js", + "_textarea-BxuDaNfy.js", + "_alert-dialog-DDhjApTe.js", + "_index-DmtgVR0T.js", + "_trash-2-rdeQ5AHC.js", + "_save-VRo3zf0k.js", + "_plus-B_HHoAv5.js", + "_download-7v2KEx-L.js", + "_target-DmELU7_M.js", + "_shield-DsgIRl3K.js", + "_triangle-alert-DAkLJ_Hs.js", + "_string-CvptbcKz.js" + ], + "css": [ + "assets/FlowchartPage-Fd0xVSp_.css" + ] + }, + { + "key": "src/pages/GeneratePage.tsx", + "file": "assets/GeneratePage-BVMnUHTy.js", + "name": "GeneratePage", + "src": "src/pages/GeneratePage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_streaming-indicator-DNahz1d3.js", + "_input-BRlCt18M.js", + "_card-DNuxaVKj.js", + "_client-B2Hmm4S3.js", + "_use-speech-to-text-DDdPsIfh.js", + "_ModelSelector-DPUAfvNL.js", + "_prefill-CPra3pyT.js", + "_badge-DOuwE0tA.js", + "_markdown-CePz3aK8.js", + "_ModelRestrictedModal-UK583TYw.js", + "_date-format-CG2nx3lR.js", + "_flame-DZjlhb1N.js", + "_save-VRo3zf0k.js", + "_refresh-cw-Dx_rovVU.js", + "_target-DmELU7_M.js", + "_shield-DsgIRl3K.js", + "_triangle-alert-DAkLJ_Hs.js", + "_error-display-B8noTjms.js", + "_PricingModal-DeTbMjVf.js", + "_use-reduced-motion-DIRZraea.js", + "_index-DmtgVR0T.js", + "_file-text-Bg60aQFS.js", + "_external-link-hWs27zxC.js", + "_url-D1MGTXu_.js", + "_use-subscription-TWRM-hpK.js", + "_zap-YNjUnyuz.js", + "_edge-function-error-dlcwXP30.js", + "_crown-C2TeHzqk.js", + "_string-CvptbcKz.js" + ], + "dynamicImports": [ + "src/lib/export-utils.ts", + "src/lib/pdf-export-utils.ts", + "src/lib/export-utils.ts" + ] + }, + { + "key": "src/pages/HistoryPage.tsx", + "file": "assets/HistoryPage-Dq0oiiwR.js", + "name": "HistoryPage", + "src": "src/pages/HistoryPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_tabs-DSSrXhZO.js", + "_badge-DOuwE0tA.js", + "_scroll-area-B5p3Y_vr.js", + "_date-format-CG2nx3lR.js", + "_alert-dialog-DDhjApTe.js", + "_empty-state-BkQZkMeo.js", + "_file-text-Bg60aQFS.js", + "_zap-YNjUnyuz.js", + "_brain-BDMiUfF_.js", + "_trash-2-rdeQ5AHC.js" + ] + }, + { + "key": "src/pages/HomePage.tsx", + "file": "assets/HomePage-CejS6iLs.js", + "name": "HomePage", + "src": "src/pages/HomePage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_arrow-right-DE4H5pKc.js" + ] + }, + { + "key": "src/pages/LandingPage.tsx", + "file": "assets/LandingPage-C861HgyL.js", + "name": "LandingPage", + "src": "src/pages/LandingPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_use-reduced-motion-DIRZraea.js", + "_proxy-CyJslaS_.js", + "_arrow-right-DE4H5pKc.js", + "_crown-C2TeHzqk.js", + "_zap-YNjUnyuz.js", + "_brain-BDMiUfF_.js", + "_search-70EybyUQ.js", + "_users-DWoVwdaK.js" + ] + }, + { + "key": "src/pages/LibraryPage.tsx", + "file": "assets/LibraryPage-da1Lz-zX.js", + "name": "LibraryPage", + "src": "src/pages/LibraryPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_input-BRlCt18M.js", + "_textarea-BxuDaNfy.js", + "_badge-DOuwE0tA.js", + "_switch-CNm-rbvw.js", + "_date-format-CG2nx3lR.js", + "_url-D1MGTXu_.js", + "_edge-function-error-dlcwXP30.js", + "_alert-dialog-DDhjApTe.js", + "_sheet-BqybMOOx.js", + "_plus-B_HHoAv5.js", + "_trash-2-rdeQ5AHC.js", + "_search-70EybyUQ.js", + "_shield-check-1u8_MjqX.js", + "_file-text-Bg60aQFS.js", + "_copy-B5L0aXUh.js", + "_save-VRo3zf0k.js", + "_external-link-hWs27zxC.js" + ], + "dynamicImports": [ + "_index-DkAE3Ges.js", + "node_modules/pdfjs-dist/legacy/build/pdf.mjs" + ], + "assets": [ + "assets/pdf.worker-DTrjDNvb.mjs" + ] + }, + { + "key": "src/pages/LoginPage.tsx", + "file": "assets/LoginPage-NBbG4nMQ.js", + "name": "LoginPage", + "src": "src/pages/LoginPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_input-BRlCt18M.js", + "_tabs-DSSrXhZO.js" + ] + }, + { + "key": "src/pages/NotFound.tsx", + "file": "assets/NotFound-Dvo2F00T.js", + "name": "NotFound", + "src": "src/pages/NotFound.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "src/pages/PrivacyPage.tsx", + "file": "assets/PrivacyPage-D8yXViIB.js", + "name": "PrivacyPage", + "src": "src/pages/PrivacyPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "src/pages/SettingsPage.tsx", + "file": "assets/SettingsPage-CCq-OUYp.js", + "name": "SettingsPage", + "src": "src/pages/SettingsPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_badge-DOuwE0tA.js", + "_use-subscription-TWRM-hpK.js", + "_PricingModal-DeTbMjVf.js", + "_date-format-CG2nx3lR.js", + "_input-BRlCt18M.js", + "_crown-C2TeHzqk.js", + "_credit-card-CFOMlw74.js", + "_zap-YNjUnyuz.js", + "_shield-DsgIRl3K.js", + "_trash-2-rdeQ5AHC.js", + "_edge-function-error-dlcwXP30.js" + ] + }, + { + "key": "src/pages/SharedPage.tsx", + "file": "assets/SharedPage-Btv4hRK8.js", + "name": "SharedPage", + "src": "src/pages/SharedPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_badge-DOuwE0tA.js", + "_date-format-CG2nx3lR.js", + "_download-7v2KEx-L.js", + "_external-link-hWs27zxC.js" + ] + }, + { + "key": "src/pages/SourcesPage.tsx", + "file": "assets/SourcesPage-DSqTyQn_.js", + "name": "SourcesPage", + "src": "src/pages/SourcesPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "src/pages/SparringPage.tsx", + "file": "assets/SparringPage-nXprKVny.js", + "name": "SparringPage", + "src": "src/pages/SparringPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_client-B2Hmm4S3.js", + "_card-DNuxaVKj.js", + "_textarea-BxuDaNfy.js", + "_badge-DOuwE0tA.js", + "_ModelSelector-DPUAfvNL.js", + "_arrow-right-DE4H5pKc.js", + "_progress-BOMHF48O.js", + "_markdown-CePz3aK8.js", + "_clock-3-BP2woNWy.js", + "_rotate-ccw-g7oK_yc2.js", + "_circle-alert-ChwbUVv0.js", + "_send-CYByA_eA.js", + "_download-7v2KEx-L.js", + "_generateCategoricalChart-DZci5nEc.js", + "_target-DmELU7_M.js", + "_file-text-Bg60aQFS.js", + "_circle-help-Dn3L85BO.js", + "_url-D1MGTXu_.js", + "_use-subscription-TWRM-hpK.js", + "_string-CvptbcKz.js" + ], + "dynamicImports": [ + "src/lib/export-utils.ts", + "src/lib/pdf-export-utils.ts" + ] + }, + { + "key": "src/pages/TermsPage.tsx", + "file": "assets/TermsPage-Bv6alyEn.js", + "name": "TermsPage", + "src": "src/pages/TermsPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "src/pages/TimerPage.tsx", + "file": "assets/TimerPage-gsuEL79V.js", + "name": "TimerPage", + "src": "src/pages/TimerPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-DNuxaVKj.js", + "_badge-DOuwE0tA.js", + "_progress-BOMHF48O.js", + "_rotate-ccw-g7oK_yc2.js" + ] + } + ], + "routeStaticGraphs": [ + { + "route": "index.html", + "file": "assets/index-tRveWWC9.js", + "files": [ + "assets/index-tRveWWC9.js" + ] + }, + { + "route": "/", + "file": "assets/LandingPage-C861HgyL.js", + "files": [ + "assets/LandingPage-C861HgyL.js", + "assets/users-DWoVwdaK.js", + "assets/index-tRveWWC9.js", + "assets/search-70EybyUQ.js", + "assets/brain-BDMiUfF_.js", + "assets/zap-YNjUnyuz.js", + "assets/crown-C2TeHzqk.js", + "assets/arrow-right-DE4H5pKc.js", + "assets/proxy-CyJslaS_.js", + "assets/use-reduced-motion-DIRZraea.js" + ] + }, + { + "route": "/login", + "file": "assets/LoginPage-NBbG4nMQ.js", + "files": [ + "assets/LoginPage-NBbG4nMQ.js", + "assets/tabs-DSSrXhZO.js", + "assets/index-tRveWWC9.js", + "assets/input-BRlCt18M.js", + "assets/card-DNuxaVKj.js" + ] + }, + { + "route": "/app", + "file": "assets/HomePage-CejS6iLs.js", + "files": [ + "assets/HomePage-CejS6iLs.js", + "assets/arrow-right-DE4H5pKc.js", + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js" + ] + }, + { + "route": "/app/generate", + "file": "assets/GeneratePage-BVMnUHTy.js", + "files": [ + "assets/GeneratePage-BVMnUHTy.js", + "assets/string-CvptbcKz.js", + "assets/crown-C2TeHzqk.js", + "assets/index-tRveWWC9.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/zap-YNjUnyuz.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/url-D1MGTXu_.js", + "assets/external-link-hWs27zxC.js", + "assets/file-text-Bg60aQFS.js", + "assets/index-DmtgVR0T.js", + "assets/use-reduced-motion-DIRZraea.js", + "assets/PricingModal-DeTbMjVf.js", + "assets/badge-DOuwE0tA.js", + "assets/input-BRlCt18M.js", + "assets/error-display-B8noTjms.js", + "assets/client-B2Hmm4S3.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/shield-DsgIRl3K.js", + "assets/target-DmELU7_M.js", + "assets/refresh-cw-Dx_rovVU.js", + "assets/save-VRo3zf0k.js", + "assets/flame-DZjlhb1N.js", + "assets/date-format-CG2nx3lR.js", + "assets/ModelRestrictedModal-UK583TYw.js", + "assets/markdown-CePz3aK8.js", + "assets/prefill-CPra3pyT.js", + "assets/ModelSelector-DPUAfvNL.js", + "assets/use-speech-to-text-DDdPsIfh.js", + "assets/card-DNuxaVKj.js", + "assets/streaming-indicator-DNahz1d3.js" + ] + }, + { + "route": "/app/attack", + "file": "assets/AttackPage-P8XAOh8x.js", + "files": [ + "assets/AttackPage-P8XAOh8x.js", + "assets/crown-C2TeHzqk.js", + "assets/index-tRveWWC9.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/input-BRlCt18M.js", + "assets/zap-YNjUnyuz.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/url-D1MGTXu_.js", + "assets/external-link-hWs27zxC.js", + "assets/file-text-Bg60aQFS.js", + "assets/PricingModal-DeTbMjVf.js", + "assets/badge-DOuwE0tA.js", + "assets/error-display-B8noTjms.js", + "assets/client-B2Hmm4S3.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/refresh-cw-Dx_rovVU.js", + "assets/circle-alert-ChwbUVv0.js", + "assets/flame-DZjlhb1N.js", + "assets/ModelRestrictedModal-UK583TYw.js", + "assets/markdown-CePz3aK8.js", + "assets/progress-BOMHF48O.js", + "assets/search-70EybyUQ.js", + "assets/prefill-CPra3pyT.js", + "assets/ModelSelector-DPUAfvNL.js", + "assets/card-DNuxaVKj.js", + "assets/switch-CNm-rbvw.js", + "assets/textarea-BxuDaNfy.js", + "assets/streaming-indicator-DNahz1d3.js" + ] + }, + { + "route": "/app/flowchart", + "file": "assets/FlowchartPage-BJaDG0uJ.js", + "files": [ + "assets/FlowchartPage-BJaDG0uJ.js", + "assets/string-CvptbcKz.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/index-tRveWWC9.js", + "assets/shield-DsgIRl3K.js", + "assets/target-DmELU7_M.js", + "assets/download-7v2KEx-L.js", + "assets/plus-B_HHoAv5.js", + "assets/save-VRo3zf0k.js", + "assets/trash-2-rdeQ5AHC.js", + "assets/index-DmtgVR0T.js", + "assets/alert-dialog-DDhjApTe.js", + "assets/textarea-BxuDaNfy.js", + "assets/input-BRlCt18M.js", + "assets/badge-DOuwE0tA.js", + "assets/card-DNuxaVKj.js" + ] + }, + { + "route": "/app/history", + "file": "assets/HistoryPage-Dq0oiiwR.js", + "files": [ + "assets/HistoryPage-Dq0oiiwR.js", + "assets/trash-2-rdeQ5AHC.js", + "assets/index-tRveWWC9.js", + "assets/brain-BDMiUfF_.js", + "assets/zap-YNjUnyuz.js", + "assets/file-text-Bg60aQFS.js", + "assets/empty-state-BkQZkMeo.js", + "assets/alert-dialog-DDhjApTe.js", + "assets/date-format-CG2nx3lR.js", + "assets/scroll-area-B5p3Y_vr.js", + "assets/badge-DOuwE0tA.js", + "assets/tabs-DSSrXhZO.js", + "assets/card-DNuxaVKj.js" + ] + }, + { + "route": "/app/admin", + "file": "assets/AdminPage-D-E666bh.js", + "files": [ + "assets/AdminPage-D-E666bh.js", + "assets/string-CvptbcKz.js", + "assets/rotate-ccw-g7oK_yc2.js", + "assets/index-tRveWWC9.js", + "assets/copy-B5L0aXUh.js", + "assets/generateCategoricalChart-DZci5nEc.js", + "assets/credit-card-CFOMlw74.js", + "assets/users-DWoVwdaK.js", + "assets/circle-alert-ChwbUVv0.js", + "assets/shield-DsgIRl3K.js", + "assets/trash-2-rdeQ5AHC.js", + "assets/search-70EybyUQ.js", + "assets/alert-dialog-DDhjApTe.js", + "assets/textarea-BxuDaNfy.js", + "assets/checkbox-CcU5IimS.js", + "assets/date-format-CG2nx3lR.js", + "assets/scroll-area-B5p3Y_vr.js", + "assets/tabs-DSSrXhZO.js", + "assets/badge-DOuwE0tA.js", + "assets/input-BRlCt18M.js", + "assets/card-DNuxaVKj.js" + ] + } + ], + "chunks": [ + { + "file": "assets/index-tRveWWC9.js", + "bytes": 1138188, + "gzipBytes": 351547, + "imports": [], + "modules": [ + "\u0000vite/modulepreload-polyfill.js", + "src/index.css", + "src/jam-loader.ts", + "\u0000commonjsHelpers.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/jsx-runtime.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/cjs/react-jsx-runtime.production.min.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/cjs/react.production.min.js?commonjs-exports", + "node_modules/react/cjs/react.production.min.js", + "node_modules/react/index.js", + "node_modules/react/cjs/react-jsx-runtime.production.min.js", + "node_modules/react/jsx-runtime.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/jsx-runtime.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/client.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/cjs/react-dom.production.min.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scheduler/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scheduler/cjs/scheduler.production.min.js?commonjs-exports", + "node_modules/scheduler/cjs/scheduler.production.min.js", + "node_modules/scheduler/index.js", + "node_modules/react-dom/cjs/react-dom.production.min.js", + "node_modules/react-dom/index.js", + "node_modules/react-dom/client.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/client.js?commonjs-es-import", + "\u0000vite/preload-helper.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/index.js?commonjs-es-import", + "src/hooks/use-toast.ts", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/index.js?commonjs-es-import", + "node_modules/@radix-ui/primitive/dist/index.mjs", + "node_modules/@radix-ui/react-compose-refs/dist/index.mjs", + "node_modules/@radix-ui/react-context/dist/index.mjs", + "node_modules/@radix-ui/react-slot/dist/index.mjs", + "node_modules/@radix-ui/react-collection/dist/index.mjs", + "node_modules/@radix-ui/react-primitive/dist/index.mjs", + "node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs", + "node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs", + "node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs", + "node_modules/@radix-ui/react-portal/dist/index.mjs", + "node_modules/@radix-ui/react-presence/dist/index.mjs", + "node_modules/@radix-ui/react-use-effect-event/dist/index.mjs", + "node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs", + "node_modules/@radix-ui/react-visually-hidden/dist/index.mjs", + "node_modules/@radix-ui/react-toast/dist/index.mjs", + "node_modules/clsx/dist/clsx.mjs", + "node_modules/class-variance-authority/dist/index.mjs", + "node_modules/lucide-react/dist/esm/shared/src/utils.js", + "node_modules/lucide-react/dist/esm/defaultAttributes.js", + "node_modules/lucide-react/dist/esm/Icon.js", + "node_modules/lucide-react/dist/esm/createLucideIcon.js", + "node_modules/lucide-react/dist/esm/icons/book-open.js", + "node_modules/lucide-react/dist/esm/icons/check.js", + "node_modules/lucide-react/dist/esm/icons/chevron-down.js", + "node_modules/lucide-react/dist/esm/icons/chevron-up.js", + "node_modules/lucide-react/dist/esm/icons/clock.js", + "node_modules/lucide-react/dist/esm/icons/crosshair.js", + "node_modules/lucide-react/dist/esm/icons/database.js", + "node_modules/lucide-react/dist/esm/icons/dumbbell.js", + "node_modules/lucide-react/dist/esm/icons/git-branch.js", + "node_modules/lucide-react/dist/esm/icons/globe.js", + "node_modules/lucide-react/dist/esm/icons/house.js", + "node_modules/lucide-react/dist/esm/icons/laptop.js", + "node_modules/lucide-react/dist/esm/icons/lightbulb.js", + "node_modules/lucide-react/dist/esm/icons/loader-circle.js", + "node_modules/lucide-react/dist/esm/icons/megaphone.js", + "node_modules/lucide-react/dist/esm/icons/menu.js", + "node_modules/lucide-react/dist/esm/icons/message-circle.js", + "node_modules/lucide-react/dist/esm/icons/moon.js", + "node_modules/lucide-react/dist/esm/icons/settings.js", + "node_modules/lucide-react/dist/esm/icons/sparkles.js", + "node_modules/lucide-react/dist/esm/icons/sun.js", + "node_modules/lucide-react/dist/esm/icons/swords.js", + "node_modules/lucide-react/dist/esm/icons/timer.js", + "node_modules/lucide-react/dist/esm/icons/wifi-off.js", + "node_modules/lucide-react/dist/esm/icons/x.js", + "node_modules/tailwind-merge/dist/bundle-mjs.mjs", + "src/lib/utils.ts", + "src/components/ui/toast.tsx", + "src/components/ui/toaster.tsx", + "node_modules/next-themes/dist/index.mjs", + "node_modules/sonner/dist/index.mjs", + "src/components/ui/sonner.tsx", + "node_modules/@radix-ui/react-id/dist/index.mjs", + "node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs", + "node_modules/@floating-ui/core/dist/floating-ui.core.mjs", + "node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs", + "node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs", + "node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs", + "node_modules/@radix-ui/react-use-size/dist/index.mjs", + "node_modules/@radix-ui/react-popper/dist/index.mjs", + "node_modules/@radix-ui/react-tooltip/dist/index.mjs", + "src/components/ui/tooltip.tsx", + "node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js", + "node_modules/@tanstack/query-core/build/modern/timeoutManager.js", + "node_modules/@tanstack/query-core/build/modern/utils.js", + "node_modules/@tanstack/query-core/build/modern/environmentManager.js", + "node_modules/@tanstack/query-core/build/modern/subscribable.js", + "node_modules/@tanstack/query-core/build/modern/focusManager.js", + "node_modules/@tanstack/query-core/build/modern/notifyManager.js", + "node_modules/@tanstack/query-core/build/modern/onlineManager.js", + "node_modules/@tanstack/query-core/build/modern/retryer.js", + "node_modules/@tanstack/query-core/build/modern/removable.js", + "node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js", + "node_modules/@tanstack/query-core/build/modern/query.js", + "node_modules/@tanstack/query-core/build/modern/mutation.js", + "node_modules/@tanstack/query-core/build/modern/mutationCache.js", + "node_modules/@tanstack/query-core/build/modern/queryCache.js", + "node_modules/@tanstack/query-core/build/modern/queryClient.js", + "node_modules/react-router/dist/development/chunk-BV7QT456.mjs", + "node_modules/framer-motion/dist/es/utils/use-constant.mjs", + "node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs", + "node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs", + "node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs", + "node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs", + "node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs", + "node_modules/framer-motion/dist/es/components/MotionConfig/index.mjs", + "node_modules/react-i18next/dist/es/utils.js", + "node_modules/react-i18next/dist/es/unescape.js", + "node_modules/react-i18next/dist/es/defaults.js", + "node_modules/react-i18next/dist/es/i18nInstance.js", + "node_modules/react-i18next/dist/es/initReactI18next.js", + "node_modules/react-i18next/dist/es/context.js", + "node_modules/react-i18next/dist/es/useTranslation.js", + "src/components/NavLink.tsx", + "src/components/ui/button.tsx", + "node_modules/zustand/esm/vanilla.mjs", + "node_modules/zustand/esm/react.mjs", + "node_modules/zustand/esm/middleware.mjs", + "node_modules/i18next/dist/esm/i18next.js", + "src/locales/en.json", + "src/locales/es.json", + "src/locales/hu.json", + "src/i18n.ts", + "supabase/functions/_shared/model-catalog.ts", + "src/lib/ai/providers/types.ts", + "node_modules/@supabase/supabase-js/dist/tracingRegistry.mjs", + "node_modules/tslib/tslib.es6.mjs", + "node_modules/@supabase/functions-js/dist/module/helper.js", + "node_modules/@supabase/functions-js/dist/module/types.js", + "node_modules/@supabase/functions-js/dist/module/FunctionsClient.js", + "node_modules/@supabase/postgrest-js/dist/index.mjs", + "node_modules/@supabase/realtime-js/dist/module/lib/websocket-factory.js", + "node_modules/@supabase/realtime-js/dist/module/lib/version.js", + "node_modules/@supabase/realtime-js/dist/module/lib/constants.js", + "node_modules/@supabase/realtime-js/dist/module/lib/serializer.js", + "node_modules/@supabase/realtime-js/dist/module/lib/transformers.js", + "node_modules/@supabase/phoenix/priv/static/phoenix.mjs", + "node_modules/@supabase/realtime-js/dist/module/phoenix/presenceAdapter.js", + "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js", + "node_modules/@supabase/realtime-js/dist/module/lib/normalizeChannelError.js", + "node_modules/@supabase/realtime-js/dist/module/phoenix/channelAdapter.js", + "node_modules/@supabase/realtime-js/dist/module/RealtimePostgresFilterBuilder.js", + "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js", + "node_modules/@supabase/realtime-js/dist/module/phoenix/socketAdapter.js", + "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js", + "node_modules/iceberg-js/dist/index.mjs", + "node_modules/@supabase/storage-js/dist/index.mjs", + "node_modules/@supabase/auth-js/dist/module/lib/version.js", + "node_modules/@supabase/auth-js/dist/module/lib/constants.js", + "node_modules/@supabase/auth-js/dist/module/lib/errors.js", + "node_modules/@supabase/auth-js/dist/module/lib/base64url.js", + "node_modules/@supabase/auth-js/dist/module/lib/helpers.js", + "node_modules/@supabase/auth-js/dist/module/lib/fetch.js", + "node_modules/@supabase/auth-js/dist/module/lib/types.js", + "node_modules/@supabase/auth-js/dist/module/GoTrueAdminApi.js", + "node_modules/@supabase/auth-js/dist/module/lib/local-storage.js", + "node_modules/@supabase/auth-js/dist/module/lib/locks.js", + "node_modules/@supabase/auth-js/dist/module/lib/polyfills.js", + "node_modules/@supabase/auth-js/dist/module/lib/web3/ethereum.js", + "node_modules/@supabase/auth-js/dist/module/lib/webauthn.errors.js", + "node_modules/@supabase/auth-js/dist/module/lib/webauthn.js", + "node_modules/@supabase/auth-js/dist/module/GoTrueClient.js", + "node_modules/@supabase/auth-js/dist/module/AuthClient.js", + "node_modules/@supabase/supabase-js/dist/index.mjs", + "src/lib/supabase/env.ts", + "src/lib/supabase/client.ts", + "src/lib/stores/settings-store.ts", + "src/components/ThemeToggle.tsx", + "node_modules/@radix-ui/number/dist/index.mjs", + "node_modules/@radix-ui/react-direction/dist/index.mjs", + "node_modules/@radix-ui/react-focus-guards/dist/index.mjs", + "node_modules/@radix-ui/react-focus-scope/dist/index.mjs", + "node_modules/@radix-ui/react-use-previous/dist/index.mjs", + "node_modules/aria-hidden/dist/es2015/index.js", + "node_modules/react-remove-scroll-bar/dist/es2015/constants.js", + "node_modules/use-callback-ref/dist/es2015/assignRef.js", + "node_modules/use-callback-ref/dist/es2015/useRef.js", + "node_modules/use-callback-ref/dist/es2015/useMergeRef.js", + "node_modules/use-sidecar/dist/es2015/medium.js", + "node_modules/use-sidecar/dist/es2015/exports.js", + "node_modules/react-remove-scroll/dist/es2015/medium.js", + "node_modules/react-remove-scroll/dist/es2015/UI.js", + "node_modules/get-nonce/dist/es2015/index.js", + "node_modules/react-style-singleton/dist/es2015/singleton.js", + "node_modules/react-style-singleton/dist/es2015/hook.js", + "node_modules/react-style-singleton/dist/es2015/component.js", + "node_modules/react-remove-scroll-bar/dist/es2015/utils.js", + "node_modules/react-remove-scroll-bar/dist/es2015/component.js", + "node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js", + "node_modules/react-remove-scroll/dist/es2015/handleScroll.js", + "node_modules/react-remove-scroll/dist/es2015/SideEffect.js", + "node_modules/react-remove-scroll/dist/es2015/sidecar.js", + "node_modules/react-remove-scroll/dist/es2015/Combination.js", + "node_modules/@radix-ui/react-select/dist/index.mjs", + "src/components/ui/select.tsx", + "node_modules/@radix-ui/react-dialog/dist/index.mjs", + "src/components/ui/dialog.tsx", + "node_modules/@radix-ui/react-label/dist/index.mjs", + "src/components/ui/label.tsx", + "src/components/LanguageSwitcher.tsx", + "src/components/layout/AnnouncementBanner.tsx", + "node_modules/zod/v4/core/util.js", + "node_modules/zod/v4/core/core.js", + "node_modules/zod/v4/core/errors.js", + "node_modules/zod/v4/core/parse.js", + "node_modules/zod/v4/core/regexes.js", + "node_modules/zod/v4/core/checks.js", + "node_modules/zod/v4/core/doc.js", + "node_modules/zod/v4/core/versions.js", + "node_modules/zod/v4/core/schemas.js", + "node_modules/zod/v4/core/memoizer.js", + "node_modules/zod/v4/locales/en.js", + "node_modules/zod/v4/core/registries.js", + "node_modules/zod/v4/core/api.js", + "node_modules/zod/v4/core/to-json-schema.js", + "node_modules/zod/v4/core/json-schema-processors.js", + "node_modules/zod/v4/classic/errors.js", + "node_modules/zod/v4/classic/parse.js", + "node_modules/zod/v4/classic/schemas.js", + "node_modules/zod/v4/classic/iso.js", + "src/lib/announcements.ts", + "src/components/layout/AppLayout.tsx", + "src/lib/stores/session-store.ts", + "src/lib/ai/schemas/sparring.ts", + "src/lib/sparring/formats.ts", + "src/lib/observability.ts", + "src/lib/stores/sparring-store.ts", + "node_modules/@capacitor/core/dist/index.js", + "node_modules/@capacitor/browser/dist/esm/index.js", + "src/lib/native.ts", + "node_modules/@jam.dev/sdk/dist/jamsdk.js", + "src/lib/jam-metadata.ts", + "src/lib/crossfire/schemas.ts", + "src/lib/crossfire/storage.ts", + "src/lib/supabase/AuthProvider.tsx", + "src/components/auth/RequireAuth.tsx", + "node_modules/@gilbarbara/deep-equal/dist/index.mjs", + "node_modules/is-lite/dist/index.mjs", + "node_modules/tree-changes/dist/index.mjs", + "node_modules/scroll/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scroll/index.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scrollparent/scrollparent.js?commonjs-module", + "node_modules/scrollparent/scrollparent.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scrollparent/scrollparent.js?commonjs-es-import", + "node_modules/react-innertext/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-innertext/index.js?commonjs-es-import", + "node_modules/deepmerge/dist/cjs.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/deepmerge/dist/cjs.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/prop-types/index.js?commonjs-module", + "node_modules/prop-types/lib/ReactPropTypesSecret.js", + "node_modules/prop-types/factoryWithThrowingShims.js", + "node_modules/prop-types/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/prop-types/index.js?commonjs-es-import", + "node_modules/popper.js/dist/esm/popper.js", + "node_modules/react-floater/node_modules/is-lite/esm/index.js", + "node_modules/react-floater/node_modules/@gilbarbara/deep-equal/esm/helpers.js", + "node_modules/react-floater/node_modules/@gilbarbara/deep-equal/esm/index.js", + "node_modules/react-floater/node_modules/tree-changes/esm/helpers.js", + "node_modules/react-floater/node_modules/tree-changes/esm/index.js", + "node_modules/react-floater/es/index.js", + "node_modules/react-joyride/dist/index.mjs", + "src/hooks/use-onboarding.ts", + "src/components/features/onboarding/OnboardingTour.tsx", + "src/components/ThemeProvider.tsx", + "src/hooks/use-session-storage-sync.ts", + "src/components/OfflineIndicator.tsx", + "src/App.tsx", + "src/components/WebTelemetry.tsx", + "node_modules/@capacitor/app/dist/esm/index.js", + "src/native-app-url-listener.ts", + "node_modules/@capacitor/haptics/dist/esm/definitions.js", + "node_modules/@capacitor/haptics/dist/esm/index.js", + "node_modules/@capacitor/keyboard/dist/esm/definitions.js", + "node_modules/@capacitor/keyboard/dist/esm/index.js", + "node_modules/@capacitor/status-bar/dist/esm/definitions.js", + "node_modules/@capacitor/status-bar/dist/esm/index.js", + "src/native-runtime.ts", + "src/register-service-worker.ts", + "src/main.tsx", + "src/bootstrap.ts", + "index.html?html-proxy&inline-css&index=1.css", + "index.html" + ], + "staticMembership": [ + "index.html", + "/", + "/login", + "/app", + "/app/generate", + "/app/attack", + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "index.html" + }, + { + "file": "assets/LandingPage-C861HgyL.js", + "bytes": 45725, + "gzipBytes": 11133, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/use-reduced-motion-DIRZraea.js", + "assets/proxy-CyJslaS_.js", + "assets/arrow-right-DE4H5pKc.js", + "assets/crown-C2TeHzqk.js", + "assets/zap-YNjUnyuz.js", + "assets/brain-BDMiUfF_.js", + "assets/search-70EybyUQ.js", + "assets/users-DWoVwdaK.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-check.js", + "node_modules/lucide-react/dist/esm/icons/file-search.js", + "node_modules/lucide-react/dist/esm/icons/gavel.js", + "node_modules/lucide-react/dist/esm/icons/graduation-cap.js", + "node_modules/lucide-react/dist/esm/icons/history.js", + "node_modules/lucide-react/dist/esm/icons/network.js", + "node_modules/lucide-react/dist/esm/icons/scan-search.js", + "node_modules/lucide-react/dist/esm/icons/trophy.js", + "node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs", + "src/components/landing/Navbar.tsx", + "src/components/landing/Hero.tsx", + "src/components/landing/SocialProof.tsx", + "src/components/landing/WhatsNew.tsx", + "src/components/landing/Features.tsx", + "src/components/landing/Pricing.tsx", + "src/components/landing/DeepDive.tsx", + "src/components/landing/UseCases.tsx", + "src/components/landing/HowItWorks.tsx", + "node_modules/@radix-ui/react-collapsible/dist/index.mjs", + "node_modules/@radix-ui/react-accordion/dist/index.mjs", + "src/components/ui/accordion.tsx", + "src/components/landing/FAQ.tsx", + "src/components/landing/FinalCTA.tsx", + "src/components/landing/Footer.tsx", + "src/pages/LandingPage.tsx" + ], + "staticMembership": [ + "/" + ], + "dynamicEntry": "src/pages/LandingPage.tsx" + }, + { + "file": "assets/TermsPage-Bv6alyEn.js", + "bytes": 772, + "gzipBytes": 418, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/pages/TermsPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/TermsPage.tsx" + }, + { + "file": "assets/PrivacyPage-D8yXViIB.js", + "bytes": 782, + "gzipBytes": 420, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/pages/PrivacyPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/PrivacyPage.tsx" + }, + { + "file": "assets/HomePage-CejS6iLs.js", + "bytes": 3353, + "gzipBytes": 1254, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/arrow-right-DE4H5pKc.js" + ], + "modules": [ + "src/pages/HomePage.tsx" + ], + "staticMembership": [ + "/app" + ], + "dynamicEntry": "src/pages/HomePage.tsx" + }, + { + "file": "assets/GeneratePage-BVMnUHTy.js", + "bytes": 28552, + "gzipBytes": 8162, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/streaming-indicator-DNahz1d3.js", + "assets/input-BRlCt18M.js", + "assets/card-DNuxaVKj.js", + "assets/client-B2Hmm4S3.js", + "assets/use-speech-to-text-DDdPsIfh.js", + "assets/ModelSelector-DPUAfvNL.js", + "assets/prefill-CPra3pyT.js", + "assets/badge-DOuwE0tA.js", + "assets/markdown-CePz3aK8.js", + "assets/ModelRestrictedModal-UK583TYw.js", + "assets/date-format-CG2nx3lR.js", + "assets/flame-DZjlhb1N.js", + "assets/save-VRo3zf0k.js", + "assets/refresh-cw-Dx_rovVU.js", + "assets/target-DmELU7_M.js", + "assets/shield-DsgIRl3K.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/error-display-B8noTjms.js", + "assets/PricingModal-DeTbMjVf.js", + "assets/use-reduced-motion-DIRZraea.js", + "assets/index-DmtgVR0T.js", + "assets/file-text-Bg60aQFS.js", + "assets/external-link-hWs27zxC.js", + "assets/url-D1MGTXu_.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/zap-YNjUnyuz.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-C2TeHzqk.js", + "assets/string-CvptbcKz.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/clipboard.js", + "node_modules/lucide-react/dist/esm/icons/wand-sparkles.js", + "src/components/features/generate/GenerateForm.tsx", + "src/components/features/generate/GenerateResults.tsx", + "src/pages/GeneratePage.tsx" + ], + "staticMembership": [ + "/app/generate" + ], + "dynamicEntry": "src/pages/GeneratePage.tsx" + }, + { + "file": "assets/AttackPage-P8XAOh8x.js", + "bytes": 19037, + "gzipBytes": 5369, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/streaming-indicator-DNahz1d3.js", + "assets/textarea-BxuDaNfy.js", + "assets/switch-CNm-rbvw.js", + "assets/card-DNuxaVKj.js", + "assets/client-B2Hmm4S3.js", + "assets/ModelSelector-DPUAfvNL.js", + "assets/prefill-CPra3pyT.js", + "assets/search-70EybyUQ.js", + "assets/badge-DOuwE0tA.js", + "assets/progress-BOMHF48O.js", + "assets/markdown-CePz3aK8.js", + "assets/ModelRestrictedModal-UK583TYw.js", + "assets/flame-DZjlhb1N.js", + "assets/circle-alert-ChwbUVv0.js", + "assets/refresh-cw-Dx_rovVU.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/error-display-B8noTjms.js", + "assets/PricingModal-DeTbMjVf.js", + "assets/file-text-Bg60aQFS.js", + "assets/external-link-hWs27zxC.js", + "assets/url-D1MGTXu_.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/zap-YNjUnyuz.js", + "assets/input-BRlCt18M.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-C2TeHzqk.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/info.js", + "node_modules/lucide-react/dist/esm/icons/scale.js", + "src/components/features/attack/AttackForm.tsx", + "src/components/features/attack/AttackResults.tsx", + "src/pages/AttackPage.tsx" + ], + "staticMembership": [ + "/app/attack" + ], + "dynamicEntry": "src/pages/AttackPage.tsx" + }, + { + "file": "assets/prefill-CPra3pyT.js", + "bytes": 1983, + "gzipBytes": 958, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/sliders-horizontal.js", + "node_modules/@radix-ui/react-separator/dist/index.mjs", + "src/components/ui/separator.tsx", + "src/lib/crossfire/prefill.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_prefill-CPra3pyT.js" + }, + { + "file": "assets/BrainstormPage-Chepxmgy.js", + "bytes": 15096, + "gzipBytes": 4726, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/streaming-indicator-DNahz1d3.js", + "assets/input-BRlCt18M.js", + "assets/textarea-BxuDaNfy.js", + "assets/card-DNuxaVKj.js", + "assets/ModelSelector-DPUAfvNL.js", + "assets/brain-BDMiUfF_.js", + "assets/badge-DOuwE0tA.js", + "assets/ModelRestrictedModal-UK583TYw.js", + "assets/empty-state-BkQZkMeo.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/arrow-right-DE4H5pKc.js", + "assets/client-B2Hmm4S3.js", + "assets/error-display-B8noTjms.js", + "assets/PricingModal-DeTbMjVf.js", + "assets/refresh-cw-Dx_rovVU.js", + "assets/file-text-Bg60aQFS.js", + "assets/external-link-hWs27zxC.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/zap-YNjUnyuz.js", + "assets/url-D1MGTXu_.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-C2TeHzqk.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/trending-up.js", + "src/lib/ai/schemas/brainstorm.ts", + "src/components/features/brainstorm/BrainstormForm.tsx", + "src/components/features/brainstorm/BrainstormResults.tsx", + "src/pages/BrainstormPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/BrainstormPage.tsx" + }, + { + "file": "assets/FactoidsPage-DXmrPY6J.js", + "bytes": 27488, + "gzipBytes": 9066, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/streaming-indicator-DNahz1d3.js", + "assets/input-BRlCt18M.js", + "assets/card-DNuxaVKj.js", + "assets/client-B2Hmm4S3.js", + "assets/ModelSelector-DPUAfvNL.js", + "assets/search-70EybyUQ.js", + "assets/badge-DOuwE0tA.js", + "assets/progress-BOMHF48O.js", + "assets/ModelRestrictedModal-UK583TYw.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/external-link-hWs27zxC.js", + "assets/bookmark-D5QAu8Kr.js", + "assets/error-display-B8noTjms.js", + "assets/PricingModal-DeTbMjVf.js", + "assets/refresh-cw-Dx_rovVU.js", + "assets/file-text-Bg60aQFS.js", + "assets/url-D1MGTXu_.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/zap-YNjUnyuz.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-C2TeHzqk.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-check-big.js", + "node_modules/@radix-ui/react-slider/dist/index.mjs", + "src/components/ui/slider.tsx", + "src/components/features/factoids/FactoidsForm.tsx", + "src/components/features/factoids/FactoidsResults.tsx", + "src/pages/FactoidsPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/FactoidsPage.tsx" + }, + { + "file": "assets/streaming-indicator-DNahz1d3.js", + "bytes": 40948, + "gzipBytes": 14986, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/refresh-cw-Dx_rovVU.js", + "assets/file-text-Bg60aQFS.js", + "assets/external-link-hWs27zxC.js", + "assets/badge-DOuwE0tA.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/file-down.js", + "node_modules/lucide-react/dist/esm/icons/undo-2.js", + "node_modules/react-hook-form/dist/index.esm.mjs", + "node_modules/@hookform/resolvers/dist/resolvers.mjs", + "node_modules/@hookform/resolvers/zod/dist/zod.mjs", + "src/components/ui/loading-spinner.tsx", + "src/components/ui/section-card.tsx", + "src/components/icons/GoogleDocsIcon.tsx", + "src/components/features/AutoSavedSourcesUndo.tsx", + "src/components/features/ExportToolbar.tsx", + "src/components/features/export/GoogleDriveAuthModal.tsx", + "src/components/features/shared/SourceQualityList.tsx", + "src/components/ui/streaming-indicator.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_streaming-indicator-DNahz1d3.js" + }, + { + "file": "assets/AskPage-Dbwv_nvF.js", + "bytes": 30936, + "gzipBytes": 9846, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/input-BRlCt18M.js", + "assets/markdown-CePz3aK8.js", + "assets/card-DNuxaVKj.js", + "assets/switch-CNm-rbvw.js", + "assets/scroll-area-B5p3Y_vr.js", + "assets/use-speech-to-text-DDdPsIfh.js", + "assets/date-format-CG2nx3lR.js", + "assets/ModelSelector-DPUAfvNL.js", + "assets/sheet-BqybMOOx.js", + "assets/use-reduced-motion-DIRZraea.js", + "assets/save-VRo3zf0k.js", + "assets/rotate-ccw-g7oK_yc2.js", + "assets/circle-help-Dn3L85BO.js", + "assets/search-70EybyUQ.js", + "assets/send-CYByA_eA.js", + "assets/bookmark-D5QAu8Kr.js", + "assets/client-B2Hmm4S3.js", + "assets/ModelRestrictedModal-UK583TYw.js", + "assets/error-display-B8noTjms.js", + "assets/PricingModal-DeTbMjVf.js", + "assets/badge-DOuwE0tA.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/url-D1MGTXu_.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/zap-YNjUnyuz.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-C2TeHzqk.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-plus.js", + "node_modules/lucide-react/dist/esm/icons/list.js", + "node_modules/lucide-react/dist/esm/icons/map.js", + "node_modules/lucide-react/dist/esm/icons/panel-left-open.js", + "node_modules/lucide-react/dist/esm/icons/paperclip.js", + "node_modules/lucide-react/dist/esm/icons/quote.js", + "src/lib/validation/file.ts", + "src/components/features/ask/AskChat.tsx", + "src/lib/ai/streaming.ts", + "src/pages/AskPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/AskPage.tsx" + }, + { + "file": "assets/use-speech-to-text-DDdPsIfh.js", + "bytes": 1930, + "gzipBytes": 950, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/mic-off.js", + "node_modules/lucide-react/dist/esm/icons/mic.js", + "src/hooks/use-speech-to-text.ts" + ], + "staticMembership": [ + "/app/generate" + ], + "dynamicEntry": "_use-speech-to-text-DDdPsIfh.js" + }, + { + "file": "assets/bookmark-D5QAu8Kr.js", + "bytes": 160, + "gzipBytes": 160, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/bookmark.js" + ], + "staticMembership": [], + "dynamicEntry": "_bookmark-D5QAu8Kr.js" + }, + { + "file": "assets/ModelRestrictedModal-UK583TYw.js", + "bytes": 3979, + "gzipBytes": 1457, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/client-B2Hmm4S3.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/zap-YNjUnyuz.js", + "assets/PricingModal-DeTbMjVf.js" + ], + "modules": [ + "src/components/ui/animated-section.tsx", + "src/hooks/use-subscription-error.ts", + "src/components/features/subscription/LimitReachedModal.tsx", + "src/components/features/subscription/ModelRestrictedModal.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_ModelRestrictedModal-UK583TYw.js" + }, + { + "file": "assets/CrossfirePage-B296oUFm.js", + "bytes": 26184, + "gzipBytes": 6862, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/badge-DOuwE0tA.js", + "assets/card-DNuxaVKj.js", + "assets/checkbox-CcU5IimS.js", + "assets/textarea-BxuDaNfy.js", + "assets/client-B2Hmm4S3.js", + "assets/error-display-B8noTjms.js", + "assets/use-reduced-motion-DIRZraea.js", + "assets/flame-DZjlhb1N.js", + "assets/circle-alert-ChwbUVv0.js", + "assets/refresh-cw-Dx_rovVU.js", + "assets/clock-3-BP2woNWy.js", + "assets/send-CYByA_eA.js", + "assets/rotate-ccw-g7oK_yc2.js", + "assets/shield-check-1u8_MjqX.js", + "assets/proxy-CyJslaS_.js", + "assets/url-D1MGTXu_.js" + ], + "modules": [ + "src/components/ui/alert.tsx", + "src/lib/crossfire/reducer.ts", + "src/pages/CrossfirePage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/CrossfirePage.tsx" + }, + { + "file": "assets/proxy-CyJslaS_.js", + "bytes": 121276, + "gzipBytes": 39635, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/use-reduced-motion-DIRZraea.js" + ], + "modules": [ + "node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs", + "node_modules/framer-motion/dist/es/utils/is-browser.mjs", + "node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs", + "node_modules/framer-motion/dist/es/context/PresenceContext.mjs", + "node_modules/motion-utils/dist/es/array.mjs", + "node_modules/motion-utils/dist/es/clamp.mjs", + "node_modules/motion-utils/dist/es/errors.mjs", + "node_modules/motion-utils/dist/es/global-config.mjs", + "node_modules/motion-utils/dist/es/is-numerical-string.mjs", + "node_modules/motion-utils/dist/es/is-object.mjs", + "node_modules/motion-utils/dist/es/is-zero-value-string.mjs", + "node_modules/motion-utils/dist/es/memo.mjs", + "node_modules/motion-utils/dist/es/noop.mjs", + "node_modules/motion-utils/dist/es/pipe.mjs", + "node_modules/motion-utils/dist/es/progress.mjs", + "node_modules/motion-utils/dist/es/subscription-manager.mjs", + "node_modules/motion-utils/dist/es/time-conversion.mjs", + "node_modules/motion-utils/dist/es/velocity-per-second.mjs", + "node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs", + "node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs", + "node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs", + "node_modules/motion-utils/dist/es/easing/back.mjs", + "node_modules/motion-utils/dist/es/easing/anticipate.mjs", + "node_modules/motion-utils/dist/es/easing/circ.mjs", + "node_modules/motion-utils/dist/es/easing/ease.mjs", + "node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs", + "node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs", + "node_modules/motion-utils/dist/es/easing/utils/map.mjs", + "node_modules/motion-dom/dist/es/frameloop/order.mjs", + "node_modules/motion-dom/dist/es/frameloop/render-step.mjs", + "node_modules/motion-dom/dist/es/frameloop/batcher.mjs", + "node_modules/motion-dom/dist/es/frameloop/frame.mjs", + "node_modules/motion-dom/dist/es/frameloop/sync-time.mjs", + "node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs", + "node_modules/motion-dom/dist/es/value/types/numbers/index.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs", + "node_modules/motion-dom/dist/es/value/types/color/utils.mjs", + "node_modules/motion-dom/dist/es/value/types/color/rgba.mjs", + "node_modules/motion-dom/dist/es/value/types/color/hex.mjs", + "node_modules/motion-dom/dist/es/value/types/numbers/units.mjs", + "node_modules/motion-dom/dist/es/value/types/color/hsla.mjs", + "node_modules/motion-dom/dist/es/value/types/color/index.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs", + "node_modules/motion-dom/dist/es/value/types/complex/index.mjs", + "node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs", + "node_modules/motion-dom/dist/es/utils/mix/immediate.mjs", + "node_modules/motion-dom/dist/es/utils/mix/number.mjs", + "node_modules/motion-dom/dist/es/utils/mix/color.mjs", + "node_modules/motion-dom/dist/es/utils/mix/visibility.mjs", + "node_modules/motion-dom/dist/es/utils/mix/complex.mjs", + "node_modules/motion-dom/dist/es/utils/mix/index.mjs", + "node_modules/motion-dom/dist/es/animation/drivers/frame.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs", + "node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs", + "node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs", + "node_modules/motion-dom/dist/es/animation/generators/spring.mjs", + "node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs", + "node_modules/motion-dom/dist/es/animation/generators/inertia.mjs", + "node_modules/motion-dom/dist/es/utils/interpolate.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs", + "node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs", + "node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs", + "node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs", + "node_modules/motion-dom/dist/es/animation/JSAnimation.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs", + "node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs", + "node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs", + "node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs", + "node_modules/motion-dom/dist/es/render/dom/style-set.mjs", + "node_modules/motion-dom/dist/es/utils/supports/flags.mjs", + "node_modules/motion-dom/dist/es/utils/supports/memo.mjs", + "node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs", + "node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs", + "node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs", + "node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs", + "node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs", + "node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs", + "node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs", + "node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/is-browser-color.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs", + "node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs", + "node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs", + "node_modules/motion-dom/dist/es/value/index.mjs", + "node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs", + "node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs", + "node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs", + "node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs", + "node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs", + "node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs", + "node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs", + "node_modules/motion-dom/dist/es/render/utils/keys-position.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs", + "node_modules/motion-dom/dist/es/render/utils/setters.mjs", + "node_modules/motion-dom/dist/es/value/will-change/is.mjs", + "node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs", + "node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs", + "node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs", + "node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs", + "node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs", + "node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs", + "node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs", + "node_modules/motion-dom/dist/es/value/types/auto.mjs", + "node_modules/motion-dom/dist/es/value/types/test.mjs", + "node_modules/motion-dom/dist/es/value/types/dimensions.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs", + "node_modules/motion-dom/dist/es/value/types/complex/filter.mjs", + "node_modules/motion-dom/dist/es/value/types/complex/mask.mjs", + "node_modules/motion-dom/dist/es/value/types/int.mjs", + "node_modules/motion-dom/dist/es/value/types/maps/transform.mjs", + "node_modules/motion-dom/dist/es/value/types/maps/number.mjs", + "node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs", + "node_modules/motion-dom/dist/es/utils/border-radius.mjs", + "node_modules/motion-dom/dist/es/utils/resolve-elements.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs", + "node_modules/motion-dom/dist/es/utils/is-html-element.mjs", + "node_modules/motion-dom/dist/es/frameloop/microtask.mjs", + "node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs", + "node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs", + "node_modules/motion-dom/dist/es/gestures/utils/setup.mjs", + "node_modules/motion-dom/dist/es/gestures/hover.mjs", + "node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs", + "node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs", + "node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs", + "node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs", + "node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs", + "node_modules/motion-dom/dist/es/gestures/press/index.mjs", + "node_modules/motion-dom/dist/es/utils/is-svg-element.mjs", + "node_modules/motion-dom/dist/es/resize/handle-element.mjs", + "node_modules/motion-dom/dist/es/resize/handle-window.mjs", + "node_modules/motion-dom/dist/es/resize/index.mjs", + "node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/find.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/models.mjs", + "node_modules/motion-dom/dist/es/render/store.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs", + "node_modules/motion-dom/dist/es/render/utils/variant-props.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs", + "node_modules/motion-dom/dist/es/render/utils/motion-values.mjs", + "node_modules/motion-dom/dist/es/render/VisualElement.mjs", + "node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs", + "node_modules/motion-dom/dist/es/render/Feature.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs", + "node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs", + "node_modules/motion-dom/dist/es/projection/utils/measure.mjs", + "node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs", + "node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs", + "node_modules/motion-dom/dist/es/render/html/utils/render.mjs", + "node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs", + "node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs", + "node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs", + "node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs", + "node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/path.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/render.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs", + "node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs", + "node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs", + "node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs", + "node_modules/motion-dom/dist/es/render/utils/animation-state.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/copy.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/utils.mjs", + "node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs", + "node_modules/motion-dom/dist/es/projection/styles/transform.mjs", + "node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs", + "node_modules/motion-dom/dist/es/animation/animate/single-value.mjs", + "node_modules/motion-dom/dist/es/events/add-dom-event.mjs", + "node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs", + "node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs", + "node_modules/motion-dom/dist/es/utils/delay.mjs", + "node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs", + "node_modules/motion-dom/dist/es/projection/shared/stack.mjs", + "node_modules/motion-dom/dist/es/projection/node/state.mjs", + "node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs", + "node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs", + "node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs", + "node_modules/framer-motion/dist/es/context/LazyContext.mjs", + "node_modules/framer-motion/dist/es/motion/features/definitions.mjs", + "node_modules/framer-motion/dist/es/motion/features/load-features.mjs", + "node_modules/framer-motion/dist/es/context/MotionContext/index.mjs", + "node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs", + "node_modules/framer-motion/dist/es/context/MotionContext/create.mjs", + "node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs", + "node_modules/framer-motion/dist/es/render/html/use-props.mjs", + "node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs", + "node_modules/framer-motion/dist/es/render/svg/use-props.mjs", + "node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs", + "node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs", + "node_modules/framer-motion/dist/es/render/dom/use-render.mjs", + "node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs", + "node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs", + "node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs", + "node_modules/framer-motion/dist/es/motion/utils/symbol.mjs", + "node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs", + "node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs", + "node_modules/framer-motion/dist/es/utils/is-ref-object.mjs", + "node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs", + "node_modules/framer-motion/dist/es/motion/index.mjs", + "node_modules/framer-motion/dist/es/render/components/create-proxy.mjs", + "node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs", + "node_modules/framer-motion/dist/es/motion/features/animation/index.mjs", + "node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs", + "node_modules/framer-motion/dist/es/motion/features/animations.mjs", + "node_modules/framer-motion/dist/es/events/event-info.mjs", + "node_modules/framer-motion/dist/es/events/add-pointer-event.mjs", + "node_modules/framer-motion/dist/es/utils/get-context-window.mjs", + "node_modules/framer-motion/dist/es/utils/distance.mjs", + "node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs", + "node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs", + "node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs", + "node_modules/framer-motion/dist/es/gestures/drag/index.mjs", + "node_modules/framer-motion/dist/es/gestures/pan/index.mjs", + "node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs", + "node_modules/framer-motion/dist/es/motion/features/drag.mjs", + "node_modules/framer-motion/dist/es/gestures/hover.mjs", + "node_modules/framer-motion/dist/es/gestures/focus.mjs", + "node_modules/framer-motion/dist/es/gestures/press.mjs", + "node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs", + "node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs", + "node_modules/framer-motion/dist/es/motion/features/gestures.mjs", + "node_modules/framer-motion/dist/es/motion/features/layout.mjs", + "node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs", + "node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs" + ], + "staticMembership": [ + "/" + ], + "dynamicEntry": "_proxy-CyJslaS_.js" + }, + { + "file": "assets/flame-DZjlhb1N.js", + "bytes": 275, + "gzipBytes": 226, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/flame.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_flame-DZjlhb1N.js" + }, + { + "file": "assets/refresh-cw-Dx_rovVU.js", + "bytes": 443, + "gzipBytes": 278, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/message-square.js", + "node_modules/lucide-react/dist/esm/icons/refresh-cw.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_refresh-cw-Dx_rovVU.js" + }, + { + "file": "assets/use-reduced-motion-DIRZraea.js", + "bytes": 387, + "gzipBytes": 269, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs", + "node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs", + "node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.mjs" + ], + "staticMembership": [ + "/", + "/app/generate" + ], + "dynamicEntry": "_use-reduced-motion-DIRZraea.js" + }, + { + "file": "assets/error-display-B8noTjms.js", + "bytes": 1464, + "gzipBytes": 629, + "imports": [ + "assets/client-B2Hmm4S3.js" + ], + "modules": [ + "src/lib/ai/error-display.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_error-display-B8noTjms.js" + }, + { + "file": "assets/SettingsPage-CCq-OUYp.js", + "bytes": 16451, + "gzipBytes": 5479, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/badge-DOuwE0tA.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/PricingModal-DeTbMjVf.js", + "assets/date-format-CG2nx3lR.js", + "assets/input-BRlCt18M.js", + "assets/crown-C2TeHzqk.js", + "assets/credit-card-CFOMlw74.js", + "assets/zap-YNjUnyuz.js", + "assets/shield-DsgIRl3K.js", + "assets/trash-2-rdeQ5AHC.js", + "assets/edge-function-error-dlcwXP30.js" + ], + "modules": [ + "node_modules/@tanstack/query-core/build/modern/queryObserver.js", + "node_modules/@tanstack/react-query/build/modern/IsRestoringProvider.js", + "node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js", + "node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js", + "node_modules/@tanstack/react-query/build/modern/suspense.js", + "node_modules/@tanstack/react-query/build/modern/useBaseQuery.js", + "node_modules/@tanstack/react-query/build/modern/useQuery.js", + "src/pages/SettingsPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/SettingsPage.tsx" + }, + { + "file": "assets/PricingModal-DeTbMjVf.js", + "bytes": 5543, + "gzipBytes": 1891, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/input-BRlCt18M.js", + "assets/badge-DOuwE0tA.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-C2TeHzqk.js", + "assets/zap-YNjUnyuz.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/lock.js", + "src/lib/stripe.ts", + "src/components/features/subscription/PricingModal.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_PricingModal-DeTbMjVf.js" + }, + { + "file": "assets/crown-C2TeHzqk.js", + "bytes": 359, + "gzipBytes": 253, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/crown.js" + ], + "staticMembership": [ + "/", + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_crown-C2TeHzqk.js" + }, + { + "file": "assets/HistoryPage-Dq0oiiwR.js", + "bytes": 11679, + "gzipBytes": 2619, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/tabs-DSSrXhZO.js", + "assets/badge-DOuwE0tA.js", + "assets/scroll-area-B5p3Y_vr.js", + "assets/date-format-CG2nx3lR.js", + "assets/alert-dialog-DDhjApTe.js", + "assets/empty-state-BkQZkMeo.js", + "assets/file-text-Bg60aQFS.js", + "assets/zap-YNjUnyuz.js", + "assets/brain-BDMiUfF_.js", + "assets/trash-2-rdeQ5AHC.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/eye.js", + "src/pages/HistoryPage.tsx" + ], + "staticMembership": [ + "/app/history" + ], + "dynamicEntry": "src/pages/HistoryPage.tsx" + }, + { + "file": "assets/empty-state-BkQZkMeo.js", + "bytes": 609, + "gzipBytes": 373, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/components/ui/empty-state.tsx" + ], + "staticMembership": [ + "/app/history" + ], + "dynamicEntry": "_empty-state-BkQZkMeo.js" + }, + { + "file": "assets/brain-BDMiUfF_.js", + "bytes": 731, + "gzipBytes": 352, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/brain.js" + ], + "staticMembership": [ + "/", + "/app/history" + ], + "dynamicEntry": "_brain-BDMiUfF_.js" + }, + { + "file": "assets/zap-YNjUnyuz.js", + "bytes": 259, + "gzipBytes": 204, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/zap.js" + ], + "staticMembership": [ + "/", + "/app/generate", + "/app/attack", + "/app/history" + ], + "dynamicEntry": "_zap-YNjUnyuz.js" + }, + { + "file": "assets/LibraryPage-da1Lz-zX.js", + "bytes": 45623, + "gzipBytes": 13539, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/input-BRlCt18M.js", + "assets/textarea-BxuDaNfy.js", + "assets/badge-DOuwE0tA.js", + "assets/switch-CNm-rbvw.js", + "assets/date-format-CG2nx3lR.js", + "assets/url-D1MGTXu_.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/alert-dialog-DDhjApTe.js", + "assets/sheet-BqybMOOx.js", + "assets/plus-B_HHoAv5.js", + "assets/trash-2-rdeQ5AHC.js", + "assets/search-70EybyUQ.js", + "assets/shield-check-1u8_MjqX.js", + "assets/file-text-Bg60aQFS.js", + "assets/copy-B5L0aXUh.js", + "assets/save-VRo3zf0k.js", + "assets/external-link-hWs27zxC.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/folder-minus.js", + "node_modules/lucide-react/dist/esm/icons/folder-plus.js", + "node_modules/lucide-react/dist/esm/icons/folder.js", + "node_modules/lucide-react/dist/esm/icons/link-2.js", + "node_modules/lucide-react/dist/esm/icons/pencil.js", + "node_modules/lucide-react/dist/esm/icons/shield-alert.js", + "node_modules/lucide-react/dist/esm/icons/upload.js", + "node_modules/react-window/dist/react-window.js", + "src/lib/ai/schemas/source-import.ts", + "src/lib/source-import.ts", + "node_modules/pdfjs-dist/legacy/build/pdf.worker.mjs?url", + "src/lib/source-file-import.ts", + "node_modules/@radix-ui/react-popover/dist/index.mjs", + "src/components/ui/popover.tsx", + "src/pages/LibraryPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/LibraryPage.tsx" + }, + { + "file": "assets/sheet-BqybMOOx.js", + "bytes": 2335, + "gzipBytes": 897, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/components/ui/sheet.tsx" + ], + "staticMembership": [], + "dynamicEntry": "_sheet-BqybMOOx.js" + }, + { + "file": "assets/switch-CNm-rbvw.js", + "bytes": 4150, + "gzipBytes": 1790, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@radix-ui/react-switch/dist/index.mjs", + "src/components/ui/switch.tsx" + ], + "staticMembership": [ + "/app/attack" + ], + "dynamicEntry": "_switch-CNm-rbvw.js" + }, + { + "file": "assets/shield-check-1u8_MjqX.js", + "bytes": 316, + "gzipBytes": 243, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/shield-check.js" + ], + "staticMembership": [], + "dynamicEntry": "_shield-check-1u8_MjqX.js" + }, + { + "file": "assets/edge-function-error-dlcwXP30.js", + "bytes": 694, + "gzipBytes": 378, + "imports": [], + "modules": [ + "src/lib/supabase/edge-function-error.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_edge-function-error-dlcwXP30.js" + }, + { + "file": "assets/TimerPage-gsuEL79V.js", + "bytes": 10973, + "gzipBytes": 3562, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/badge-DOuwE0tA.js", + "assets/progress-BOMHF48O.js", + "assets/rotate-ccw-g7oK_yc2.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/bell.js", + "node_modules/lucide-react/dist/esm/icons/keyboard.js", + "node_modules/lucide-react/dist/esm/icons/pause.js", + "node_modules/lucide-react/dist/esm/icons/play.js", + "node_modules/lucide-react/dist/esm/icons/volume-2.js", + "node_modules/lucide-react/dist/esm/icons/volume-x.js", + "src/pages/TimerPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/TimerPage.tsx" + }, + { + "file": "assets/SparringPage-nXprKVny.js", + "bytes": 55879, + "gzipBytes": 15403, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/client-B2Hmm4S3.js", + "assets/card-DNuxaVKj.js", + "assets/textarea-BxuDaNfy.js", + "assets/badge-DOuwE0tA.js", + "assets/ModelSelector-DPUAfvNL.js", + "assets/arrow-right-DE4H5pKc.js", + "assets/progress-BOMHF48O.js", + "assets/markdown-CePz3aK8.js", + "assets/clock-3-BP2woNWy.js", + "assets/rotate-ccw-g7oK_yc2.js", + "assets/circle-alert-ChwbUVv0.js", + "assets/send-CYByA_eA.js", + "assets/download-7v2KEx-L.js", + "assets/generateCategoricalChart-DZci5nEc.js", + "assets/target-DmELU7_M.js", + "assets/file-text-Bg60aQFS.js", + "assets/circle-help-Dn3L85BO.js", + "assets/url-D1MGTXu_.js", + "assets/use-subscription-TWRM-hpK.js", + "assets/string-CvptbcKz.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/arrow-left.js", + "node_modules/lucide-react/dist/esm/icons/award.js", + "node_modules/lucide-react/dist/esm/icons/bot.js", + "node_modules/lucide-react/dist/esm/icons/chart-column.js", + "node_modules/lucide-react/dist/esm/icons/chevron-right.js", + "node_modules/lucide-react/dist/esm/icons/circle-pause.js", + "node_modules/lucide-react/dist/esm/icons/circle-play.js", + "node_modules/lucide-react/dist/esm/icons/cloud-off.js", + "node_modules/lucide-react/dist/esm/icons/gauge.js", + "node_modules/lucide-react/dist/esm/icons/user-round.js", + "node_modules/lucide-react/dist/esm/icons/wifi.js", + "src/components/features/sparring/SparringSetup.tsx", + "src/components/features/sparring/SparringRound.tsx", + "node_modules/recharts/es6/polar/PolarGrid.js", + "node_modules/lodash/head.js", + "node_modules/lodash/first.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/first.js?commonjs-es-import", + "node_modules/recharts/es6/polar/Radar.js", + "node_modules/recharts/es6/chart/RadarChart.js", + "src/components/features/sparring/SparringScorecard.tsx", + "src/pages/SparringPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/SparringPage.tsx" + }, + { + "file": "assets/arrow-right-DE4H5pKc.js", + "bytes": 161, + "gzipBytes": 160, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/arrow-right.js" + ], + "staticMembership": [ + "/", + "/app" + ], + "dynamicEntry": "_arrow-right-DE4H5pKc.js" + }, + { + "file": "assets/circle-help-Dn3L85BO.js", + "bytes": 230, + "gzipBytes": 197, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-help.js" + ], + "staticMembership": [], + "dynamicEntry": "_circle-help-Dn3L85BO.js" + }, + { + "file": "assets/markdown-CePz3aK8.js", + "bytes": 119379, + "gzipBytes": 36770, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/devlop/lib/default.js", + "node_modules/comma-separated-tokens/index.js", + "node_modules/estree-util-is-identifier-name/lib/index.js", + "node_modules/hast-util-whitespace/lib/index.js", + "node_modules/property-information/lib/util/schema.js", + "node_modules/property-information/lib/util/merge.js", + "node_modules/property-information/lib/normalize.js", + "node_modules/property-information/lib/util/info.js", + "node_modules/property-information/lib/util/types.js", + "node_modules/property-information/lib/util/defined-info.js", + "node_modules/property-information/lib/util/create.js", + "node_modules/property-information/lib/aria.js", + "node_modules/property-information/lib/util/case-sensitive-transform.js", + "node_modules/property-information/lib/util/case-insensitive-transform.js", + "node_modules/property-information/lib/html.js", + "node_modules/property-information/lib/svg.js", + "node_modules/property-information/lib/xlink.js", + "node_modules/property-information/lib/xmlns.js", + "node_modules/property-information/lib/xml.js", + "node_modules/property-information/lib/hast-to-react.js", + "node_modules/property-information/lib/find.js", + "node_modules/property-information/index.js", + "node_modules/space-separated-tokens/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/style-to-object/cjs/index.js?commonjs-exports", + "node_modules/inline-style-parser/cjs/index.js", + "node_modules/style-to-object/cjs/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/style-to-js/cjs/utilities.js?commonjs-exports", + "node_modules/style-to-js/cjs/utilities.js", + "node_modules/style-to-js/cjs/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/style-to-js/cjs/index.js?commonjs-es-import", + "node_modules/unist-util-position/lib/index.js", + "node_modules/unist-util-stringify-position/lib/index.js", + "node_modules/vfile-message/lib/index.js", + "node_modules/hast-util-to-jsx-runtime/lib/index.js", + "node_modules/html-url-attributes/lib/index.js", + "node_modules/mdast-util-to-string/lib/index.js", + "node_modules/decode-named-character-reference/index.dom.js", + "node_modules/micromark-util-chunked/index.js", + "node_modules/micromark-util-combine-extensions/index.js", + "node_modules/micromark-util-decode-numeric-character-reference/index.js", + "node_modules/micromark-util-normalize-identifier/index.js", + "node_modules/micromark-util-character/index.js", + "node_modules/micromark-util-sanitize-uri/index.js", + "node_modules/micromark-factory-space/index.js", + "node_modules/micromark/lib/initialize/content.js", + "node_modules/micromark/lib/initialize/document.js", + "node_modules/micromark-util-classify-character/index.js", + "node_modules/micromark-util-resolve-all/index.js", + "node_modules/micromark-core-commonmark/lib/attention.js", + "node_modules/micromark-core-commonmark/lib/autolink.js", + "node_modules/micromark-core-commonmark/lib/blank-line.js", + "node_modules/micromark-core-commonmark/lib/block-quote.js", + "node_modules/micromark-core-commonmark/lib/character-escape.js", + "node_modules/micromark-core-commonmark/lib/character-reference.js", + "node_modules/micromark-core-commonmark/lib/code-fenced.js", + "node_modules/micromark-core-commonmark/lib/code-indented.js", + "node_modules/micromark-core-commonmark/lib/code-text.js", + "node_modules/micromark-util-subtokenize/lib/splice-buffer.js", + "node_modules/micromark-util-subtokenize/index.js", + "node_modules/micromark-core-commonmark/lib/content.js", + "node_modules/micromark-factory-destination/index.js", + "node_modules/micromark-factory-label/index.js", + "node_modules/micromark-factory-title/index.js", + "node_modules/micromark-factory-whitespace/index.js", + "node_modules/micromark-core-commonmark/lib/definition.js", + "node_modules/micromark-core-commonmark/lib/hard-break-escape.js", + "node_modules/micromark-core-commonmark/lib/heading-atx.js", + "node_modules/micromark-util-html-tag-name/index.js", + "node_modules/micromark-core-commonmark/lib/html-flow.js", + "node_modules/micromark-core-commonmark/lib/html-text.js", + "node_modules/micromark-core-commonmark/lib/label-end.js", + "node_modules/micromark-core-commonmark/lib/label-start-image.js", + "node_modules/micromark-core-commonmark/lib/label-start-link.js", + "node_modules/micromark-core-commonmark/lib/line-ending.js", + "node_modules/micromark-core-commonmark/lib/thematic-break.js", + "node_modules/micromark-core-commonmark/lib/list.js", + "node_modules/micromark-core-commonmark/lib/setext-underline.js", + "node_modules/micromark/lib/initialize/flow.js", + "node_modules/micromark/lib/initialize/text.js", + "node_modules/micromark/lib/constructs.js", + "node_modules/micromark/lib/create-tokenizer.js", + "node_modules/micromark/lib/parse.js", + "node_modules/micromark/lib/postprocess.js", + "node_modules/micromark/lib/preprocess.js", + "node_modules/micromark-util-decode-string/index.js", + "node_modules/mdast-util-from-markdown/lib/index.js", + "node_modules/remark-parse/lib/index.js", + "node_modules/mdast-util-to-hast/lib/handlers/blockquote.js", + "node_modules/mdast-util-to-hast/lib/handlers/break.js", + "node_modules/mdast-util-to-hast/lib/handlers/code.js", + "node_modules/mdast-util-to-hast/lib/handlers/delete.js", + "node_modules/mdast-util-to-hast/lib/handlers/emphasis.js", + "node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js", + "node_modules/mdast-util-to-hast/lib/handlers/heading.js", + "node_modules/mdast-util-to-hast/lib/handlers/html.js", + "node_modules/mdast-util-to-hast/lib/revert.js", + "node_modules/mdast-util-to-hast/lib/handlers/image-reference.js", + "node_modules/mdast-util-to-hast/lib/handlers/image.js", + "node_modules/mdast-util-to-hast/lib/handlers/inline-code.js", + "node_modules/mdast-util-to-hast/lib/handlers/link-reference.js", + "node_modules/mdast-util-to-hast/lib/handlers/link.js", + "node_modules/mdast-util-to-hast/lib/handlers/list-item.js", + "node_modules/mdast-util-to-hast/lib/handlers/list.js", + "node_modules/mdast-util-to-hast/lib/handlers/paragraph.js", + "node_modules/mdast-util-to-hast/lib/handlers/root.js", + "node_modules/mdast-util-to-hast/lib/handlers/strong.js", + "node_modules/mdast-util-to-hast/lib/handlers/table.js", + "node_modules/mdast-util-to-hast/lib/handlers/table-row.js", + "node_modules/mdast-util-to-hast/lib/handlers/table-cell.js", + "node_modules/trim-lines/index.js", + "node_modules/mdast-util-to-hast/lib/handlers/text.js", + "node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js", + "node_modules/mdast-util-to-hast/lib/handlers/index.js", + "node_modules/@ungap/structured-clone/esm/types.js", + "node_modules/@ungap/structured-clone/esm/deserialize.js", + "node_modules/@ungap/structured-clone/esm/serialize.js", + "node_modules/@ungap/structured-clone/esm/index.js", + "node_modules/mdast-util-to-hast/lib/footer.js", + "node_modules/unist-util-is/lib/index.js", + "node_modules/unist-util-visit-parents/lib/color.js", + "node_modules/unist-util-visit-parents/lib/index.js", + "node_modules/unist-util-visit/lib/index.js", + "node_modules/mdast-util-to-hast/lib/state.js", + "node_modules/mdast-util-to-hast/lib/index.js", + "node_modules/remark-rehype/lib/index.js", + "node_modules/bail/index.js", + "node_modules/extend/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/extend/index.js?commonjs-es-import", + "node_modules/is-plain-obj/index.js", + "node_modules/trough/lib/index.js", + "node_modules/vfile/lib/minpath.browser.js", + "node_modules/vfile/lib/minproc.browser.js", + "node_modules/vfile/lib/minurl.shared.js", + "node_modules/vfile/lib/minurl.browser.js", + "node_modules/vfile/lib/index.js", + "node_modules/unified/lib/callable-instance.js", + "node_modules/unified/lib/index.js", + "node_modules/react-markdown/lib/index.js", + "src/components/ui/markdown.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_markdown-CePz3aK8.js" + }, + { + "file": "assets/ModelSelector-DPUAfvNL.js", + "bytes": 2512, + "gzipBytes": 1078, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/badge-DOuwE0tA.js", + "assets/use-subscription-TWRM-hpK.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/cpu.js", + "src/components/ModelSelector.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_ModelSelector-DPUAfvNL.js" + }, + { + "file": "assets/clock-3-BP2woNWy.js", + "bytes": 178, + "gzipBytes": 168, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/clock-3.js" + ], + "staticMembership": [], + "dynamicEntry": "_clock-3-BP2woNWy.js" + }, + { + "file": "assets/send-CYByA_eA.js", + "bytes": 287, + "gzipBytes": 225, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/send.js" + ], + "staticMembership": [], + "dynamicEntry": "_send-CYByA_eA.js" + }, + { + "file": "assets/client-B2Hmm4S3.js", + "bytes": 39898, + "gzipBytes": 13784, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/url-D1MGTXu_.js" + ], + "modules": [ + "node_modules/zod/v4/classic/coerce.js", + "src/lib/ai/schemas/generate.ts", + "src/lib/ai/providers/mock-provider.ts", + "src/lib/ai/schemas/attack.ts", + "src/lib/ai/schemas/factoids.ts", + "src/lib/ai/schemas/ask.ts", + "src/lib/validation/url.ts", + "src/lib/ai/client.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_client-B2Hmm4S3.js" + }, + { + "file": "assets/use-subscription-TWRM-hpK.js", + "bytes": 2234, + "gzipBytes": 1000, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/hooks/use-subscription.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_use-subscription-TWRM-hpK.js" + }, + { + "file": "assets/url-D1MGTXu_.js", + "bytes": 179, + "gzipBytes": 165, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/lib/ai/schemas/url.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_url-D1MGTXu_.js" + }, + { + "file": "assets/file-text-Bg60aQFS.js", + "bytes": 329, + "gzipBytes": 214, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/file-text.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack", + "/app/history" + ], + "dynamicEntry": "_file-text-Bg60aQFS.js" + }, + { + "file": "assets/progress-BOMHF48O.js", + "bytes": 2198, + "gzipBytes": 1093, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@radix-ui/react-progress/dist/index.mjs", + "src/components/ui/progress.tsx" + ], + "staticMembership": [ + "/app/attack" + ], + "dynamicEntry": "_progress-BOMHF48O.js" + }, + { + "file": "assets/AdminPage-D-E666bh.js", + "bytes": 77425, + "gzipBytes": 20319, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/input-BRlCt18M.js", + "assets/badge-DOuwE0tA.js", + "assets/tabs-DSSrXhZO.js", + "assets/scroll-area-B5p3Y_vr.js", + "assets/date-format-CG2nx3lR.js", + "assets/checkbox-CcU5IimS.js", + "assets/textarea-BxuDaNfy.js", + "assets/alert-dialog-DDhjApTe.js", + "assets/search-70EybyUQ.js", + "assets/trash-2-rdeQ5AHC.js", + "assets/shield-DsgIRl3K.js", + "assets/circle-alert-ChwbUVv0.js", + "assets/users-DWoVwdaK.js", + "assets/credit-card-CFOMlw74.js", + "assets/generateCategoricalChart-DZci5nEc.js", + "assets/copy-B5L0aXUh.js", + "assets/rotate-ccw-g7oK_yc2.js", + "assets/string-CvptbcKz.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/activity.js", + "node_modules/lucide-react/dist/esm/icons/ban.js", + "node_modules/lucide-react/dist/esm/icons/dollar-sign.js", + "node_modules/lucide-react/dist/esm/icons/gift.js", + "node_modules/lucide-react/dist/esm/icons/key-round.js", + "node_modules/lucide-react/dist/esm/icons/settings-2.js", + "node_modules/lucide-react/dist/esm/icons/ticket.js", + "node_modules/lucide-react/dist/esm/icons/user-check.js", + "node_modules/recharts/es6/polar/Pie.js", + "node_modules/recharts/es6/util/getEveryNthWithCondition.js", + "node_modules/recharts/es6/util/TickUtils.js", + "node_modules/recharts/es6/cartesian/getEquidistantTicks.js", + "node_modules/recharts/es6/cartesian/getTicks.js", + "node_modules/recharts/es6/cartesian/CartesianAxis.js", + "node_modules/recharts/es6/cartesian/CartesianGrid.js", + "node_modules/recharts/es6/cartesian/XAxis.js", + "node_modules/recharts/es6/cartesian/YAxis.js", + "node_modules/recharts/es6/chart/BarChart.js", + "node_modules/recharts/es6/chart/PieChart.js", + "src/components/admin/AdminAnnouncements.tsx", + "src/pages/AdminPage.tsx" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "src/pages/AdminPage.tsx" + }, + { + "file": "assets/users-DWoVwdaK.js", + "bytes": 301, + "gzipBytes": 224, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/users.js" + ], + "staticMembership": [ + "/", + "/app/admin" + ], + "dynamicEntry": "_users-DWoVwdaK.js" + }, + { + "file": "assets/checkbox-CcU5IimS.js", + "bytes": 4320, + "gzipBytes": 1874, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@radix-ui/react-checkbox/dist/index.mjs", + "src/components/ui/checkbox.tsx" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_checkbox-CcU5IimS.js" + }, + { + "file": "assets/credit-card-CFOMlw74.js", + "bytes": 203, + "gzipBytes": 183, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/credit-card.js" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_credit-card-CFOMlw74.js" + }, + { + "file": "assets/scroll-area-B5p3Y_vr.js", + "bytes": 13530, + "gzipBytes": 4249, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@radix-ui/react-scroll-area/dist/index.mjs", + "src/components/ui/scroll-area.tsx" + ], + "staticMembership": [ + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_scroll-area-B5p3Y_vr.js" + }, + { + "file": "assets/copy-B5L0aXUh.js", + "bytes": 228, + "gzipBytes": 203, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/copy.js" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_copy-B5L0aXUh.js" + }, + { + "file": "assets/search-70EybyUQ.js", + "bytes": 164, + "gzipBytes": 163, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/search.js" + ], + "staticMembership": [ + "/", + "/app/attack", + "/app/admin" + ], + "dynamicEntry": "_search-70EybyUQ.js" + }, + { + "file": "assets/generateCategoricalChart-DZci5nEc.js", + "bytes": 364541, + "gzipBytes": 99153, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/string-CvptbcKz.js" + ], + "modules": [ + "node_modules/d3-interpolate/src/numberArray.js", + "node_modules/d3-interpolate/src/array.js", + "node_modules/d3-interpolate/src/date.js", + "node_modules/d3-interpolate/src/object.js", + "node_modules/d3-interpolate/src/value.js", + "node_modules/d3-interpolate/src/round.js", + "node_modules/d3-interpolate/src/piecewise.js", + "node_modules/lodash/isArray.js", + "node_modules/lodash/_freeGlobal.js", + "node_modules/lodash/_root.js", + "node_modules/lodash/_Symbol.js", + "node_modules/lodash/_getRawTag.js", + "node_modules/lodash/_objectToString.js", + "node_modules/lodash/_baseGetTag.js", + "node_modules/lodash/isObjectLike.js", + "node_modules/lodash/isSymbol.js", + "node_modules/lodash/_isKey.js", + "node_modules/lodash/isObject.js", + "node_modules/lodash/isFunction.js", + "node_modules/lodash/_coreJsData.js", + "node_modules/lodash/_isMasked.js", + "node_modules/lodash/_toSource.js", + "node_modules/lodash/_baseIsNative.js", + "node_modules/lodash/_getValue.js", + "node_modules/lodash/_getNative.js", + "node_modules/lodash/_nativeCreate.js", + "node_modules/lodash/_hashClear.js", + "node_modules/lodash/_hashDelete.js", + "node_modules/lodash/_hashGet.js", + "node_modules/lodash/_hashHas.js", + "node_modules/lodash/_hashSet.js", + "node_modules/lodash/_Hash.js", + "node_modules/lodash/_listCacheClear.js", + "node_modules/lodash/eq.js", + "node_modules/lodash/_assocIndexOf.js", + "node_modules/lodash/_listCacheDelete.js", + "node_modules/lodash/_listCacheGet.js", + "node_modules/lodash/_listCacheHas.js", + "node_modules/lodash/_listCacheSet.js", + "node_modules/lodash/_ListCache.js", + "node_modules/lodash/_Map.js", + "node_modules/lodash/_mapCacheClear.js", + "node_modules/lodash/_isKeyable.js", + "node_modules/lodash/_getMapData.js", + "node_modules/lodash/_mapCacheDelete.js", + "node_modules/lodash/_mapCacheGet.js", + "node_modules/lodash/_mapCacheHas.js", + "node_modules/lodash/_mapCacheSet.js", + "node_modules/lodash/_MapCache.js", + "node_modules/lodash/memoize.js", + "node_modules/lodash/_memoizeCapped.js", + "node_modules/lodash/_stringToPath.js", + "node_modules/lodash/_arrayMap.js", + "node_modules/lodash/_baseToString.js", + "node_modules/lodash/toString.js", + "node_modules/lodash/_castPath.js", + "node_modules/lodash/_toKey.js", + "node_modules/lodash/_baseGet.js", + "node_modules/lodash/get.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/get.js?commonjs-es-import", + "node_modules/lodash/isNil.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isNil.js?commonjs-es-import", + "node_modules/lodash/isString.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isString.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isFunction.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isObject.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/recharts/node_modules/react-is/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/recharts/node_modules/react-is/cjs/react-is.production.min.js?commonjs-exports", + "node_modules/recharts/node_modules/react-is/cjs/react-is.production.min.js", + "node_modules/recharts/node_modules/react-is/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/recharts/node_modules/react-is/index.js?commonjs-es-import", + "node_modules/lodash/isNumber.js", + "node_modules/lodash/isNaN.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isNaN.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isNumber.js?commonjs-es-import", + "node_modules/recharts/es6/util/DataUtils.js", + "node_modules/recharts/es6/util/ShallowEqual.js", + "node_modules/recharts/es6/util/types.js", + "node_modules/recharts/es6/util/ReactUtils.js", + "node_modules/recharts/es6/container/Surface.js", + "node_modules/recharts/es6/container/Layer.js", + "node_modules/recharts/es6/util/LogUtils.js", + "node_modules/lodash/_baseSlice.js", + "node_modules/lodash/_castSlice.js", + "node_modules/lodash/_hasUnicode.js", + "node_modules/lodash/_asciiToArray.js", + "node_modules/lodash/_unicodeToArray.js", + "node_modules/lodash/_stringToArray.js", + "node_modules/lodash/_createCaseFirst.js", + "node_modules/lodash/upperFirst.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/upperFirst.js?commonjs-es-import", + "node_modules/d3-shape/src/constant.js", + "node_modules/d3-shape/src/math.js", + "node_modules/d3-path/src/path.js", + "node_modules/d3-shape/src/path.js", + "node_modules/d3-shape/src/array.js", + "node_modules/d3-shape/src/curve/linear.js", + "node_modules/d3-shape/src/point.js", + "node_modules/d3-shape/src/line.js", + "node_modules/d3-shape/src/area.js", + "node_modules/d3-shape/src/curve/bump.js", + "node_modules/d3-shape/src/symbol/circle.js", + "node_modules/d3-shape/src/symbol/cross.js", + "node_modules/d3-shape/src/symbol/diamond.js", + "node_modules/d3-shape/src/symbol/square.js", + "node_modules/d3-shape/src/symbol/star.js", + "node_modules/d3-shape/src/symbol/triangle.js", + "node_modules/d3-shape/src/symbol/wye.js", + "node_modules/d3-shape/src/symbol.js", + "node_modules/d3-shape/src/noop.js", + "node_modules/d3-shape/src/curve/basis.js", + "node_modules/d3-shape/src/curve/basisClosed.js", + "node_modules/d3-shape/src/curve/basisOpen.js", + "node_modules/d3-shape/src/curve/linearClosed.js", + "node_modules/d3-shape/src/curve/monotone.js", + "node_modules/d3-shape/src/curve/natural.js", + "node_modules/d3-shape/src/curve/step.js", + "node_modules/d3-shape/src/offset/none.js", + "node_modules/d3-shape/src/order/none.js", + "node_modules/d3-shape/src/stack.js", + "node_modules/d3-shape/src/offset/expand.js", + "node_modules/d3-shape/src/offset/silhouette.js", + "node_modules/d3-shape/src/offset/wiggle.js", + "node_modules/recharts/es6/shape/Symbols.js", + "node_modules/recharts/es6/component/DefaultLegendContent.js", + "node_modules/lodash/_stackClear.js", + "node_modules/lodash/_stackDelete.js", + "node_modules/lodash/_stackGet.js", + "node_modules/lodash/_stackHas.js", + "node_modules/lodash/_stackSet.js", + "node_modules/lodash/_Stack.js", + "node_modules/lodash/_setCacheAdd.js", + "node_modules/lodash/_setCacheHas.js", + "node_modules/lodash/_SetCache.js", + "node_modules/lodash/_arraySome.js", + "node_modules/lodash/_cacheHas.js", + "node_modules/lodash/_equalArrays.js", + "node_modules/lodash/_Uint8Array.js", + "node_modules/lodash/_mapToArray.js", + "node_modules/lodash/_setToArray.js", + "node_modules/lodash/_equalByTag.js", + "node_modules/lodash/_arrayPush.js", + "node_modules/lodash/_baseGetAllKeys.js", + "node_modules/lodash/_arrayFilter.js", + "node_modules/lodash/stubArray.js", + "node_modules/lodash/_getSymbols.js", + "node_modules/lodash/_baseTimes.js", + "node_modules/lodash/_baseIsArguments.js", + "node_modules/lodash/isArguments.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isBuffer.js?commonjs-module", + "node_modules/lodash/stubFalse.js", + "node_modules/lodash/isBuffer.js", + "node_modules/lodash/_isIndex.js", + "node_modules/lodash/isLength.js", + "node_modules/lodash/_baseIsTypedArray.js", + "node_modules/lodash/_baseUnary.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/_nodeUtil.js?commonjs-module", + "node_modules/lodash/_nodeUtil.js", + "node_modules/lodash/isTypedArray.js", + "node_modules/lodash/_arrayLikeKeys.js", + "node_modules/lodash/_isPrototype.js", + "node_modules/lodash/_overArg.js", + "node_modules/lodash/_nativeKeys.js", + "node_modules/lodash/_baseKeys.js", + "node_modules/lodash/isArrayLike.js", + "node_modules/lodash/keys.js", + "node_modules/lodash/_getAllKeys.js", + "node_modules/lodash/_equalObjects.js", + "node_modules/lodash/_DataView.js", + "node_modules/lodash/_Promise.js", + "node_modules/lodash/_Set.js", + "node_modules/lodash/_WeakMap.js", + "node_modules/lodash/_getTag.js", + "node_modules/lodash/_baseIsEqualDeep.js", + "node_modules/lodash/_baseIsEqual.js", + "node_modules/lodash/_baseIsMatch.js", + "node_modules/lodash/_isStrictComparable.js", + "node_modules/lodash/_getMatchData.js", + "node_modules/lodash/_matchesStrictComparable.js", + "node_modules/lodash/_baseMatches.js", + "node_modules/lodash/_baseHasIn.js", + "node_modules/lodash/_hasPath.js", + "node_modules/lodash/hasIn.js", + "node_modules/lodash/_baseMatchesProperty.js", + "node_modules/lodash/identity.js", + "node_modules/lodash/_baseProperty.js", + "node_modules/lodash/_basePropertyDeep.js", + "node_modules/lodash/property.js", + "node_modules/lodash/_baseIteratee.js", + "node_modules/lodash/_baseFindIndex.js", + "node_modules/lodash/_baseIsNaN.js", + "node_modules/lodash/_strictIndexOf.js", + "node_modules/lodash/_baseIndexOf.js", + "node_modules/lodash/_arrayIncludes.js", + "node_modules/lodash/_arrayIncludesWith.js", + "node_modules/lodash/noop.js", + "node_modules/lodash/_createSet.js", + "node_modules/lodash/_baseUniq.js", + "node_modules/lodash/uniqBy.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/uniqBy.js?commonjs-es-import", + "node_modules/recharts/es6/util/payload/getUniqPayload.js", + "node_modules/recharts/es6/component/Legend.js", + "node_modules/lodash/_isFlattenable.js", + "node_modules/lodash/_baseFlatten.js", + "node_modules/lodash/_createBaseFor.js", + "node_modules/lodash/_baseFor.js", + "node_modules/lodash/_baseForOwn.js", + "node_modules/lodash/_createBaseEach.js", + "node_modules/lodash/_baseEach.js", + "node_modules/lodash/_baseMap.js", + "node_modules/lodash/_baseSortBy.js", + "node_modules/lodash/_compareAscending.js", + "node_modules/lodash/_compareMultiple.js", + "node_modules/lodash/_baseOrderBy.js", + "node_modules/lodash/_apply.js", + "node_modules/lodash/_overRest.js", + "node_modules/lodash/constant.js", + "node_modules/lodash/_defineProperty.js", + "node_modules/lodash/_baseSetToString.js", + "node_modules/lodash/_shortOut.js", + "node_modules/lodash/_setToString.js", + "node_modules/lodash/_baseRest.js", + "node_modules/lodash/_isIterateeCall.js", + "node_modules/lodash/sortBy.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/sortBy.js?commonjs-es-import", + "node_modules/recharts/es6/component/DefaultTooltipContent.js", + "node_modules/recharts/es6/util/tooltip/translate.js", + "node_modules/recharts/es6/component/TooltipBoundingBox.js", + "node_modules/recharts/es6/util/Global.js", + "node_modules/recharts/es6/component/Tooltip.js", + "node_modules/lodash/now.js", + "node_modules/lodash/_trimmedEndIndex.js", + "node_modules/lodash/_baseTrim.js", + "node_modules/lodash/toNumber.js", + "node_modules/lodash/debounce.js", + "node_modules/lodash/throttle.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/throttle.js?commonjs-es-import", + "node_modules/recharts/es6/component/ResponsiveContainer.js", + "node_modules/recharts/es6/component/Cell.js", + "node_modules/recharts/es6/util/DOMUtils.js", + "node_modules/recharts/es6/util/ReduceCSSCalc.js", + "node_modules/recharts/es6/component/Text.js", + "node_modules/d3-array/src/ascending.js", + "node_modules/d3-array/src/descending.js", + "node_modules/d3-array/src/bisector.js", + "node_modules/d3-array/src/number.js", + "node_modules/d3-array/src/bisect.js", + "node_modules/internmap/src/index.js", + "node_modules/d3-array/src/sort.js", + "node_modules/d3-array/src/ticks.js", + "node_modules/d3-array/src/max.js", + "node_modules/d3-array/src/min.js", + "node_modules/d3-array/src/quickselect.js", + "node_modules/d3-array/src/quantile.js", + "node_modules/d3-array/src/range.js", + "node_modules/d3-scale/src/init.js", + "node_modules/d3-scale/src/ordinal.js", + "node_modules/d3-scale/src/band.js", + "node_modules/d3-scale/src/constant.js", + "node_modules/d3-scale/src/number.js", + "node_modules/d3-scale/src/continuous.js", + "node_modules/d3-format/src/formatDecimal.js", + "node_modules/d3-format/src/exponent.js", + "node_modules/d3-format/src/formatGroup.js", + "node_modules/d3-format/src/formatNumerals.js", + "node_modules/d3-format/src/formatSpecifier.js", + "node_modules/d3-format/src/formatTrim.js", + "node_modules/d3-format/src/formatPrefixAuto.js", + "node_modules/d3-format/src/formatRounded.js", + "node_modules/d3-format/src/formatTypes.js", + "node_modules/d3-format/src/identity.js", + "node_modules/d3-format/src/locale.js", + "node_modules/d3-format/src/defaultLocale.js", + "node_modules/d3-format/src/precisionFixed.js", + "node_modules/d3-format/src/precisionPrefix.js", + "node_modules/d3-format/src/precisionRound.js", + "node_modules/d3-scale/src/tickFormat.js", + "node_modules/d3-scale/src/linear.js", + "node_modules/d3-scale/src/identity.js", + "node_modules/d3-scale/src/nice.js", + "node_modules/d3-scale/src/log.js", + "node_modules/d3-scale/src/symlog.js", + "node_modules/d3-scale/src/pow.js", + "node_modules/d3-scale/src/radial.js", + "node_modules/d3-scale/src/quantile.js", + "node_modules/d3-scale/src/quantize.js", + "node_modules/d3-scale/src/threshold.js", + "node_modules/d3-time/src/interval.js", + "node_modules/d3-time/src/millisecond.js", + "node_modules/d3-time/src/duration.js", + "node_modules/d3-time/src/second.js", + "node_modules/d3-time/src/minute.js", + "node_modules/d3-time/src/hour.js", + "node_modules/d3-time/src/day.js", + "node_modules/d3-time/src/week.js", + "node_modules/d3-time/src/month.js", + "node_modules/d3-time/src/year.js", + "node_modules/d3-time/src/ticks.js", + "node_modules/d3-time-format/src/locale.js", + "node_modules/d3-time-format/src/defaultLocale.js", + "node_modules/d3-scale/src/time.js", + "node_modules/d3-scale/src/utcTime.js", + "node_modules/d3-scale/src/sequential.js", + "node_modules/d3-scale/src/sequentialQuantile.js", + "node_modules/d3-scale/src/diverging.js", + "node_modules/victory-vendor/es/d3-scale.js", + "node_modules/lodash/_baseExtremum.js", + "node_modules/lodash/_baseGt.js", + "node_modules/lodash/max.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/max.js?commonjs-es-import", + "node_modules/lodash/_baseLt.js", + "node_modules/lodash/min.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/min.js?commonjs-es-import", + "node_modules/lodash/map.js", + "node_modules/lodash/flatMap.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/flatMap.js?commonjs-es-import", + "node_modules/lodash/isEqual.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isEqual.js?commonjs-es-import", + "node_modules/decimal.js-light/decimal.mjs", + "node_modules/recharts-scale/es6/util/utils.js", + "node_modules/recharts-scale/es6/util/arithmetic.js", + "node_modules/recharts-scale/es6/getNiceTickValues.js", + "node_modules/tiny-invariant/dist/esm/tiny-invariant.js", + "node_modules/recharts/es6/cartesian/ErrorBar.js", + "node_modules/recharts/es6/util/getLegendProps.js", + "node_modules/recharts/es6/util/ChartUtils.js", + "node_modules/recharts/es6/util/PolarUtils.js", + "node_modules/recharts/es6/component/Label.js", + "node_modules/lodash/last.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/last.js?commonjs-es-import", + "node_modules/recharts/es6/component/LabelList.js", + "node_modules/recharts/es6/shape/Sector.js", + "node_modules/recharts/es6/shape/Curve.js", + "node_modules/fast-equals/dist/es/index.mjs", + "node_modules/react-smooth/es6/setRafTimeout.js", + "node_modules/react-smooth/es6/AnimateManager.js", + "node_modules/react-smooth/es6/util.js", + "node_modules/react-smooth/es6/easing.js", + "node_modules/react-smooth/es6/configUpdate.js", + "node_modules/react-smooth/es6/Animate.js", + "node_modules/recharts/es6/shape/Rectangle.js", + "node_modules/recharts/es6/shape/Polygon.js", + "node_modules/recharts/es6/shape/Dot.js", + "node_modules/recharts/es6/shape/Cross.js", + "node_modules/lodash/maxBy.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/maxBy.js?commonjs-es-import", + "node_modules/lodash/minBy.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/minBy.js?commonjs-es-import", + "node_modules/recharts/es6/polar/PolarRadiusAxis.js", + "node_modules/recharts/es6/polar/PolarAngleAxis.js", + "node_modules/lodash/_getPrototype.js", + "node_modules/lodash/isPlainObject.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isPlainObject.js?commonjs-es-import", + "node_modules/lodash/isBoolean.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isBoolean.js?commonjs-es-import", + "node_modules/recharts/es6/shape/Trapezoid.js", + "node_modules/recharts/es6/util/ActiveShapeUtils.js", + "node_modules/lodash/_baseRange.js", + "node_modules/lodash/toFinite.js", + "node_modules/lodash/_createRange.js", + "node_modules/lodash/range.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/range.js?commonjs-es-import", + "node_modules/recharts/es6/util/CssPrefixUtils.js", + "node_modules/recharts/es6/cartesian/Brush.js", + "node_modules/lodash/_baseSome.js", + "node_modules/lodash/some.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/some.js?commonjs-es-import", + "node_modules/recharts/es6/util/IfOverflowMatches.js", + "node_modules/lodash/_baseAssignValue.js", + "node_modules/lodash/mapValues.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/mapValues.js?commonjs-es-import", + "node_modules/lodash/_arrayEvery.js", + "node_modules/lodash/_baseEvery.js", + "node_modules/lodash/every.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/every.js?commonjs-es-import", + "node_modules/recharts/es6/util/BarUtils.js", + "node_modules/recharts/es6/cartesian/Bar.js", + "node_modules/recharts/es6/util/CartesianUtils.js", + "node_modules/lodash/_createFind.js", + "node_modules/lodash/toInteger.js", + "node_modules/lodash/findIndex.js", + "node_modules/lodash/find.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/find.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/memoize.js?commonjs-es-import", + "node_modules/recharts/es6/util/calculateViewBox.js", + "node_modules/recharts/es6/context/chartLayoutContext.js", + "node_modules/recharts/es6/cartesian/ReferenceLine.js", + "node_modules/recharts/es6/cartesian/ReferenceDot.js", + "node_modules/recharts/es6/cartesian/ReferenceArea.js", + "node_modules/recharts/es6/util/DetectReferenceElementsDomain.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/eventemitter3/index.js?commonjs-module", + "node_modules/eventemitter3/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/eventemitter3/index.js?commonjs-es-import", + "node_modules/recharts/es6/util/Events.js", + "node_modules/recharts/es6/chart/AccessibilityManager.js", + "node_modules/recharts/es6/util/isDomainSpecifiedByUser.js", + "node_modules/recharts/es6/util/cursor/getCursorRectangle.js", + "node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js", + "node_modules/recharts/es6/util/cursor/getCursorPoints.js", + "node_modules/recharts/es6/component/Cursor.js", + "node_modules/recharts/es6/chart/generateCategoricalChart.js" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_generateCategoricalChart-DZci5nEc.js" + }, + { + "file": "assets/circle-alert-ChwbUVv0.js", + "bytes": 246, + "gzipBytes": 184, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-alert.js" + ], + "staticMembership": [ + "/app/attack", + "/app/admin" + ], + "dynamicEntry": "_circle-alert-ChwbUVv0.js" + }, + { + "file": "assets/rotate-ccw-g7oK_yc2.js", + "bytes": 196, + "gzipBytes": 179, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/rotate-ccw.js" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_rotate-ccw-g7oK_yc2.js" + }, + { + "file": "assets/SharedPage-Btv4hRK8.js", + "bytes": 3252, + "gzipBytes": 1301, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/badge-DOuwE0tA.js", + "assets/date-format-CG2nx3lR.js", + "assets/download-7v2KEx-L.js", + "assets/external-link-hWs27zxC.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/share-2.js", + "src/pages/SharedPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/SharedPage.tsx" + }, + { + "file": "assets/external-link-hWs27zxC.js", + "bytes": 247, + "gzipBytes": 196, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/external-link.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_external-link-hWs27zxC.js" + }, + { + "file": "assets/FlowchartPage-BJaDG0uJ.js", + "bytes": 50503, + "gzipBytes": 16770, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/badge-DOuwE0tA.js", + "assets/input-BRlCt18M.js", + "assets/textarea-BxuDaNfy.js", + "assets/alert-dialog-DDhjApTe.js", + "assets/index-DmtgVR0T.js", + "assets/trash-2-rdeQ5AHC.js", + "assets/save-VRo3zf0k.js", + "assets/plus-B_HHoAv5.js", + "assets/download-7v2KEx-L.js", + "assets/target-DmELU7_M.js", + "assets/shield-DsgIRl3K.js", + "assets/triangle-alert-DAkLJ_Hs.js", + "assets/string-CvptbcKz.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/folder-open.js", + "node_modules/lucide-react/dist/esm/icons/layout-grid.js", + "node_modules/@reactflow/minimap/node_modules/zustand/esm/shallow.mjs", + "node_modules/@reactflow/minimap/dist/esm/index.mjs", + "node_modules/@reactflow/controls/node_modules/zustand/esm/shallow.mjs", + "node_modules/@reactflow/controls/dist/esm/index.mjs", + "node_modules/@reactflow/background/node_modules/zustand/esm/shallow.mjs", + "node_modules/@reactflow/background/dist/esm/index.mjs", + "node_modules/reactflow/dist/style.css", + "node_modules/html-to-image/es/util.js", + "node_modules/html-to-image/es/clone-pseudos.js", + "node_modules/html-to-image/es/mimes.js", + "node_modules/html-to-image/es/dataurl.js", + "node_modules/html-to-image/es/clone-node.js", + "node_modules/html-to-image/es/embed-resources.js", + "node_modules/html-to-image/es/embed-images.js", + "node_modules/html-to-image/es/apply-style.js", + "node_modules/html-to-image/es/embed-webfonts.js", + "node_modules/html-to-image/es/index.js", + "node_modules/date-fns/toDate.mjs", + "node_modules/date-fns/constructFrom.mjs", + "node_modules/date-fns/constants.mjs", + "node_modules/date-fns/_lib/defaultOptions.mjs", + "node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs", + "node_modules/date-fns/compareAsc.mjs", + "node_modules/date-fns/constructNow.mjs", + "node_modules/date-fns/differenceInCalendarMonths.mjs", + "node_modules/date-fns/_lib/getRoundingMethod.mjs", + "node_modules/date-fns/differenceInMilliseconds.mjs", + "node_modules/date-fns/endOfDay.mjs", + "node_modules/date-fns/endOfMonth.mjs", + "node_modules/date-fns/isLastDayOfMonth.mjs", + "node_modules/date-fns/differenceInMonths.mjs", + "node_modules/date-fns/differenceInSeconds.mjs", + "node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs", + "node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs", + "node_modules/date-fns/locale/en-US/_lib/formatLong.mjs", + "node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs", + "node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs", + "node_modules/date-fns/locale/en-US/_lib/localize.mjs", + "node_modules/date-fns/locale/_lib/buildMatchFn.mjs", + "node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs", + "node_modules/date-fns/locale/en-US/_lib/match.mjs", + "node_modules/date-fns/locale/en-US.mjs", + "node_modules/date-fns/formatDistance.mjs", + "node_modules/date-fns/formatDistanceToNow.mjs", + "src/pages/FlowchartPage.tsx" + ], + "staticMembership": [ + "/app/flowchart" + ], + "dynamicEntry": "src/pages/FlowchartPage.tsx" + }, + { + "file": "assets/index-DmtgVR0T.js", + "bytes": 127878, + "gzipBytes": 41134, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/string-CvptbcKz.js" + ], + "modules": [ + "node_modules/classcat/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/shim/with-selector.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/shim/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js?commonjs-exports", + "node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js", + "node_modules/use-sync-external-store/shim/index.js", + "node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js", + "node_modules/use-sync-external-store/shim/with-selector.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/shim/with-selector.js?commonjs-es-import", + "node_modules/@reactflow/core/node_modules/zustand/esm/vanilla.mjs", + "node_modules/@reactflow/core/node_modules/zustand/esm/traditional.mjs", + "node_modules/@reactflow/core/node_modules/zustand/esm/shallow.mjs", + "node_modules/d3-dispatch/src/dispatch.js", + "node_modules/d3-selection/src/namespaces.js", + "node_modules/d3-selection/src/namespace.js", + "node_modules/d3-selection/src/creator.js", + "node_modules/d3-selection/src/selector.js", + "node_modules/d3-selection/src/selection/select.js", + "node_modules/d3-selection/src/array.js", + "node_modules/d3-selection/src/selectorAll.js", + "node_modules/d3-selection/src/selection/selectAll.js", + "node_modules/d3-selection/src/matcher.js", + "node_modules/d3-selection/src/selection/selectChild.js", + "node_modules/d3-selection/src/selection/selectChildren.js", + "node_modules/d3-selection/src/selection/filter.js", + "node_modules/d3-selection/src/selection/sparse.js", + "node_modules/d3-selection/src/selection/enter.js", + "node_modules/d3-selection/src/constant.js", + "node_modules/d3-selection/src/selection/data.js", + "node_modules/d3-selection/src/selection/exit.js", + "node_modules/d3-selection/src/selection/join.js", + "node_modules/d3-selection/src/selection/merge.js", + "node_modules/d3-selection/src/selection/order.js", + "node_modules/d3-selection/src/selection/sort.js", + "node_modules/d3-selection/src/selection/call.js", + "node_modules/d3-selection/src/selection/nodes.js", + "node_modules/d3-selection/src/selection/node.js", + "node_modules/d3-selection/src/selection/size.js", + "node_modules/d3-selection/src/selection/empty.js", + "node_modules/d3-selection/src/selection/each.js", + "node_modules/d3-selection/src/selection/attr.js", + "node_modules/d3-selection/src/window.js", + "node_modules/d3-selection/src/selection/style.js", + "node_modules/d3-selection/src/selection/property.js", + "node_modules/d3-selection/src/selection/classed.js", + "node_modules/d3-selection/src/selection/text.js", + "node_modules/d3-selection/src/selection/html.js", + "node_modules/d3-selection/src/selection/raise.js", + "node_modules/d3-selection/src/selection/lower.js", + "node_modules/d3-selection/src/selection/append.js", + "node_modules/d3-selection/src/selection/insert.js", + "node_modules/d3-selection/src/selection/remove.js", + "node_modules/d3-selection/src/selection/clone.js", + "node_modules/d3-selection/src/selection/datum.js", + "node_modules/d3-selection/src/selection/on.js", + "node_modules/d3-selection/src/selection/dispatch.js", + "node_modules/d3-selection/src/selection/iterator.js", + "node_modules/d3-selection/src/selection/index.js", + "node_modules/d3-selection/src/select.js", + "node_modules/d3-selection/src/sourceEvent.js", + "node_modules/d3-selection/src/pointer.js", + "node_modules/d3-drag/src/noevent.js", + "node_modules/d3-drag/src/nodrag.js", + "node_modules/d3-drag/src/constant.js", + "node_modules/d3-drag/src/event.js", + "node_modules/d3-drag/src/drag.js", + "node_modules/d3-interpolate/src/transform/decompose.js", + "node_modules/d3-interpolate/src/transform/parse.js", + "node_modules/d3-interpolate/src/transform/index.js", + "node_modules/d3-interpolate/src/zoom.js", + "node_modules/d3-timer/src/timer.js", + "node_modules/d3-timer/src/timeout.js", + "node_modules/d3-transition/src/transition/schedule.js", + "node_modules/d3-transition/src/interrupt.js", + "node_modules/d3-transition/src/selection/interrupt.js", + "node_modules/d3-transition/src/transition/tween.js", + "node_modules/d3-transition/src/transition/interpolate.js", + "node_modules/d3-transition/src/transition/attr.js", + "node_modules/d3-transition/src/transition/attrTween.js", + "node_modules/d3-transition/src/transition/delay.js", + "node_modules/d3-transition/src/transition/duration.js", + "node_modules/d3-transition/src/transition/ease.js", + "node_modules/d3-transition/src/transition/easeVarying.js", + "node_modules/d3-transition/src/transition/filter.js", + "node_modules/d3-transition/src/transition/merge.js", + "node_modules/d3-transition/src/transition/on.js", + "node_modules/d3-transition/src/transition/remove.js", + "node_modules/d3-transition/src/transition/select.js", + "node_modules/d3-transition/src/transition/selectAll.js", + "node_modules/d3-transition/src/transition/selection.js", + "node_modules/d3-transition/src/transition/style.js", + "node_modules/d3-transition/src/transition/styleTween.js", + "node_modules/d3-transition/src/transition/text.js", + "node_modules/d3-transition/src/transition/textTween.js", + "node_modules/d3-transition/src/transition/transition.js", + "node_modules/d3-transition/src/transition/end.js", + "node_modules/d3-transition/src/transition/index.js", + "node_modules/d3-ease/src/cubic.js", + "node_modules/d3-transition/src/selection/transition.js", + "node_modules/d3-transition/src/selection/index.js", + "node_modules/d3-zoom/src/constant.js", + "node_modules/d3-zoom/src/event.js", + "node_modules/d3-zoom/src/transform.js", + "node_modules/d3-zoom/src/noevent.js", + "node_modules/d3-zoom/src/zoom.js", + "node_modules/@reactflow/core/dist/esm/index.mjs" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart" + ], + "dynamicEntry": "_index-DmtgVR0T.js" + }, + { + "file": "assets/triangle-alert-DAkLJ_Hs.js", + "bytes": 261, + "gzipBytes": 210, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/triangle-alert.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack", + "/app/flowchart" + ], + "dynamicEntry": "_triangle-alert-DAkLJ_Hs.js" + }, + { + "file": "assets/plus-B_HHoAv5.js", + "bytes": 150, + "gzipBytes": 147, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/plus.js" + ], + "staticMembership": [ + "/app/flowchart" + ], + "dynamicEntry": "_plus-B_HHoAv5.js" + }, + { + "file": "assets/save-VRo3zf0k.js", + "bytes": 324, + "gzipBytes": 225, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/save.js" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart" + ], + "dynamicEntry": "_save-VRo3zf0k.js" + }, + { + "file": "assets/target-DmELU7_M.js", + "bytes": 218, + "gzipBytes": 157, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/target.js" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart" + ], + "dynamicEntry": "_target-DmELU7_M.js" + }, + { + "file": "assets/shield-DsgIRl3K.js", + "bytes": 269, + "gzipBytes": 220, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/shield.js" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart", + "/app/admin" + ], + "dynamicEntry": "_shield-DsgIRl3K.js" + }, + { + "file": "assets/alert-dialog-DDhjApTe.js", + "bytes": 3698, + "gzipBytes": 1236, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@radix-ui/react-alert-dialog/dist/index.mjs", + "src/components/ui/alert-dialog.tsx" + ], + "staticMembership": [ + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_alert-dialog-DDhjApTe.js" + }, + { + "file": "assets/trash-2-rdeQ5AHC.js", + "bytes": 354, + "gzipBytes": 244, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/trash-2.js" + ], + "staticMembership": [ + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_trash-2-rdeQ5AHC.js" + }, + { + "file": "assets/string-CvptbcKz.js", + "bytes": 8378, + "gzipBytes": 3585, + "imports": [], + "modules": [ + "node_modules/d3-color/src/define.js", + "node_modules/d3-color/src/color.js", + "node_modules/d3-interpolate/src/constant.js", + "node_modules/d3-interpolate/src/color.js", + "node_modules/d3-interpolate/src/rgb.js", + "node_modules/d3-interpolate/src/number.js", + "node_modules/d3-interpolate/src/string.js" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart", + "/app/admin" + ], + "dynamicEntry": "_string-CvptbcKz.js" + }, + { + "file": "assets/textarea-BxuDaNfy.js", + "bytes": 508, + "gzipBytes": 332, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/components/ui/textarea.tsx" + ], + "staticMembership": [ + "/app/attack", + "/app/flowchart", + "/app/admin" + ], + "dynamicEntry": "_textarea-BxuDaNfy.js" + }, + { + "file": "assets/download-7v2KEx-L.js", + "bytes": 259, + "gzipBytes": 217, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/download.js" + ], + "staticMembership": [ + "/app/flowchart" + ], + "dynamicEntry": "_download-7v2KEx-L.js" + }, + { + "file": "assets/badge-DOuwE0tA.js", + "bytes": 796, + "gzipBytes": 405, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/components/ui/badge.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack", + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_badge-DOuwE0tA.js" + }, + { + "file": "assets/LoginPage-NBbG4nMQ.js", + "bytes": 6791, + "gzipBytes": 2207, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/card-DNuxaVKj.js", + "assets/input-BRlCt18M.js", + "assets/tabs-DSSrXhZO.js" + ], + "modules": [ + "src/pages/LoginPage.tsx" + ], + "staticMembership": [ + "/login" + ], + "dynamicEntry": "src/pages/LoginPage.tsx" + }, + { + "file": "assets/tabs-DSSrXhZO.js", + "bytes": 7560, + "gzipBytes": 2988, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@radix-ui/react-use-is-hydrated/dist/index.mjs", + "node_modules/@radix-ui/react-roving-focus/dist/index.mjs", + "node_modules/@radix-ui/react-tabs/dist/index.mjs", + "src/components/ui/tabs.tsx" + ], + "staticMembership": [ + "/login", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_tabs-DSSrXhZO.js" + }, + { + "file": "assets/input-BRlCt18M.js", + "bytes": 593, + "gzipBytes": 359, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/components/ui/input.tsx" + ], + "staticMembership": [ + "/login", + "/app/generate", + "/app/attack", + "/app/flowchart", + "/app/admin" + ], + "dynamicEntry": "_input-BRlCt18M.js" + }, + { + "file": "assets/card-DNuxaVKj.js", + "bytes": 999, + "gzipBytes": 384, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/components/ui/card.tsx" + ], + "staticMembership": [ + "/login", + "/app", + "/app/generate", + "/app/attack", + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_card-DNuxaVKj.js" + }, + { + "file": "assets/SourcesPage-DSqTyQn_.js", + "bytes": 4766, + "gzipBytes": 2079, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/pages/SourcesPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/SourcesPage.tsx" + }, + { + "file": "assets/NotFound-Dvo2F00T.js", + "bytes": 660, + "gzipBytes": 382, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "src/pages/NotFound.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/NotFound.tsx" + }, + { + "file": "assets/index-KVFzqUoF.js", + "bytes": 2665, + "gzipBytes": 1241, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@vercel/analytics/dist/react/index.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@vercel/analytics/dist/react/index.mjs" + }, + { + "file": "assets/index-D8Vu6iKp.js", + "bytes": 2350, + "gzipBytes": 1106, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@vercel/speed-insights/dist/react/index.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@vercel/speed-insights/dist/react/index.mjs" + }, + { + "file": "assets/web-BHBSb3xY.js", + "bytes": 843, + "gzipBytes": 398, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@capacitor/app/dist/esm/web.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@capacitor/app/dist/esm/web.js" + }, + { + "file": "assets/web-SENkJeDj.js", + "bytes": 899, + "gzipBytes": 457, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@capacitor/haptics/dist/esm/web.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@capacitor/haptics/dist/esm/web.js" + }, + { + "file": "assets/web-CpI6q_hi.js", + "bytes": 380, + "gzipBytes": 251, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@capacitor/browser/dist/esm/web.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@capacitor/browser/dist/esm/web.js" + }, + { + "file": "assets/export-utils-rzho5miz.js", + "bytes": 17952, + "gzipBytes": 4367, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/date-format-CG2nx3lR.js" + ], + "modules": [ + "src/lib/export-utils.ts" + ], + "staticMembership": [], + "dynamicEntry": "src/lib/export-utils.ts" + }, + { + "file": "assets/pdf-export-utils-e2iA0MLn.js", + "bytes": 13432, + "gzipBytes": 4521, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/date-format-CG2nx3lR.js" + ], + "modules": [ + "src/lib/pdf-export-utils.ts" + ], + "staticMembership": [], + "dynamicEntry": "src/lib/pdf-export-utils.ts" + }, + { + "file": "assets/date-format-CG2nx3lR.js", + "bytes": 693, + "gzipBytes": 314, + "imports": [], + "modules": [ + "src/lib/date-format.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_date-format-CG2nx3lR.js" + }, + { + "file": "assets/index-DkAE3Ges.js", + "bytes": 504096, + "gzipBytes": 131454, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/index.js?commonjs-exports", + "node_modules/underscore/modules/_setup.js", + "node_modules/underscore/modules/restArguments.js", + "node_modules/underscore/modules/isObject.js", + "node_modules/underscore/modules/isNull.js", + "node_modules/underscore/modules/isUndefined.js", + "node_modules/underscore/modules/isBoolean.js", + "node_modules/underscore/modules/isElement.js", + "node_modules/underscore/modules/_tagTester.js", + "node_modules/underscore/modules/isString.js", + "node_modules/underscore/modules/isNumber.js", + "node_modules/underscore/modules/isDate.js", + "node_modules/underscore/modules/isRegExp.js", + "node_modules/underscore/modules/isError.js", + "node_modules/underscore/modules/isSymbol.js", + "node_modules/underscore/modules/isArrayBuffer.js", + "node_modules/underscore/modules/isFunction.js", + "node_modules/underscore/modules/_hasObjectTag.js", + "node_modules/underscore/modules/_stringTagBug.js", + "node_modules/underscore/modules/isDataView.js", + "node_modules/underscore/modules/isArray.js", + "node_modules/underscore/modules/_has.js", + "node_modules/underscore/modules/isArguments.js", + "node_modules/underscore/modules/isFinite.js", + "node_modules/underscore/modules/isNaN.js", + "node_modules/underscore/modules/constant.js", + "node_modules/underscore/modules/_createSizePropertyCheck.js", + "node_modules/underscore/modules/_shallowProperty.js", + "node_modules/underscore/modules/_getByteLength.js", + "node_modules/underscore/modules/_isBufferLike.js", + "node_modules/underscore/modules/isTypedArray.js", + "node_modules/underscore/modules/_getLength.js", + "node_modules/underscore/modules/_collectNonEnumProps.js", + "node_modules/underscore/modules/keys.js", + "node_modules/underscore/modules/isEmpty.js", + "node_modules/underscore/modules/isMatch.js", + "node_modules/underscore/modules/underscore.js", + "node_modules/underscore/modules/_toBufferView.js", + "node_modules/underscore/modules/isEqual.js", + "node_modules/underscore/modules/allKeys.js", + "node_modules/underscore/modules/_methodFingerprint.js", + "node_modules/underscore/modules/isMap.js", + "node_modules/underscore/modules/isWeakMap.js", + "node_modules/underscore/modules/isSet.js", + "node_modules/underscore/modules/isWeakSet.js", + "node_modules/underscore/modules/values.js", + "node_modules/underscore/modules/pairs.js", + "node_modules/underscore/modules/invert.js", + "node_modules/underscore/modules/functions.js", + "node_modules/underscore/modules/_createAssigner.js", + "node_modules/underscore/modules/extend.js", + "node_modules/underscore/modules/extendOwn.js", + "node_modules/underscore/modules/defaults.js", + "node_modules/underscore/modules/_baseCreate.js", + "node_modules/underscore/modules/create.js", + "node_modules/underscore/modules/clone.js", + "node_modules/underscore/modules/tap.js", + "node_modules/underscore/modules/toPath.js", + "node_modules/underscore/modules/_toPath.js", + "node_modules/underscore/modules/_deepGet.js", + "node_modules/underscore/modules/get.js", + "node_modules/underscore/modules/has.js", + "node_modules/underscore/modules/identity.js", + "node_modules/underscore/modules/matcher.js", + "node_modules/underscore/modules/property.js", + "node_modules/underscore/modules/_optimizeCb.js", + "node_modules/underscore/modules/_baseIteratee.js", + "node_modules/underscore/modules/iteratee.js", + "node_modules/underscore/modules/_cb.js", + "node_modules/underscore/modules/mapObject.js", + "node_modules/underscore/modules/noop.js", + "node_modules/underscore/modules/propertyOf.js", + "node_modules/underscore/modules/times.js", + "node_modules/underscore/modules/random.js", + "node_modules/underscore/modules/now.js", + "node_modules/underscore/modules/_createEscaper.js", + "node_modules/underscore/modules/_escapeMap.js", + "node_modules/underscore/modules/escape.js", + "node_modules/underscore/modules/_unescapeMap.js", + "node_modules/underscore/modules/unescape.js", + "node_modules/underscore/modules/templateSettings.js", + "node_modules/underscore/modules/template.js", + "node_modules/underscore/modules/result.js", + "node_modules/underscore/modules/uniqueId.js", + "node_modules/underscore/modules/chain.js", + "node_modules/underscore/modules/_executeBound.js", + "node_modules/underscore/modules/partial.js", + "node_modules/underscore/modules/bind.js", + "node_modules/underscore/modules/_isArrayLike.js", + "node_modules/underscore/modules/_flatten.js", + "node_modules/underscore/modules/bindAll.js", + "node_modules/underscore/modules/memoize.js", + "node_modules/underscore/modules/delay.js", + "node_modules/underscore/modules/defer.js", + "node_modules/underscore/modules/throttle.js", + "node_modules/underscore/modules/debounce.js", + "node_modules/underscore/modules/wrap.js", + "node_modules/underscore/modules/negate.js", + "node_modules/underscore/modules/compose.js", + "node_modules/underscore/modules/after.js", + "node_modules/underscore/modules/before.js", + "node_modules/underscore/modules/once.js", + "node_modules/underscore/modules/findKey.js", + "node_modules/underscore/modules/_createPredicateIndexFinder.js", + "node_modules/underscore/modules/findIndex.js", + "node_modules/underscore/modules/findLastIndex.js", + "node_modules/underscore/modules/sortedIndex.js", + "node_modules/underscore/modules/_createIndexFinder.js", + "node_modules/underscore/modules/indexOf.js", + "node_modules/underscore/modules/lastIndexOf.js", + "node_modules/underscore/modules/find.js", + "node_modules/underscore/modules/findWhere.js", + "node_modules/underscore/modules/each.js", + "node_modules/underscore/modules/map.js", + "node_modules/underscore/modules/_createReduce.js", + "node_modules/underscore/modules/reduce.js", + "node_modules/underscore/modules/reduceRight.js", + "node_modules/underscore/modules/filter.js", + "node_modules/underscore/modules/reject.js", + "node_modules/underscore/modules/every.js", + "node_modules/underscore/modules/some.js", + "node_modules/underscore/modules/contains.js", + "node_modules/underscore/modules/invoke.js", + "node_modules/underscore/modules/pluck.js", + "node_modules/underscore/modules/where.js", + "node_modules/underscore/modules/max.js", + "node_modules/underscore/modules/min.js", + "node_modules/underscore/modules/toArray.js", + "node_modules/underscore/modules/sample.js", + "node_modules/underscore/modules/shuffle.js", + "node_modules/underscore/modules/sortBy.js", + "node_modules/underscore/modules/_group.js", + "node_modules/underscore/modules/groupBy.js", + "node_modules/underscore/modules/indexBy.js", + "node_modules/underscore/modules/countBy.js", + "node_modules/underscore/modules/partition.js", + "node_modules/underscore/modules/size.js", + "node_modules/underscore/modules/_keyInObj.js", + "node_modules/underscore/modules/pick.js", + "node_modules/underscore/modules/omit.js", + "node_modules/underscore/modules/initial.js", + "node_modules/underscore/modules/first.js", + "node_modules/underscore/modules/rest.js", + "node_modules/underscore/modules/last.js", + "node_modules/underscore/modules/compact.js", + "node_modules/underscore/modules/flatten.js", + "node_modules/underscore/modules/difference.js", + "node_modules/underscore/modules/without.js", + "node_modules/underscore/modules/uniq.js", + "node_modules/underscore/modules/union.js", + "node_modules/underscore/modules/intersection.js", + "node_modules/underscore/modules/unzip.js", + "node_modules/underscore/modules/zip.js", + "node_modules/underscore/modules/object.js", + "node_modules/underscore/modules/range.js", + "node_modules/underscore/modules/chunk.js", + "node_modules/underscore/modules/_chainResult.js", + "node_modules/underscore/modules/mixin.js", + "node_modules/underscore/modules/underscore-array-methods.js", + "node_modules/underscore/modules/index.js", + "node_modules/underscore/modules/index-default.js", + "node_modules/underscore/modules/index-all.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/underscore/modules/index-all.js?commonjs-proxy", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/docx-reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/promises.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/bluebird/js/release/promise.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/bluebird/js/release/es5.js?commonjs-module", + "node_modules/bluebird/js/release/es5.js", + "node_modules/bluebird/js/release/util.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/bluebird/js/release/async.js?commonjs-module", + "node_modules/bluebird/js/release/schedule.js", + "node_modules/bluebird/js/release/queue.js", + "node_modules/bluebird/js/release/async.js", + "node_modules/bluebird/js/release/errors.js", + "node_modules/bluebird/js/release/thenables.js", + "node_modules/bluebird/js/release/promise_array.js", + "node_modules/bluebird/js/release/context.js", + "node_modules/bluebird/js/release/debuggability.js", + "node_modules/bluebird/js/release/finally.js", + "node_modules/bluebird/js/release/catch_filter.js", + "node_modules/bluebird/js/release/nodeback.js", + "node_modules/bluebird/js/release/method.js", + "node_modules/bluebird/js/release/bind.js", + "node_modules/bluebird/js/release/cancel.js", + "node_modules/bluebird/js/release/direct_resolve.js", + "node_modules/bluebird/js/release/synchronous_inspection.js", + "node_modules/bluebird/js/release/join.js", + "node_modules/bluebird/js/release/map.js", + "node_modules/bluebird/js/release/call_get.js", + "node_modules/bluebird/js/release/using.js", + "node_modules/bluebird/js/release/timers.js", + "node_modules/bluebird/js/release/generators.js", + "node_modules/bluebird/js/release/nodeify.js", + "node_modules/bluebird/js/release/promisify.js", + "node_modules/bluebird/js/release/props.js", + "node_modules/bluebird/js/release/race.js", + "node_modules/bluebird/js/release/reduce.js", + "node_modules/bluebird/js/release/settle.js", + "node_modules/bluebird/js/release/some.js", + "node_modules/bluebird/js/release/filter.js", + "node_modules/bluebird/js/release/each.js", + "node_modules/bluebird/js/release/any.js", + "node_modules/bluebird/js/release/promise.js", + "node_modules/mammoth/lib/promises.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/documents.js?commonjs-exports", + "node_modules/mammoth/lib/documents.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/results.js?commonjs-exports", + "node_modules/mammoth/lib/results.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/zipfile.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/base64-js/index.js?commonjs-exports", + "node_modules/base64-js/index.js", + "\u0000commonjs-dynamic-modules", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/jszip/dist/jszip.min.js?commonjs-module", + "node_modules/jszip/dist/jszip.min.js", + "node_modules/mammoth/lib/zipfile.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/office-xml-reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/nodes.js?commonjs-exports", + "node_modules/mammoth/lib/xml/nodes.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/xmldom.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/dom.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/conventions.js?commonjs-exports", + "node_modules/@xmldom/xmldom/lib/conventions.js", + "node_modules/@xmldom/xmldom/lib/dom.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/dom-parser.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/entities.js?commonjs-exports", + "node_modules/@xmldom/xmldom/lib/entities.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/sax.js?commonjs-exports", + "node_modules/@xmldom/xmldom/lib/sax.js", + "node_modules/@xmldom/xmldom/lib/dom-parser.js", + "node_modules/@xmldom/xmldom/lib/index.js", + "node_modules/mammoth/lib/xml/xmldom.js", + "node_modules/mammoth/lib/xml/reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/writer.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/Utility.js?commonjs-exports", + "node_modules/xmlbuilder/lib/Utility.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDocument.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLNode.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLElement.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLAttribute.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLAttribute.js", + "node_modules/xmlbuilder/lib/XMLElement.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLCData.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLCData.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLComment.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLComment.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDeclaration.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDeclaration.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDocType.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDTDAttList.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDTDAttList.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDTDEntity.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDTDEntity.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDTDElement.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDTDElement.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDTDNotation.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDTDNotation.js", + "node_modules/xmlbuilder/lib/XMLDocType.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLRaw.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLRaw.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLText.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLText.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLProcessingInstruction.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDummy.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDummy.js", + "node_modules/xmlbuilder/lib/XMLNode.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLStringifier.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLStringifier.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLStringWriter.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLWriterBase.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLWriterBase.js", + "node_modules/xmlbuilder/lib/XMLStringWriter.js", + "node_modules/xmlbuilder/lib/XMLDocument.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDocumentCB.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDocumentCB.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLStreamWriter.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLStreamWriter.js", + "node_modules/xmlbuilder/lib/index.js", + "node_modules/mammoth/lib/xml/writer.js", + "node_modules/mammoth/lib/xml/index.js", + "node_modules/mammoth/lib/docx/office-xml-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/body-reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/dingbat-to-unicode/dist/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/dingbat-to-unicode/dist/dingbats.js?commonjs-exports", + "node_modules/dingbat-to-unicode/dist/dingbats.js", + "node_modules/dingbat-to-unicode/dist/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/transforms.js?commonjs-exports", + "node_modules/mammoth/lib/transforms.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/uris.js?commonjs-exports", + "node_modules/mammoth/lib/docx/uris.js", + "node_modules/mammoth/lib/docx/body-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/document-xml-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/document-xml-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/relationships-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/relationships-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/content-types-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/content-types-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/numbering-xml.js?commonjs-exports", + "node_modules/mammoth/lib/docx/numbering-xml.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/styles-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/styles-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/notes-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/notes-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/comments-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/comments-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/browser/docx/files.js?commonjs-exports", + "node_modules/mammoth/browser/docx/files.js", + "node_modules/mammoth/lib/docx/docx-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/style-map.js?commonjs-exports", + "node_modules/mammoth/lib/docx/style-map.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/document-to-html.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/styles/html-paths.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/html/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/html/ast.js?commonjs-exports", + "node_modules/mammoth/lib/html/ast.js", + "node_modules/mammoth/lib/html/simplify.js", + "node_modules/mammoth/lib/html/index.js", + "node_modules/mammoth/lib/styles/html-paths.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/images.js?commonjs-exports", + "node_modules/mammoth/lib/images.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/writers/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/writers/html-writer.js?commonjs-exports", + "node_modules/mammoth/lib/writers/html-writer.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/writers/markdown-writer.js?commonjs-exports", + "node_modules/mammoth/lib/writers/markdown-writer.js", + "node_modules/mammoth/lib/writers/index.js", + "node_modules/mammoth/lib/document-to-html.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/raw-text.js?commonjs-exports", + "node_modules/mammoth/lib/raw-text.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/style-reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/parser.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/TokenIterator.js?commonjs-module", + "node_modules/lop/lib/TokenIterator.js", + "node_modules/lop/lib/parser.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/rules.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/option/index.js?commonjs-exports", + "node_modules/option/index.js", + "node_modules/lop/lib/parsing-results.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/errors.js?commonjs-exports", + "node_modules/lop/lib/errors.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/lazy-iterators.js?commonjs-exports", + "node_modules/lop/lib/lazy-iterators.js", + "node_modules/lop/lib/rules.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/StringSource.js?commonjs-module", + "node_modules/lop/lib/StringSource.js", + "node_modules/lop/lib/Token.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/bottom-up.js?commonjs-exports", + "node_modules/lop/lib/bottom-up.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/regex-tokeniser.js?commonjs-exports", + "node_modules/lop/lib/regex-tokeniser.js", + "node_modules/lop/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/styles/document-matchers.js?commonjs-exports", + "node_modules/mammoth/lib/styles/document-matchers.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/styles/parser/tokeniser.js?commonjs-exports", + "node_modules/mammoth/lib/styles/parser/tokeniser.js", + "node_modules/mammoth/lib/style-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/options-reader.js?commonjs-exports", + "node_modules/mammoth/lib/options-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/browser/unzip.js?commonjs-exports", + "node_modules/mammoth/browser/unzip.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/underline.js?commonjs-exports", + "node_modules/mammoth/lib/underline.js", + "node_modules/mammoth/lib/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/index.js?commonjs-es-import" + ], + "staticMembership": [], + "dynamicEntry": "_index-DkAE3Ges.js" + }, + { + "file": "assets/pdf-ClZ_1Nv1.js", + "bytes": 495636, + "gzipBytes": 151463, + "imports": [], + "modules": [ + "node_modules/pdfjs-dist/legacy/build/pdf.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/pdfjs-dist/legacy/build/pdf.mjs" + }, + { + "file": "assets/index-BOF6v8rb.js", + "bytes": 410621, + "gzipBytes": 118834, + "imports": [], + "modules": [ + "node_modules/docx/dist/index.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/docx/dist/index.mjs" + }, + { + "file": "assets/FileSaver.min-DZLZy2z8.js", + "bytes": 3037, + "gzipBytes": 1485, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/file-saver/dist/FileSaver.min.js?commonjs-module", + "node_modules/file-saver/dist/FileSaver.min.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/file-saver/dist/FileSaver.min.js?commonjs-es-import" + ], + "staticMembership": [], + "dynamicEntry": "_FileSaver.min-DZLZy2z8.js" + }, + { + "file": "assets/jspdf.es.min-CWsuy3PZ.js", + "bytes": 386191, + "gzipBytes": 126389, + "imports": [ + "assets/index-tRveWWC9.js" + ], + "modules": [ + "node_modules/@babel/runtime/helpers/esm/typeof.js", + "node_modules/fflate/esm/browser.js", + "node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js", + "node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js", + "node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js", + "node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js", + "node_modules/@babel/runtime/helpers/esm/nonIterableRest.js", + "node_modules/@babel/runtime/helpers/esm/slicedToArray.js", + "node_modules/iobuffer/lib-esm/text.js", + "node_modules/iobuffer/lib-esm/IOBuffer.js", + "node_modules/pako/dist/pako.esm.mjs", + "node_modules/fast-png/lib-esm/helpers/crc.js", + "node_modules/fast-png/lib-esm/helpers/unfilter.js", + "node_modules/fast-png/lib-esm/helpers/applyUnfilter.js", + "node_modules/fast-png/lib-esm/helpers/decodeInterlaceAdam7.js", + "node_modules/fast-png/lib-esm/helpers/decodeInterlaceNull.js", + "node_modules/fast-png/lib-esm/helpers/signature.js", + "node_modules/fast-png/lib-esm/helpers/text.js", + "node_modules/fast-png/lib-esm/internalTypes.js", + "node_modules/fast-png/lib-esm/PngDecoder.js", + "node_modules/fast-png/lib-esm/types.js", + "node_modules/fast-png/lib-esm/index.js", + "node_modules/jspdf/dist/jspdf.es.min.js" + ], + "staticMembership": [], + "dynamicEntry": "_jspdf.es.min-CWsuy3PZ.js" + }, + { + "file": "assets/jspdf.plugin.autotable-BBLUVd7n.js", + "bytes": 30934, + "gzipBytes": 9870, + "imports": [], + "modules": [ + "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs" + }, + { + "file": "assets/html2canvas.esm-DXEQVQnt.js", + "bytes": 201041, + "gzipBytes": 47431, + "imports": [], + "modules": [ + "node_modules/html2canvas/dist/html2canvas.esm.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/html2canvas/dist/html2canvas.esm.js" + }, + { + "file": "assets/purify.es-4eNOHKSq.js", + "bytes": 28741, + "gzipBytes": 11017, + "imports": [], + "modules": [ + "node_modules/dompurify/dist/purify.es.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/dompurify/dist/purify.es.mjs" + }, + { + "file": "assets/index.es-4Ssukks_.js", + "bytes": 158950, + "gzipBytes": 53058, + "imports": [ + "assets/index-tRveWWC9.js", + "assets/jspdf.es.min-CWsuy3PZ.js" + ], + "modules": [ + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.constructor.js?commonjs-exports", + "node_modules/core-js/internals/global-this.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-get-own-property-descriptor.js?commonjs-exports", + "node_modules/core-js/internals/fails.js", + "node_modules/core-js/internals/descriptors.js", + "node_modules/core-js/internals/function-bind-native.js", + "node_modules/core-js/internals/function-call.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-property-is-enumerable.js?commonjs-exports", + "node_modules/core-js/internals/object-property-is-enumerable.js", + "node_modules/core-js/internals/create-property-descriptor.js", + "node_modules/core-js/internals/function-uncurry-this.js", + "node_modules/core-js/internals/classof-raw.js", + "node_modules/core-js/internals/indexed-object.js", + "node_modules/core-js/internals/is-null-or-undefined.js", + "node_modules/core-js/internals/require-object-coercible.js", + "node_modules/core-js/internals/to-indexed-object.js", + "node_modules/core-js/internals/is-callable.js", + "node_modules/core-js/internals/is-object.js", + "node_modules/core-js/internals/get-built-in.js", + "node_modules/core-js/internals/object-is-prototype-of.js", + "node_modules/core-js/internals/environment-user-agent.js", + "node_modules/core-js/internals/environment-v8-version.js", + "node_modules/core-js/internals/symbol-constructor-detection.js", + "node_modules/core-js/internals/use-symbol-as-uid.js", + "node_modules/core-js/internals/is-symbol.js", + "node_modules/core-js/internals/try-to-string.js", + "node_modules/core-js/internals/a-callable.js", + "node_modules/core-js/internals/get-method.js", + "node_modules/core-js/internals/ordinary-to-primitive.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/shared-store.js?commonjs-module", + "node_modules/core-js/internals/is-pure.js", + "node_modules/core-js/internals/define-global-property.js", + "node_modules/core-js/internals/shared-store.js", + "node_modules/core-js/internals/shared.js", + "node_modules/core-js/internals/to-object.js", + "node_modules/core-js/internals/has-own-property.js", + "node_modules/core-js/internals/uid.js", + "node_modules/core-js/internals/well-known-symbol.js", + "node_modules/core-js/internals/to-primitive.js", + "node_modules/core-js/internals/to-property-key.js", + "node_modules/core-js/internals/document-create-element.js", + "node_modules/core-js/internals/ie8-dom-define.js", + "node_modules/core-js/internals/object-get-own-property-descriptor.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-define-property.js?commonjs-exports", + "node_modules/core-js/internals/v8-prototype-define-bug.js", + "node_modules/core-js/internals/an-object.js", + "node_modules/core-js/internals/object-define-property.js", + "node_modules/core-js/internals/create-non-enumerable-property.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/make-built-in.js?commonjs-module", + "node_modules/core-js/internals/function-name.js", + "node_modules/core-js/internals/inspect-source.js", + "node_modules/core-js/internals/weak-map-basic-detection.js", + "node_modules/core-js/internals/shared-key.js", + "node_modules/core-js/internals/hidden-keys.js", + "node_modules/core-js/internals/internal-state.js", + "node_modules/core-js/internals/make-built-in.js", + "node_modules/core-js/internals/define-built-in.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-get-own-property-names.js?commonjs-exports", + "node_modules/core-js/internals/math-trunc.js", + "node_modules/core-js/internals/to-integer-or-infinity.js", + "node_modules/core-js/internals/to-absolute-index.js", + "node_modules/core-js/internals/to-length.js", + "node_modules/core-js/internals/length-of-array-like.js", + "node_modules/core-js/internals/array-includes.js", + "node_modules/core-js/internals/object-keys-internal.js", + "node_modules/core-js/internals/enum-bug-keys.js", + "node_modules/core-js/internals/object-get-own-property-names.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-get-own-property-symbols.js?commonjs-exports", + "node_modules/core-js/internals/object-get-own-property-symbols.js", + "node_modules/core-js/internals/own-keys.js", + "node_modules/core-js/internals/copy-constructor-properties.js", + "node_modules/core-js/internals/is-forced.js", + "node_modules/core-js/internals/export.js", + "node_modules/core-js/internals/environment.js", + "node_modules/core-js/internals/environment-is-node.js", + "node_modules/core-js/internals/path.js", + "node_modules/core-js/internals/function-uncurry-this-accessor.js", + "node_modules/core-js/internals/is-possible-prototype.js", + "node_modules/core-js/internals/a-possible-prototype.js", + "node_modules/core-js/internals/object-set-prototype-of.js", + "node_modules/core-js/internals/set-to-string-tag.js", + "node_modules/core-js/internals/define-built-in-accessor.js", + "node_modules/core-js/internals/set-species.js", + "node_modules/core-js/internals/an-instance.js", + "node_modules/core-js/internals/to-string-tag-support.js", + "node_modules/core-js/internals/classof.js", + "node_modules/core-js/internals/is-constructor.js", + "node_modules/core-js/internals/a-constructor.js", + "node_modules/core-js/internals/species-constructor.js", + "node_modules/core-js/internals/function-apply.js", + "node_modules/core-js/internals/function-uncurry-this-clause.js", + "node_modules/core-js/internals/function-bind-context.js", + "node_modules/core-js/internals/html.js", + "node_modules/core-js/internals/array-slice.js", + "node_modules/core-js/internals/validate-arguments-length.js", + "node_modules/core-js/internals/environment-is-ios.js", + "node_modules/core-js/internals/task.js", + "node_modules/core-js/internals/safe-get-built-in.js", + "node_modules/core-js/internals/queue.js", + "node_modules/core-js/internals/environment-is-ios-pebble.js", + "node_modules/core-js/internals/environment-is-webos-webkit.js", + "node_modules/core-js/internals/microtask.js", + "node_modules/core-js/internals/host-report-errors.js", + "node_modules/core-js/internals/perform.js", + "node_modules/core-js/internals/promise-native-constructor.js", + "node_modules/core-js/internals/promise-constructor-detection.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/new-promise-capability.js?commonjs-exports", + "node_modules/core-js/internals/new-promise-capability.js", + "node_modules/core-js/modules/es.promise.constructor.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.all.js?commonjs-exports", + "node_modules/core-js/internals/iterators.js", + "node_modules/core-js/internals/is-array-iterator-method.js", + "node_modules/core-js/internals/get-iterator-method-internal.js", + "node_modules/core-js/internals/get-iterator-internal.js", + "node_modules/core-js/internals/iterator-close.js", + "node_modules/core-js/internals/iterate.js", + "node_modules/core-js/internals/check-correctness-of-iteration.js", + "node_modules/core-js/internals/promise-statics-incorrect-iteration.js", + "node_modules/core-js/modules/es.promise.all.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.catch.js?commonjs-exports", + "node_modules/core-js/modules/es.promise.catch.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.race.js?commonjs-exports", + "node_modules/core-js/modules/es.promise.race.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.reject.js?commonjs-exports", + "node_modules/core-js/modules/es.promise.reject.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.resolve.js?commonjs-exports", + "node_modules/core-js/internals/promise-resolve.js", + "node_modules/core-js/modules/es.promise.resolve.js", + "node_modules/core-js/modules/es.promise.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.js?commonjs-es-import", + "node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.match.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.regexp.exec.js?commonjs-exports", + "node_modules/core-js/internals/to-string.js", + "node_modules/core-js/internals/regexp-flags.js", + "node_modules/core-js/internals/regexp-sticky-helpers.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-define-properties.js?commonjs-exports", + "node_modules/core-js/internals/object-keys.js", + "node_modules/core-js/internals/object-define-properties.js", + "node_modules/core-js/internals/object-create.js", + "node_modules/core-js/internals/regexp-unsupported-dot-all.js", + "node_modules/core-js/internals/regexp-unsupported-ncg.js", + "node_modules/core-js/internals/regexp-exec.js", + "node_modules/core-js/modules/es.regexp.exec.js", + "node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js", + "node_modules/core-js/internals/string-multibyte.js", + "node_modules/core-js/internals/advance-string-index.js", + "node_modules/core-js/internals/regexp-flags-detection.js", + "node_modules/core-js/internals/regexp-get-flags.js", + "node_modules/core-js/internals/regexp-exec-abstract.js", + "node_modules/core-js/modules/es.string.match.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.match.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.replace.js?commonjs-exports", + "node_modules/core-js/internals/get-substitution.js", + "node_modules/core-js/modules/es.string.replace.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.replace.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.starts-with.js?commonjs-exports", + "node_modules/core-js/internals/is-regexp.js", + "node_modules/core-js/internals/not-a-regexp.js", + "node_modules/core-js/internals/correct-is-regexp-logic.js", + "node_modules/core-js/modules/es.string.starts-with.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.starts-with.js?commonjs-es-import", + "node_modules/core-js/internals/add-to-unscopables.js", + "node_modules/core-js/internals/correct-prototype-getter.js", + "node_modules/core-js/internals/object-get-prototype-of.js", + "node_modules/core-js/internals/iterators-core.js", + "node_modules/core-js/internals/iterator-create-constructor.js", + "node_modules/core-js/internals/iterator-define.js", + "node_modules/core-js/internals/create-iter-result-object.js", + "node_modules/core-js/modules/es.array.iterator.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.iterator.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/web.dom-collections.iterator.js?commonjs-exports", + "node_modules/core-js/internals/dom-iterables.js", + "node_modules/core-js/internals/dom-token-list-prototype.js", + "node_modules/core-js/modules/web.dom-collections.iterator.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/web.dom-collections.iterator.js?commonjs-es-import", + "node_modules/@babel/runtime/helpers/esm/toPrimitive.js", + "node_modules/@babel/runtime/helpers/esm/toPropertyKey.js", + "node_modules/@babel/runtime/helpers/esm/defineProperty.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.reduce.js?commonjs-exports", + "node_modules/core-js/internals/array-reduce.js", + "node_modules/core-js/internals/array-method-is-strict.js", + "node_modules/core-js/modules/es.array.reduce.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.reduce.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.ends-with.js?commonjs-exports", + "node_modules/core-js/modules/es.string.ends-with.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.ends-with.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.split.js?commonjs-exports", + "node_modules/core-js/modules/es.string.split.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.split.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/raf/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/performance-now/lib/performance-now.js?commonjs-module", + "node_modules/performance-now/lib/performance-now.js", + "node_modules/raf/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/raf/index.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.trim.js?commonjs-exports", + "node_modules/core-js/internals/whitespaces.js", + "node_modules/core-js/internals/string-trim.js", + "node_modules/core-js/internals/string-trim-forced.js", + "node_modules/core-js/modules/es.string.trim.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.trim.js?commonjs-es-import", + "node_modules/rgbcolor/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/rgbcolor/index.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.index-of.js?commonjs-exports", + "node_modules/core-js/modules/es.array.index-of.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.index-of.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.includes.js?commonjs-exports", + "node_modules/core-js/modules/es.string.includes.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.includes.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.reverse.js?commonjs-exports", + "node_modules/core-js/internals/is-array.js", + "node_modules/core-js/modules/es.array.reverse.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.reverse.js?commonjs-es-import", + "node_modules/svg-pathdata/lib/SVGPathData.module.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.regexp.to-string.js?commonjs-exports", + "node_modules/core-js/modules/es.regexp.to-string.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.regexp.to-string.js?commonjs-es-import", + "node_modules/stackblur-canvas/dist/stackblur-es.js", + "node_modules/canvg/lib/index.es.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/canvg/lib/index.es.js" + } + ] + } +} diff --git a/docs/performance/smooth-navigation-baseline/task-10-after-final.json b/docs/performance/smooth-navigation-baseline/task-10-after-final.json new file mode 100644 index 000000000..613888f46 --- /dev/null +++ b/docs/performance/smooth-navigation-baseline/task-10-after-final.json @@ -0,0 +1,6914 @@ +{ + "metadata": { + "runLabel": "task-10-after-final", + "capturedAt": "2026-09-20T13:36:35.009Z", + "sourceCommit": "b2ba178dee148d06d9bf89793f044add69d705b8", + "harnessCommit": "30b13675fc5104f3a8c2862a832a678fba2c2ede", + "nodeVersion": "v22.23.2", + "npmVersion": "12.0.2", + "browser": { + "name": "Chromium", + "version": "151.0.7922.34", + "executablePath": "/home/codex/.cache/ms-playwright/chromium-1234/chrome-linux64/chrome", + "playwrightVersion": "1.62.1" + }, + "vite": { + "serverMode": "development", + "productionGraphMode": "production", + "version": "7.3.6", + "port": 41919, + "cacheState": "cold routes disable HTTP cache through CDP and block service workers; clicks use a fresh or warmed browser cache" + }, + "profiles": [ + { + "name": "desktop", + "viewport": { + "width": 1280, + "height": 800 + }, + "deviceScaleFactor": 1, + "isMobile": false, + "hasTouch": false, + "userAgent": null, + "networkProfile": "unthrottled loopback", + "cpuProfile": "Chromium default CPU, no emulation" + }, + { + "name": "pixel-5", + "viewport": { + "width": 393, + "height": 727 + }, + "deviceScaleFactor": 2.75, + "isMobile": true, + "hasTouch": true, + "userAgent": "Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Mobile Safari/537.36", + "networkProfile": "unthrottled loopback", + "cpuProfile": "Chromium default CPU, no emulation" + } + ] + }, + "summary": { + "measurements": 38, + "byKind": { + "cold-refresh": 16, + "first-visit-click": 10, + "warm-click": 10, + "delayed-click": 2 + }, + "delayedFilmstrips": [ + "desktop", + "pixel-5" + ] + }, + "results": [ + { + "path": "/", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 2862.7999999523163, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:41919/src/pages/LandingPage.tsx", + "startTime": 2601.2000000476837, + "endTime": 2621.2000000476837, + "duration": 20, + "transferSize": 7643, + "decodedBodySize": 7343 + } + ], + "longTasks": [ + { + "startTime": 2467.600000143051, + "duration": 111 + }, + { + "startTime": 2785, + "duration": 74 + }, + { + "startTime": 2924.4000000953674, + "duration": 74 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 133, + "browserRequestCount": 143, + "externalRequestCount": 10, + "transferredBytes": 7272949, + "encodedBytes": 7233049, + "decodedBytes": 7233049, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 2577, + "loadEventEnd": 2619, + "responseEnd": 1764.6000001430511 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "LandingPage" + }, + { + "path": "/login", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 613, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:41919/src/pages/LoginPage.tsx", + "startTime": 509.90000009536743, + "endTime": 541.7999999523163, + "duration": 31.899999856948853, + "transferSize": 63754, + "decodedBodySize": 63454 + } + ], + "longTasks": [ + { + "startTime": 344.5, + "duration": 130 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 121, + "browserRequestCount": 131, + "externalRequestCount": 10, + "transferredBytes": 6748877, + "encodedBytes": 6712577, + "decodedBytes": 6712577, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 472.90000009536743, + "loadEventEnd": 531.9000000953674, + "responseEnd": 18 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /login", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "LoginPage" + }, + { + "path": "/app", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 683.0999999046326, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:41919/src/pages/HomePage.tsx", + "startTime": 555.0999999046326, + "endTime": 577.3999998569489, + "duration": 22.299999952316284, + "transferSize": 26673, + "decodedBodySize": 26373 + } + ], + "longTasks": [ + { + "startTime": 355.59999990463257, + "duration": 123 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 119, + "browserRequestCount": 140, + "externalRequestCount": 21, + "transferredBytes": 6958628, + "encodedBytes": 6922928, + "decodedBytes": 6922928, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 477.09999990463257, + "loadEventEnd": 616, + "responseEnd": 16.299999952316284 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "HomePage" + }, + { + "path": "/app/generate", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 959.8000001907349, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:41919/src/pages/GeneratePage.tsx", + "startTime": 550.4000000953674, + "endTime": 578.5, + "duration": 28.09999990463257, + "transferSize": 78506, + "decodedBodySize": 78206 + } + ], + "longTasks": [ + { + "startTime": 331.90000009536743, + "duration": 132 + }, + { + "startTime": 878.8000001907349, + "duration": 80 + } + ], + "cls": 0.0028984375, + "layoutShifts": [ + { + "startTime": 989.6000001430511, + "value": 0.0028984375 + } + ], + "requestCount": 162, + "browserRequestCount": 184, + "externalRequestCount": 22, + "transferredBytes": 8584781, + "encodedBytes": 8536181, + "decodedBytes": 8536181, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 461.60000014305115, + "loadEventEnd": 516, + "responseEnd": 15.300000190734863 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/generate", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "GeneratePage" + }, + { + "path": "/app/attack", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 893.7000000476837, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:41919/src/pages/AttackPage.tsx", + "startTime": 509.7999999523163, + "endTime": 533.2000000476837, + "duration": 23.40000009536743, + "transferSize": 33746, + "decodedBodySize": 33446 + } + ], + "longTasks": [ + { + "startTime": 291, + "duration": 130 + }, + { + "startTime": 785.5, + "duration": 102 + } + ], + "cls": 0.01097265625, + "layoutShifts": [ + { + "startTime": 893.4000000953674, + "value": 0.01097265625 + } + ], + "requestCount": 163, + "browserRequestCount": 185, + "externalRequestCount": 22, + "transferredBytes": 8180758, + "encodedBytes": 8131858, + "decodedBytes": 8131858, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 419.10000014305115, + "loadEventEnd": 477.7999999523163, + "responseEnd": 11.600000143051147 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/attack", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AttackPage" + }, + { + "path": "/app/flowchart", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 837.2000000476837, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:41919/src/pages/FlowchartPage.tsx", + "startTime": 596.9000000953674, + "endTime": 631.6000001430511, + "duration": 34.700000047683716, + "transferSize": 205577, + "decodedBodySize": 205277 + } + ], + "longTasks": [ + { + "startTime": 353, + "duration": 147 + }, + { + "startTime": 502, + "duration": 52 + }, + { + "startTime": 778.2000000476837, + "duration": 52 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 129, + "browserRequestCount": 150, + "externalRequestCount": 21, + "transferredBytes": 7730991, + "encodedBytes": 7692291, + "decodedBytes": 7692291, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 498.2000000476837, + "loadEventEnd": 661.9000000953674, + "responseEnd": 14.900000095367432 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/flowchart", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "FlowchartPage" + }, + { + "path": "/app/history", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 796.9000000953674, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:41919/src/pages/HistoryPage.tsx", + "startTime": 597.9000000953674, + "endTime": 631.8000001907349, + "duration": 33.90000009536743, + "transferSize": 143448, + "decodedBodySize": 143148 + } + ], + "longTasks": [ + { + "startTime": 366.30000019073486, + "duration": 138 + } + ], + "cls": 0.010455078125, + "layoutShifts": [ + { + "startTime": 791.8000001907349, + "value": 0.010455078125 + } + ], + "requestCount": 128, + "browserRequestCount": 149, + "externalRequestCount": 21, + "transferredBytes": 7188973, + "encodedBytes": 7150573, + "decodedBytes": 7150573, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 503.2000000476837, + "loadEventEnd": 669.2000000476837, + "responseEnd": 13.100000143051147 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/history", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "HistoryPage" + }, + { + "path": "/app/admin", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 929.2999999523163, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:41919/src/pages/AdminPage.tsx", + "startTime": 630.7999999523163, + "endTime": 685, + "duration": 54.200000047683716, + "transferSize": 394470, + "decodedBodySize": 394170 + } + ], + "longTasks": [ + { + "startTime": 387.09999990463257, + "duration": 151 + }, + { + "startTime": 810.5999999046326, + "duration": 74 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 135, + "browserRequestCount": 161, + "externalRequestCount": 26, + "transferredBytes": 8829151, + "encodedBytes": 8788651, + "decodedBytes": 8788651, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 536.0999999046326, + "loadEventEnd": 702.2999999523163, + "responseEnd": 15.299999952316284 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/admin", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AdminPage" + }, + { + "path": "/app", + "clickTime": 1474, + "measurementBoundary": 1474, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 120.39999985694885, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 1, + "browserRequestCount": 11, + "externalRequestCount": 10, + "transferredBytes": 10223, + "encodedBytes": 9923, + "decodedBytes": 9923, + "sourceWorkExcluded": { + "requestCount": 134, + "longTaskCount": 3, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 436.5, + "loadEventEnd": 499.5, + "responseEnd": 12.899999856948853 + }, + "shellDomIdentitySurvived": null, + "kind": "first-visit-click", + "label": "Landing CTA -> /app", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "HomePage" + }, + { + "path": "/app", + "clickTime": 3528.5, + "measurementBoundary": 3528.5, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 43.700000047683716, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 10, + "externalRequestCount": 10, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 135, + "longTaskCount": 5, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 455.40000009536743, + "loadEventEnd": 521.2000000476837, + "responseEnd": 12.800000190734863 + }, + "shellDomIdentitySurvived": null, + "kind": "warm-click", + "label": "Landing CTA -> /app", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "HomePage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:41919/src/pages/HomePage.tsx", + "startTime": 2038.7000000476837, + "responseEnd": 2046.7000000476837, + "transferSize": 26673, + "encodedBodySize": 26373, + "decodedBodySize": 26373 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/generate", + "clickTime": 945.0999999046326, + "measurementBoundary": 945.0999999046326, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 333.7000000476837, + "routeChunkRequests": [], + "longTasks": [ + { + "startTime": 1180.5999999046326, + "duration": 75 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 43, + "browserRequestCount": 45, + "externalRequestCount": 2, + "transferredBytes": 1574320, + "encodedBytes": 1561420, + "decodedBytes": 1561420, + "sourceWorkExcluded": { + "requestCount": 120, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 650.2999999523163, + "loadEventEnd": 705.5, + "responseEnd": 12 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> Generate", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "GeneratePage" + }, + { + "path": "/app/generate", + "clickTime": 1402.0999999046326, + "measurementBoundary": 1402.0999999046326, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 74.90000009536743, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 11, + "externalRequestCount": 11, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 163, + "longTaskCount": 3, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 442.7000000476837, + "loadEventEnd": 587.5999999046326, + "responseEnd": 12.5 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> Generate", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "GeneratePage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:41919/src/pages/GeneratePage.tsx", + "startTime": 733, + "responseEnd": 742.5999999046326, + "transferSize": 78506, + "encodedBodySize": 78206, + "decodedBodySize": 78206 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/attack", + "clickTime": 1017.5, + "measurementBoundary": 1017.5, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 163.90000009536743, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 7, + "browserRequestCount": 9, + "externalRequestCount": 2, + "transferredBytes": 188075, + "encodedBytes": 185975, + "decodedBytes": 185975, + "sourceWorkExcluded": { + "requestCount": 163, + "longTaskCount": 2, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 417.7000000476837, + "loadEventEnd": 555.9000000953674, + "responseEnd": 11.800000190734863 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Generate -> Attack", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "AttackPage" + }, + { + "path": "/app/attack", + "clickTime": 1777.0999999046326, + "measurementBoundary": 1777.0999999046326, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 65.70000004768372, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 3, + "externalRequestCount": 3, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 170, + "longTaskCount": 4, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 472, + "loadEventEnd": 615.3999998569489, + "responseEnd": 11.399999856948853 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Generate -> Attack", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "AttackPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:41919/src/pages/AttackPage.tsx", + "startTime": 1043.3999998569489, + "responseEnd": 1052.1999998092651, + "transferSize": 33746, + "encodedBodySize": 33446, + "decodedBodySize": 33446 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/flowchart", + "clickTime": 772.4000000953674, + "measurementBoundary": 772.4000000953674, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 188.70000004768372, + "routeChunkRequests": [], + "longTasks": [ + { + "startTime": 891.9000000953674, + "duration": 60 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 10, + "browserRequestCount": 11, + "externalRequestCount": 1, + "transferredBytes": 593459, + "encodedBytes": 590459, + "decodedBytes": 590459, + "sourceWorkExcluded": { + "requestCount": 120, + "longTaskCount": 2, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 464.10000014305115, + "loadEventEnd": 538.5, + "responseEnd": 13.200000047683716 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> Flowchart", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "FlowchartPage" + }, + { + "path": "/app/flowchart", + "clickTime": 1151.2999999523163, + "measurementBoundary": 1151.2999999523163, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 56.59999990463257, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 130, + "longTaskCount": 3, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 409.2000000476837, + "loadEventEnd": 458.09999990463257, + "responseEnd": 10.5 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> Flowchart", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "FlowchartPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:41919/src/pages/FlowchartPage.tsx", + "startTime": 661.5, + "responseEnd": 671.3999998569489, + "transferSize": 205577, + "encodedBodySize": 205277, + "decodedBodySize": 205277 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/history", + "clickTime": 686.5, + "measurementBoundary": 686.5, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 141.29999995231628, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 9, + "browserRequestCount": 10, + "externalRequestCount": 1, + "transferredBytes": 113570, + "encodedBytes": 110870, + "decodedBytes": 110870, + "sourceWorkExcluded": { + "requestCount": 120, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 404.89999985694885, + "loadEventEnd": 550.0999999046326, + "responseEnd": 10.699999809265137 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> History", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "HistoryPage" + }, + { + "path": "/app/history", + "clickTime": 1174.5, + "measurementBoundary": 1174.5, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 28, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 129, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 414.10000014305115, + "loadEventEnd": 566, + "responseEnd": 11.299999952316284 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> History", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "HistoryPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:41919/src/pages/HistoryPage.tsx", + "startTime": 725.4000000953674, + "responseEnd": 735.4000000953674, + "transferSize": 143448, + "encodedBodySize": 143148, + "decodedBodySize": 143148 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 776, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:41919/src/pages/LandingPage.tsx", + "startTime": 498.7000000476837, + "endTime": 515.5, + "duration": 16.799999952316284, + "transferSize": 7643, + "decodedBodySize": 7343 + } + ], + "longTasks": [ + { + "startTime": 327.5, + "duration": 134 + }, + { + "startTime": 686.2000000476837, + "duration": 86 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 133, + "browserRequestCount": 143, + "externalRequestCount": 10, + "transferredBytes": 7272949, + "encodedBytes": 7233049, + "decodedBytes": 7233049, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 459.5, + "loadEventEnd": 517.7999999523163, + "responseEnd": 12 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "LandingPage" + }, + { + "path": "/login", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 597.5, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:41919/src/pages/LoginPage.tsx", + "startTime": 515.1000001430511, + "endTime": 535.5, + "duration": 20.399999856948853, + "transferSize": 63754, + "decodedBodySize": 63454 + } + ], + "longTasks": [ + { + "startTime": 331.2000000476837, + "duration": 143 + }, + { + "startTime": 476, + "duration": 55 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 121, + "browserRequestCount": 131, + "externalRequestCount": 10, + "transferredBytes": 6748877, + "encodedBytes": 6712577, + "decodedBytes": 6712577, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 471.90000009536743, + "loadEventEnd": 534.2000000476837, + "responseEnd": 13.300000190734863 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /login", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "LoginPage" + }, + { + "path": "/app", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 779.7999999523163, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:41919/src/pages/HomePage.tsx", + "startTime": 631.5, + "endTime": 670.5999999046326, + "duration": 39.09999990463257, + "transferSize": 26673, + "decodedBodySize": 26373 + } + ], + "longTasks": [ + { + "startTime": 400.19999980926514, + "duration": 142 + }, + { + "startTime": 597.5, + "duration": 58 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 119, + "browserRequestCount": 140, + "externalRequestCount": 21, + "transferredBytes": 6958628, + "encodedBytes": 6922928, + "decodedBytes": 6922928, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 540.5999999046326, + "loadEventEnd": 724.6999998092651, + "responseEnd": 15.399999856948853 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "HomePage" + }, + { + "path": "/app/generate", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 955.5999999046326, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:41919/src/pages/GeneratePage.tsx", + "startTime": 580.0999999046326, + "endTime": 598.3999998569489, + "duration": 18.299999952316284, + "transferSize": 78506, + "decodedBodySize": 78206 + } + ], + "longTasks": [ + { + "startTime": 349.09999990463257, + "duration": 141 + }, + { + "startTime": 881.2999999523163, + "duration": 73 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 162, + "browserRequestCount": 184, + "externalRequestCount": 22, + "transferredBytes": 8584781, + "encodedBytes": 8536181, + "decodedBytes": 8536181, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 488.89999985694885, + "loadEventEnd": 640.3999998569489, + "responseEnd": 13 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/generate", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "GeneratePage" + }, + { + "path": "/app/attack", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 883.2999999523163, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:41919/src/pages/AttackPage.tsx", + "startTime": 524.8999998569489, + "endTime": 539.0999999046326, + "duration": 14.200000047683716, + "transferSize": 33746, + "decodedBodySize": 33446 + } + ], + "longTasks": [ + { + "startTime": 316.69999980926514, + "duration": 123 + }, + { + "startTime": 808, + "duration": 71 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 163, + "browserRequestCount": 185, + "externalRequestCount": 22, + "transferredBytes": 8180758, + "encodedBytes": 8131858, + "decodedBytes": 8131858, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 438.39999985694885, + "loadEventEnd": 582.5999999046326, + "responseEnd": 12.099999904632568 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/attack", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AttackPage" + }, + { + "path": "/app/flowchart", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 773.3999998569489, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:41919/src/pages/FlowchartPage.tsx", + "startTime": 544.2999999523163, + "endTime": 563.5999999046326, + "duration": 19.299999952316284, + "transferSize": 205577, + "decodedBodySize": 205277 + } + ], + "longTasks": [ + { + "startTime": 303.7999999523163, + "duration": 149 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 129, + "browserRequestCount": 150, + "externalRequestCount": 21, + "transferredBytes": 7730991, + "encodedBytes": 7692291, + "decodedBytes": 7692291, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 450.7000000476837, + "loadEventEnd": 599.8999998569489, + "responseEnd": 12.399999856948853 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/flowchart", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "FlowchartPage" + }, + { + "path": "/app/history", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 767.3999998569489, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:41919/src/pages/HistoryPage.tsx", + "startTime": 616.7000000476837, + "endTime": 634.7000000476837, + "duration": 18, + "transferSize": 143448, + "decodedBodySize": 143148 + } + ], + "longTasks": [ + { + "startTime": 378.7000000476837, + "duration": 150 + } + ], + "cls": 0.04643643016750263, + "layoutShifts": [ + { + "startTime": 771.3999998569489, + "value": 0.04643643016750263 + } + ], + "requestCount": 128, + "browserRequestCount": 149, + "externalRequestCount": 21, + "transferredBytes": 7188973, + "encodedBytes": 7150573, + "decodedBytes": 7150573, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 527.0999999046326, + "loadEventEnd": 585.5999999046326, + "responseEnd": 13.599999904632568 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/history", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "HistoryPage" + }, + { + "path": "/app/admin", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 794, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:41919/src/pages/AdminPage.tsx", + "startTime": 531.3999998569489, + "endTime": 555.7999999523163, + "duration": 24.40000009536743, + "transferSize": 394470, + "decodedBodySize": 394170 + } + ], + "longTasks": [ + { + "startTime": 322.19999980926514, + "duration": 131 + }, + { + "startTime": 685.7999999523163, + "duration": 70 + } + ], + "cls": 0.08245148326771094, + "layoutShifts": [ + { + "startTime": 770.7999999523163, + "value": 0.08245148326771094 + } + ], + "requestCount": 135, + "browserRequestCount": 161, + "externalRequestCount": 26, + "transferredBytes": 8829151, + "encodedBytes": 8788651, + "decodedBytes": 8788651, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 451.69999980926514, + "loadEventEnd": 586.0999999046326, + "responseEnd": 10.699999809265137 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/admin", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AdminPage" + }, + { + "path": "/app", + "clickTime": 939.7000000476837, + "measurementBoundary": 939.7000000476837, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 80.59999990463257, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 12, + "browserRequestCount": 13, + "externalRequestCount": 1, + "transferredBytes": 809259, + "encodedBytes": 805659, + "decodedBytes": 805659, + "sourceWorkExcluded": { + "requestCount": 134, + "longTaskCount": 3, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 444.2999999523163, + "loadEventEnd": 514.5, + "responseEnd": 12.299999952316284 + }, + "shellDomIdentitySurvived": null, + "kind": "first-visit-click", + "label": "Landing CTA -> /app", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "HomePage" + }, + { + "path": "/app", + "clickTime": 1336.7000000476837, + "measurementBoundary": 1336.7000000476837, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 46.700000047683716, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 10, + "externalRequestCount": 10, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 146, + "longTaskCount": 4, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 446, + "loadEventEnd": 515.8000001907349, + "responseEnd": 10.100000143051147 + }, + "shellDomIdentitySurvived": null, + "kind": "warm-click", + "label": "Landing CTA -> /app", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "HomePage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:41919/src/pages/HomePage.tsx", + "startTime": 939.1000001430511, + "responseEnd": 948, + "transferSize": 26673, + "encodedBodySize": 26373, + "decodedBodySize": 26373 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/generate", + "clickTime": 777.5, + "measurementBoundary": 777.5, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 356.19999980926514, + "routeChunkRequests": [], + "longTasks": [ + { + "startTime": 1015.6999998092651, + "duration": 88 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 43, + "browserRequestCount": 45, + "externalRequestCount": 2, + "transferredBytes": 1574320, + "encodedBytes": 1561420, + "decodedBytes": 1561420, + "sourceWorkExcluded": { + "requestCount": 120, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 485.5, + "loadEventEnd": 616.1999998092651, + "responseEnd": 12.899999856948853 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> Generate", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "GeneratePage" + }, + { + "path": "/app/generate", + "clickTime": 1301.1999998092651, + "measurementBoundary": 1301.1999998092651, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 67.10000014305115, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 2, + "externalRequestCount": 2, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 163, + "longTaskCount": 3, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 470.69999980926514, + "loadEventEnd": 532.8999998569489, + "responseEnd": 10.699999809265137 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> Generate", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "GeneratePage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:41919/src/pages/GeneratePage.tsx", + "startTime": 742.1999998092651, + "responseEnd": 751.7999999523163, + "transferSize": 78506, + "encodedBodySize": 78206, + "decodedBodySize": 78206 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/attack", + "clickTime": 1901.8999998569489, + "measurementBoundary": 1901.8999998569489, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 159, + "routeChunkRequests": [], + "longTasks": [ + { + "startTime": 2000.0999999046326, + "duration": 55 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 7, + "browserRequestCount": 9, + "externalRequestCount": 2, + "transferredBytes": 188075, + "encodedBytes": 185975, + "decodedBytes": 185975, + "sourceWorkExcluded": { + "requestCount": 163, + "longTaskCount": 2, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 420, + "loadEventEnd": 467, + "responseEnd": 12 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Generate -> Attack", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "AttackPage" + }, + { + "path": "/app/attack", + "clickTime": 4583.5, + "measurementBoundary": 4583.5, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 71.29999995231628, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 2, + "externalRequestCount": 2, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 170, + "longTaskCount": 4, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 455.90000009536743, + "loadEventEnd": 606.9000000953674, + "responseEnd": 18 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Generate -> Attack", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "AttackPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:41919/src/pages/AttackPage.tsx", + "startTime": 2036.2000000476837, + "responseEnd": 2046.2999999523163, + "transferSize": 33746, + "encodedBodySize": 33446, + "decodedBodySize": 33446 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/flowchart", + "clickTime": 738.4000000953674, + "measurementBoundary": 738.4000000953674, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 170.89999985694885, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 10, + "browserRequestCount": 11, + "externalRequestCount": 1, + "transferredBytes": 593459, + "encodedBytes": 590459, + "decodedBytes": 590459, + "sourceWorkExcluded": { + "requestCount": 120, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 446.10000014305115, + "loadEventEnd": 502.2000000476837, + "responseEnd": 15.100000143051147 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> Flowchart", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "FlowchartPage" + }, + { + "path": "/app/flowchart", + "clickTime": 1060.5, + "measurementBoundary": 1060.5, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 44.39999985694885, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 130, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 393.09999990463257, + "loadEventEnd": 443.39999985694885, + "responseEnd": 11.599999904632568 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> Flowchart", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "FlowchartPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:41919/src/pages/FlowchartPage.tsx", + "startTime": 632.2999999523163, + "responseEnd": 641.7999999523163, + "transferSize": 205577, + "encodedBodySize": 205277, + "decodedBodySize": 205277 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/history", + "clickTime": 703.5, + "measurementBoundary": 703.5, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 108.59999990463257, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 9, + "browserRequestCount": 10, + "externalRequestCount": 1, + "transferredBytes": 113570, + "encodedBytes": 110870, + "decodedBytes": 110870, + "sourceWorkExcluded": { + "requestCount": 120, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 424.59999990463257, + "loadEventEnd": 553, + "responseEnd": 12.099999904632568 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> History", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "HistoryPage" + }, + { + "path": "/app/history", + "clickTime": 1159.7999999523163, + "measurementBoundary": 1159.7999999523163, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 22, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 129, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 466.7999999523163, + "loadEventEnd": 516.2999999523163, + "responseEnd": 13.700000047683716 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> History", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "HistoryPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:41919/src/pages/HistoryPage.tsx", + "startTime": 748.6000001430511, + "responseEnd": 757.9000000953674, + "transferSize": 143448, + "encodedBodySize": 143148, + "decodedBodySize": 143148 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + } + ], + "delayed": [ + { + "path": "/app/attack", + "clickTime": 1215.5, + "measurementBoundary": 1215.5, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 903.3000001907349, + "routeChunkRequests": [], + "longTasks": [ + { + "startTime": 2058.300000190735, + "duration": 55 + } + ], + "cls": 0.01097265625, + "layoutShifts": [ + { + "startTime": 2118.600000143051, + "value": 0.01097265625 + } + ], + "requestCount": 7, + "browserRequestCount": 19, + "externalRequestCount": 12, + "transferredBytes": 188075, + "encodedBytes": 185975, + "decodedBytes": 185975, + "sourceWorkExcluded": { + "requestCount": 163, + "longTaskCount": 2, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 496.2000000476837, + "loadEventEnd": 553.6000001430511, + "responseEnd": 12.600000143051147 + }, + "shellDomIdentitySurvived": true, + "kind": "delayed-click", + "label": "Delayed Generate -> Attack", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AttackPage", + "delayMs": 750, + "delayRequestObserved": true, + "frameStates": [ + { + "route": "/app/generate", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + } + ], + "video": "docs/performance/smooth-navigation-baseline/desktop-delayed.webm", + "filmstrip": "docs/performance/smooth-navigation-baseline/desktop-delayed-filmstrip.png" + }, + { + "path": "/app/attack", + "clickTime": 1229.6000001430511, + "measurementBoundary": 1229.6000001430511, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 878.5999999046326, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 7, + "browserRequestCount": 20, + "externalRequestCount": 13, + "transferredBytes": 188075, + "encodedBytes": 185975, + "decodedBytes": 185975, + "sourceWorkExcluded": { + "requestCount": 163, + "longTaskCount": 2, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 463.2000000476837, + "loadEventEnd": 519.6000001430511, + "responseEnd": 12.300000190734863 + }, + "shellDomIdentitySurvived": true, + "kind": "delayed-click", + "label": "Delayed Generate -> Attack", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AttackPage", + "delayMs": 750, + "delayRequestObserved": true, + "frameStates": [ + { + "route": "/app/generate", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + } + ], + "video": "docs/performance/smooth-navigation-baseline/pixel-5-delayed.webm", + "filmstrip": "docs/performance/smooth-navigation-baseline/pixel-5-delayed-filmstrip.png" + } + ], + "bundleGraph": { + "manifestEntries": [ + { + "key": "_FileSaver.min-D_JFMesj.js", + "file": "assets/FileSaver.min-D_JFMesj.js", + "name": "FileSaver.min", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "_ModelRestrictedModal-C3fyEORB.js", + "file": "assets/ModelRestrictedModal-C3fyEORB.js", + "name": "ModelRestrictedModal", + "imports": [ + "index.html", + "_client-DEwlmyst.js", + "_triangle-alert-BgYzclSC.js", + "_zap-DRG34D0x.js", + "_PricingModal-D8mLWjDu.js" + ] + }, + { + "key": "_ModelSelector--btGoe1p.js", + "file": "assets/ModelSelector--btGoe1p.js", + "name": "ModelSelector", + "imports": [ + "index.html", + "_badge-BC-6QS26.js", + "_use-subscription-DPxqRAbU.js" + ] + }, + { + "key": "_PricingModal-D8mLWjDu.js", + "file": "assets/PricingModal-D8mLWjDu.js", + "name": "PricingModal", + "imports": [ + "index.html", + "_input-BjDrRHtx.js", + "_badge-BC-6QS26.js", + "_edge-function-error-dlcwXP30.js", + "_crown-BzZHpcif.js", + "_zap-DRG34D0x.js" + ] + }, + { + "key": "_alert-dialog-chuiBWTg.js", + "file": "assets/alert-dialog-chuiBWTg.js", + "name": "alert-dialog", + "imports": [ + "index.html" + ] + }, + { + "key": "_arrow-right-_GA5t6Ff.js", + "file": "assets/arrow-right-_GA5t6Ff.js", + "name": "arrow-right", + "imports": [ + "index.html" + ] + }, + { + "key": "_badge-BC-6QS26.js", + "file": "assets/badge-BC-6QS26.js", + "name": "badge", + "imports": [ + "index.html" + ] + }, + { + "key": "_bookmark-B9VbbzBD.js", + "file": "assets/bookmark-B9VbbzBD.js", + "name": "bookmark", + "imports": [ + "index.html" + ] + }, + { + "key": "_brain-M0E5BVtS.js", + "file": "assets/brain-M0E5BVtS.js", + "name": "brain", + "imports": [ + "index.html" + ] + }, + { + "key": "_card-BnT411OX.js", + "file": "assets/card-BnT411OX.js", + "name": "card", + "imports": [ + "index.html" + ] + }, + { + "key": "_checkbox-CPn-6Pk1.js", + "file": "assets/checkbox-CPn-6Pk1.js", + "name": "checkbox", + "imports": [ + "index.html" + ] + }, + { + "key": "_circle-alert-EvFEdfwm.js", + "file": "assets/circle-alert-EvFEdfwm.js", + "name": "circle-alert", + "imports": [ + "index.html" + ] + }, + { + "key": "_circle-help-B0oPixm9.js", + "file": "assets/circle-help-B0oPixm9.js", + "name": "circle-help", + "imports": [ + "index.html" + ] + }, + { + "key": "_client-DEwlmyst.js", + "file": "assets/client-DEwlmyst.js", + "name": "client", + "imports": [ + "index.html", + "_url-CeZm_C1D.js" + ] + }, + { + "key": "_clock-3-cVu-fg4P.js", + "file": "assets/clock-3-cVu-fg4P.js", + "name": "clock-3", + "imports": [ + "index.html" + ] + }, + { + "key": "_copy-L_02rmZ3.js", + "file": "assets/copy-L_02rmZ3.js", + "name": "copy", + "imports": [ + "index.html" + ] + }, + { + "key": "_credit-card-DxReFz7h.js", + "file": "assets/credit-card-DxReFz7h.js", + "name": "credit-card", + "imports": [ + "index.html" + ] + }, + { + "key": "_crown-BzZHpcif.js", + "file": "assets/crown-BzZHpcif.js", + "name": "crown", + "imports": [ + "index.html" + ] + }, + { + "key": "_date-format-CfassM9h.js", + "file": "assets/date-format-CfassM9h.js", + "name": "date-format" + }, + { + "key": "_download-B6rLXL5_.js", + "file": "assets/download-B6rLXL5_.js", + "name": "download", + "imports": [ + "index.html" + ] + }, + { + "key": "_edge-function-error-dlcwXP30.js", + "file": "assets/edge-function-error-dlcwXP30.js", + "name": "edge-function-error" + }, + { + "key": "_empty-state-DM7N_Xh_.js", + "file": "assets/empty-state-DM7N_Xh_.js", + "name": "empty-state", + "imports": [ + "index.html" + ] + }, + { + "key": "_error-display-CfPmd3wN.js", + "file": "assets/error-display-CfPmd3wN.js", + "name": "error-display", + "imports": [ + "_client-DEwlmyst.js" + ] + }, + { + "key": "_external-link-CeL3t6Kr.js", + "file": "assets/external-link-CeL3t6Kr.js", + "name": "external-link", + "imports": [ + "index.html" + ] + }, + { + "key": "_file-text-B6nrM_aa.js", + "file": "assets/file-text-B6nrM_aa.js", + "name": "file-text", + "imports": [ + "index.html" + ] + }, + { + "key": "_flame-LxH7SUbA.js", + "file": "assets/flame-LxH7SUbA.js", + "name": "flame", + "imports": [ + "index.html" + ] + }, + { + "key": "_generateCategoricalChart-tQpM_2Ey.js", + "file": "assets/generateCategoricalChart-tQpM_2Ey.js", + "name": "generateCategoricalChart", + "imports": [ + "index.html", + "_index-DCbKzI_r.js", + "_string-cKWu9XK9.js" + ] + }, + { + "key": "_index-CUklgy1x.js", + "file": "assets/index-CUklgy1x.js", + "name": "index", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "_index-CzRyuAKe.js", + "file": "assets/index-CzRyuAKe.js", + "name": "index", + "imports": [ + "index.html", + "_string-cKWu9XK9.js" + ] + }, + { + "key": "_index-DCbKzI_r.js", + "file": "assets/index-DCbKzI_r.js", + "name": "index", + "imports": [ + "index.html" + ] + }, + { + "key": "_input-BjDrRHtx.js", + "file": "assets/input-BjDrRHtx.js", + "name": "input", + "imports": [ + "index.html" + ] + }, + { + "key": "_jspdf.es.min-rPht-yMH.js", + "file": "assets/jspdf.es.min-rPht-yMH.js", + "name": "jspdf.es.min", + "isDynamicEntry": true, + "imports": [ + "index.html" + ], + "dynamicImports": [ + "node_modules/html2canvas/dist/html2canvas.esm.js", + "node_modules/dompurify/dist/purify.es.mjs", + "node_modules/canvg/lib/index.es.js" + ] + }, + { + "key": "_markdown-BFkXmfLC.js", + "file": "assets/markdown-BFkXmfLC.js", + "name": "markdown", + "imports": [ + "index.html" + ] + }, + { + "key": "_plus-CuZTkh8c.js", + "file": "assets/plus-CuZTkh8c.js", + "name": "plus", + "imports": [ + "index.html" + ] + }, + { + "key": "_prefill-Bt9XeRbC.js", + "file": "assets/prefill-Bt9XeRbC.js", + "name": "prefill", + "imports": [ + "index.html" + ] + }, + { + "key": "_progress-Eyz1T4LG.js", + "file": "assets/progress-Eyz1T4LG.js", + "name": "progress", + "imports": [ + "index.html" + ] + }, + { + "key": "_proxy-CZ59rzDR.js", + "file": "assets/proxy-CZ59rzDR.js", + "name": "proxy", + "imports": [ + "index.html", + "_use-reduced-motion-v_1o4Ngt.js" + ] + }, + { + "key": "_refresh-cw-BeTvwxHO.js", + "file": "assets/refresh-cw-BeTvwxHO.js", + "name": "refresh-cw", + "imports": [ + "index.html" + ] + }, + { + "key": "_rotate-ccw-v2tcH4l7.js", + "file": "assets/rotate-ccw-v2tcH4l7.js", + "name": "rotate-ccw", + "imports": [ + "index.html" + ] + }, + { + "key": "_save--EOuaVhR.js", + "file": "assets/save--EOuaVhR.js", + "name": "save", + "imports": [ + "index.html" + ] + }, + { + "key": "_scroll-area-BTGx2PB1.js", + "file": "assets/scroll-area-BTGx2PB1.js", + "name": "scroll-area", + "imports": [ + "index.html" + ] + }, + { + "key": "_search-D72Br97G.js", + "file": "assets/search-D72Br97G.js", + "name": "search", + "imports": [ + "index.html" + ] + }, + { + "key": "_send-DyAEqj-V.js", + "file": "assets/send-DyAEqj-V.js", + "name": "send", + "imports": [ + "index.html" + ] + }, + { + "key": "_sheet-Dfq5h2d1.js", + "file": "assets/sheet-Dfq5h2d1.js", + "name": "sheet", + "imports": [ + "index.html" + ] + }, + { + "key": "_shield-C8ZFNTgi.js", + "file": "assets/shield-C8ZFNTgi.js", + "name": "shield", + "imports": [ + "index.html" + ] + }, + { + "key": "_shield-check-DU5mFNut.js", + "file": "assets/shield-check-DU5mFNut.js", + "name": "shield-check", + "imports": [ + "index.html" + ] + }, + { + "key": "_streaming-indicator-Ckj0qTTQ.js", + "file": "assets/streaming-indicator-Ckj0qTTQ.js", + "name": "streaming-indicator", + "imports": [ + "index.html", + "_card-BnT411OX.js", + "_refresh-cw-BeTvwxHO.js", + "_file-text-B6nrM_aa.js", + "_external-link-CeL3t6Kr.js", + "_badge-BC-6QS26.js" + ] + }, + { + "key": "_string-cKWu9XK9.js", + "file": "assets/string-cKWu9XK9.js", + "name": "string" + }, + { + "key": "_switch-CHK59itA.js", + "file": "assets/switch-CHK59itA.js", + "name": "switch", + "imports": [ + "index.html" + ] + }, + { + "key": "_tabs-Dc13bJ4B.js", + "file": "assets/tabs-Dc13bJ4B.js", + "name": "tabs", + "imports": [ + "index.html" + ] + }, + { + "key": "_target-BtiUsRv7.js", + "file": "assets/target-BtiUsRv7.js", + "name": "target", + "imports": [ + "index.html" + ] + }, + { + "key": "_textarea-BQ0Vj88K.js", + "file": "assets/textarea-BQ0Vj88K.js", + "name": "textarea", + "imports": [ + "index.html" + ] + }, + { + "key": "_trash-2-F2gcUNIU.js", + "file": "assets/trash-2-F2gcUNIU.js", + "name": "trash-2", + "imports": [ + "index.html" + ] + }, + { + "key": "_triangle-alert-BgYzclSC.js", + "file": "assets/triangle-alert-BgYzclSC.js", + "name": "triangle-alert", + "imports": [ + "index.html" + ] + }, + { + "key": "_url-CeZm_C1D.js", + "file": "assets/url-CeZm_C1D.js", + "name": "url", + "imports": [ + "index.html" + ] + }, + { + "key": "_use-reduced-motion-v_1o4Ngt.js", + "file": "assets/use-reduced-motion-v_1o4Ngt.js", + "name": "use-reduced-motion", + "imports": [ + "index.html" + ] + }, + { + "key": "_use-speech-to-text-BwciQCuH.js", + "file": "assets/use-speech-to-text-BwciQCuH.js", + "name": "use-speech-to-text", + "imports": [ + "index.html" + ] + }, + { + "key": "_use-subscription-DPxqRAbU.js", + "file": "assets/use-subscription-DPxqRAbU.js", + "name": "use-subscription", + "imports": [ + "index.html" + ] + }, + { + "key": "_users-BM5mL8hE.js", + "file": "assets/users-BM5mL8hE.js", + "name": "users", + "imports": [ + "index.html" + ] + }, + { + "key": "_zap-DRG34D0x.js", + "file": "assets/zap-DRG34D0x.js", + "name": "zap", + "imports": [ + "index.html" + ] + }, + { + "key": "index.html", + "file": "assets/index-BXPLmGRM.js", + "name": "index", + "src": "index.html", + "isEntry": true, + "isDynamicEntry": true, + "dynamicImports": [ + "src/pages/LandingPage.tsx", + "src/pages/TermsPage.tsx", + "src/pages/PrivacyPage.tsx", + "src/pages/SourcesPage.tsx", + "src/pages/LoginPage.tsx", + "src/pages/SharedPage.tsx", + "src/pages/HomePage.tsx", + "src/pages/GeneratePage.tsx", + "src/pages/AttackPage.tsx", + "src/pages/BrainstormPage.tsx", + "src/pages/FactoidsPage.tsx", + "src/pages/AskPage.tsx", + "src/pages/CrossfirePage.tsx", + "src/pages/HistoryPage.tsx", + "src/pages/LibraryPage.tsx", + "src/pages/TimerPage.tsx", + "src/pages/SparringPage.tsx", + "src/pages/FlowchartPage.tsx", + "src/pages/SettingsPage.tsx", + "src/pages/AdminPage.tsx", + "src/pages/NotFound.tsx", + "node_modules/@capacitor/browser/dist/esm/web.js", + "src/components/features/onboarding/OnboardingTour.tsx", + "node_modules/@vercel/analytics/dist/react/index.mjs", + "node_modules/@vercel/speed-insights/dist/react/index.mjs", + "node_modules/@capacitor/app/dist/esm/web.js", + "node_modules/@capacitor/haptics/dist/esm/web.js" + ], + "css": [ + "assets/index-CQh0Qbtd.css" + ] + }, + { + "key": "node_modules/@capacitor/app/dist/esm/web.js", + "file": "assets/web-D9KG4rKC.js", + "name": "web", + "src": "node_modules/@capacitor/app/dist/esm/web.js", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/@capacitor/browser/dist/esm/web.js", + "file": "assets/web-XsvGzZYP.js", + "name": "web", + "src": "node_modules/@capacitor/browser/dist/esm/web.js", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/@capacitor/haptics/dist/esm/web.js", + "file": "assets/web-WxmaVhoc.js", + "name": "web", + "src": "node_modules/@capacitor/haptics/dist/esm/web.js", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/@vercel/analytics/dist/react/index.mjs", + "file": "assets/index-D_w_W2TW.js", + "name": "index", + "src": "node_modules/@vercel/analytics/dist/react/index.mjs", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/@vercel/speed-insights/dist/react/index.mjs", + "file": "assets/index-BOmRsjz8.js", + "name": "index", + "src": "node_modules/@vercel/speed-insights/dist/react/index.mjs", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/canvg/lib/index.es.js", + "file": "assets/index.es-_IyzbuIU.js", + "name": "index.es", + "src": "node_modules/canvg/lib/index.es.js", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_jspdf.es.min-rPht-yMH.js" + ] + }, + { + "key": "node_modules/docx/dist/index.mjs", + "file": "assets/index-BOF6v8rb.js", + "name": "index", + "src": "node_modules/docx/dist/index.mjs", + "isDynamicEntry": true + }, + { + "key": "node_modules/dompurify/dist/purify.es.mjs", + "file": "assets/purify.es-4eNOHKSq.js", + "name": "purify.es", + "src": "node_modules/dompurify/dist/purify.es.mjs", + "isDynamicEntry": true + }, + { + "key": "node_modules/html2canvas/dist/html2canvas.esm.js", + "file": "assets/html2canvas.esm-DXEQVQnt.js", + "name": "html2canvas.esm", + "src": "node_modules/html2canvas/dist/html2canvas.esm.js", + "isDynamicEntry": true + }, + { + "key": "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs", + "file": "assets/jspdf.plugin.autotable-BBLUVd7n.js", + "name": "jspdf.plugin.autotable", + "src": "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs", + "isDynamicEntry": true + }, + { + "key": "node_modules/pdfjs-dist/legacy/build/pdf.mjs", + "file": "assets/pdf-ClZ_1Nv1.js", + "name": "pdf", + "src": "node_modules/pdfjs-dist/legacy/build/pdf.mjs", + "isDynamicEntry": true + }, + { + "key": "node_modules/pdfjs-dist/legacy/build/pdf.worker.mjs", + "file": "assets/pdf.worker-DTrjDNvb.mjs", + "src": "node_modules/pdfjs-dist/legacy/build/pdf.worker.mjs" + }, + { + "key": "src/components/features/onboarding/OnboardingTour.tsx", + "file": "assets/OnboardingTour-D3HRgV01.js", + "name": "OnboardingTour", + "src": "src/components/features/onboarding/OnboardingTour.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_index-DCbKzI_r.js" + ] + }, + { + "key": "src/lib/export-utils.ts", + "file": "assets/export-utils-C_AAuxR6.js", + "name": "export-utils", + "src": "src/lib/export-utils.ts", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_date-format-CfassM9h.js" + ], + "dynamicImports": [ + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-D_JFMesj.js", + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-D_JFMesj.js", + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-D_JFMesj.js", + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-D_JFMesj.js", + "index.html", + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-D_JFMesj.js" + ] + }, + { + "key": "src/lib/pdf-export-utils.ts", + "file": "assets/pdf-export-utils-DIHHR01V.js", + "name": "pdf-export-utils", + "src": "src/lib/pdf-export-utils.ts", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_date-format-CfassM9h.js" + ], + "dynamicImports": [ + "_jspdf.es.min-rPht-yMH.js", + "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs" + ] + }, + { + "key": "src/pages/AdminPage.tsx", + "file": "assets/AdminPage-DxOnwRAE.js", + "name": "AdminPage", + "src": "src/pages/AdminPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-BnT411OX.js", + "_input-BjDrRHtx.js", + "_badge-BC-6QS26.js", + "_tabs-Dc13bJ4B.js", + "_scroll-area-BTGx2PB1.js", + "_date-format-CfassM9h.js", + "_checkbox-CPn-6Pk1.js", + "_textarea-BQ0Vj88K.js", + "_alert-dialog-chuiBWTg.js", + "_search-D72Br97G.js", + "_trash-2-F2gcUNIU.js", + "_shield-C8ZFNTgi.js", + "_circle-alert-EvFEdfwm.js", + "_users-BM5mL8hE.js", + "_credit-card-DxReFz7h.js", + "_generateCategoricalChart-tQpM_2Ey.js", + "_copy-L_02rmZ3.js", + "_rotate-ccw-v2tcH4l7.js", + "_index-DCbKzI_r.js", + "_string-cKWu9XK9.js" + ] + }, + { + "key": "src/pages/AskPage.tsx", + "file": "assets/AskPage-D3eVFOW4.js", + "name": "AskPage", + "src": "src/pages/AskPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_input-BjDrRHtx.js", + "_markdown-BFkXmfLC.js", + "_card-BnT411OX.js", + "_switch-CHK59itA.js", + "_scroll-area-BTGx2PB1.js", + "_use-speech-to-text-BwciQCuH.js", + "_date-format-CfassM9h.js", + "_ModelSelector--btGoe1p.js", + "_sheet-Dfq5h2d1.js", + "_use-reduced-motion-v_1o4Ngt.js", + "_save--EOuaVhR.js", + "_rotate-ccw-v2tcH4l7.js", + "_circle-help-B0oPixm9.js", + "_search-D72Br97G.js", + "_send-DyAEqj-V.js", + "_bookmark-B9VbbzBD.js", + "_client-DEwlmyst.js", + "_ModelRestrictedModal-C3fyEORB.js", + "_error-display-CfPmd3wN.js", + "_PricingModal-D8mLWjDu.js", + "_badge-BC-6QS26.js", + "_use-subscription-DPxqRAbU.js", + "_url-CeZm_C1D.js", + "_triangle-alert-BgYzclSC.js", + "_zap-DRG34D0x.js", + "_edge-function-error-dlcwXP30.js", + "_crown-BzZHpcif.js" + ] + }, + { + "key": "src/pages/AttackPage.tsx", + "file": "assets/AttackPage-DjMYLo0u.js", + "name": "AttackPage", + "src": "src/pages/AttackPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_streaming-indicator-Ckj0qTTQ.js", + "_textarea-BQ0Vj88K.js", + "_switch-CHK59itA.js", + "_card-BnT411OX.js", + "_client-DEwlmyst.js", + "_ModelSelector--btGoe1p.js", + "_prefill-Bt9XeRbC.js", + "_search-D72Br97G.js", + "_badge-BC-6QS26.js", + "_progress-Eyz1T4LG.js", + "_markdown-BFkXmfLC.js", + "_ModelRestrictedModal-C3fyEORB.js", + "_flame-LxH7SUbA.js", + "_circle-alert-EvFEdfwm.js", + "_refresh-cw-BeTvwxHO.js", + "_triangle-alert-BgYzclSC.js", + "_error-display-CfPmd3wN.js", + "_PricingModal-D8mLWjDu.js", + "_file-text-B6nrM_aa.js", + "_external-link-CeL3t6Kr.js", + "_url-CeZm_C1D.js", + "_use-subscription-DPxqRAbU.js", + "_zap-DRG34D0x.js", + "_input-BjDrRHtx.js", + "_edge-function-error-dlcwXP30.js", + "_crown-BzZHpcif.js" + ], + "dynamicImports": [ + "src/lib/pdf-export-utils.ts", + "src/lib/export-utils.ts", + "src/lib/export-utils.ts" + ] + }, + { + "key": "src/pages/BrainstormPage.tsx", + "file": "assets/BrainstormPage-CzulC9rz.js", + "name": "BrainstormPage", + "src": "src/pages/BrainstormPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_streaming-indicator-Ckj0qTTQ.js", + "_input-BjDrRHtx.js", + "_textarea-BQ0Vj88K.js", + "_card-BnT411OX.js", + "_ModelSelector--btGoe1p.js", + "_brain-M0E5BVtS.js", + "_badge-BC-6QS26.js", + "_ModelRestrictedModal-C3fyEORB.js", + "_empty-state-DM7N_Xh_.js", + "_triangle-alert-BgYzclSC.js", + "_arrow-right-_GA5t6Ff.js", + "_client-DEwlmyst.js", + "_error-display-CfPmd3wN.js", + "_PricingModal-D8mLWjDu.js", + "_refresh-cw-BeTvwxHO.js", + "_file-text-B6nrM_aa.js", + "_external-link-CeL3t6Kr.js", + "_use-subscription-DPxqRAbU.js", + "_zap-DRG34D0x.js", + "_url-CeZm_C1D.js", + "_edge-function-error-dlcwXP30.js", + "_crown-BzZHpcif.js" + ], + "dynamicImports": [ + "src/lib/export-utils.ts", + "src/lib/export-utils.ts", + "src/lib/pdf-export-utils.ts" + ] + }, + { + "key": "src/pages/CrossfirePage.tsx", + "file": "assets/CrossfirePage-6-RlWW8P.js", + "name": "CrossfirePage", + "src": "src/pages/CrossfirePage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_badge-BC-6QS26.js", + "_card-BnT411OX.js", + "_checkbox-CPn-6Pk1.js", + "_textarea-BQ0Vj88K.js", + "_client-DEwlmyst.js", + "_error-display-CfPmd3wN.js", + "_use-reduced-motion-v_1o4Ngt.js", + "_flame-LxH7SUbA.js", + "_circle-alert-EvFEdfwm.js", + "_refresh-cw-BeTvwxHO.js", + "_clock-3-cVu-fg4P.js", + "_send-DyAEqj-V.js", + "_rotate-ccw-v2tcH4l7.js", + "_shield-check-DU5mFNut.js", + "_proxy-CZ59rzDR.js", + "_url-CeZm_C1D.js" + ] + }, + { + "key": "src/pages/FactoidsPage.tsx", + "file": "assets/FactoidsPage-Desc9OHj.js", + "name": "FactoidsPage", + "src": "src/pages/FactoidsPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_streaming-indicator-Ckj0qTTQ.js", + "_input-BjDrRHtx.js", + "_card-BnT411OX.js", + "_client-DEwlmyst.js", + "_ModelSelector--btGoe1p.js", + "_search-D72Br97G.js", + "_badge-BC-6QS26.js", + "_progress-Eyz1T4LG.js", + "_ModelRestrictedModal-C3fyEORB.js", + "_triangle-alert-BgYzclSC.js", + "_external-link-CeL3t6Kr.js", + "_bookmark-B9VbbzBD.js", + "_error-display-CfPmd3wN.js", + "_PricingModal-D8mLWjDu.js", + "_refresh-cw-BeTvwxHO.js", + "_file-text-B6nrM_aa.js", + "_url-CeZm_C1D.js", + "_use-subscription-DPxqRAbU.js", + "_zap-DRG34D0x.js", + "_edge-function-error-dlcwXP30.js", + "_crown-BzZHpcif.js" + ], + "dynamicImports": [ + "src/lib/export-utils.ts", + "src/lib/export-utils.ts", + "src/lib/pdf-export-utils.ts" + ] + }, + { + "key": "src/pages/FlowchartPage.tsx", + "file": "assets/FlowchartPage-hnm2Idlk.js", + "name": "FlowchartPage", + "src": "src/pages/FlowchartPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-BnT411OX.js", + "_badge-BC-6QS26.js", + "_input-BjDrRHtx.js", + "_textarea-BQ0Vj88K.js", + "_alert-dialog-chuiBWTg.js", + "_index-CzRyuAKe.js", + "_trash-2-F2gcUNIU.js", + "_save--EOuaVhR.js", + "_plus-CuZTkh8c.js", + "_download-B6rLXL5_.js", + "_target-BtiUsRv7.js", + "_shield-C8ZFNTgi.js", + "_triangle-alert-BgYzclSC.js", + "_string-cKWu9XK9.js" + ], + "css": [ + "assets/FlowchartPage-Fd0xVSp_.css" + ] + }, + { + "key": "src/pages/GeneratePage.tsx", + "file": "assets/GeneratePage-Chk9sB1m.js", + "name": "GeneratePage", + "src": "src/pages/GeneratePage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_streaming-indicator-Ckj0qTTQ.js", + "_input-BjDrRHtx.js", + "_card-BnT411OX.js", + "_client-DEwlmyst.js", + "_use-speech-to-text-BwciQCuH.js", + "_ModelSelector--btGoe1p.js", + "_prefill-Bt9XeRbC.js", + "_badge-BC-6QS26.js", + "_markdown-BFkXmfLC.js", + "_ModelRestrictedModal-C3fyEORB.js", + "_date-format-CfassM9h.js", + "_flame-LxH7SUbA.js", + "_save--EOuaVhR.js", + "_refresh-cw-BeTvwxHO.js", + "_target-BtiUsRv7.js", + "_shield-C8ZFNTgi.js", + "_triangle-alert-BgYzclSC.js", + "_error-display-CfPmd3wN.js", + "_PricingModal-D8mLWjDu.js", + "_use-reduced-motion-v_1o4Ngt.js", + "_index-CzRyuAKe.js", + "_file-text-B6nrM_aa.js", + "_external-link-CeL3t6Kr.js", + "_url-CeZm_C1D.js", + "_use-subscription-DPxqRAbU.js", + "_zap-DRG34D0x.js", + "_edge-function-error-dlcwXP30.js", + "_crown-BzZHpcif.js", + "_string-cKWu9XK9.js" + ], + "dynamicImports": [ + "src/lib/export-utils.ts", + "src/lib/pdf-export-utils.ts", + "src/lib/export-utils.ts" + ] + }, + { + "key": "src/pages/HistoryPage.tsx", + "file": "assets/HistoryPage-B6Fqkfa7.js", + "name": "HistoryPage", + "src": "src/pages/HistoryPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-BnT411OX.js", + "_tabs-Dc13bJ4B.js", + "_badge-BC-6QS26.js", + "_scroll-area-BTGx2PB1.js", + "_date-format-CfassM9h.js", + "_alert-dialog-chuiBWTg.js", + "_empty-state-DM7N_Xh_.js", + "_file-text-B6nrM_aa.js", + "_zap-DRG34D0x.js", + "_brain-M0E5BVtS.js", + "_trash-2-F2gcUNIU.js" + ] + }, + { + "key": "src/pages/HomePage.tsx", + "file": "assets/HomePage-BcLTnuQ3.js", + "name": "HomePage", + "src": "src/pages/HomePage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-BnT411OX.js", + "_arrow-right-_GA5t6Ff.js" + ] + }, + { + "key": "src/pages/LandingPage.tsx", + "file": "assets/LandingPage-BEJhBS06.js", + "name": "LandingPage", + "src": "src/pages/LandingPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_use-reduced-motion-v_1o4Ngt.js", + "_proxy-CZ59rzDR.js", + "_arrow-right-_GA5t6Ff.js", + "_crown-BzZHpcif.js", + "_zap-DRG34D0x.js", + "_brain-M0E5BVtS.js", + "_search-D72Br97G.js", + "_users-BM5mL8hE.js" + ] + }, + { + "key": "src/pages/LibraryPage.tsx", + "file": "assets/LibraryPage-TQP69FJp.js", + "name": "LibraryPage", + "src": "src/pages/LibraryPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-BnT411OX.js", + "_input-BjDrRHtx.js", + "_textarea-BQ0Vj88K.js", + "_badge-BC-6QS26.js", + "_switch-CHK59itA.js", + "_date-format-CfassM9h.js", + "_url-CeZm_C1D.js", + "_edge-function-error-dlcwXP30.js", + "_alert-dialog-chuiBWTg.js", + "_sheet-Dfq5h2d1.js", + "_plus-CuZTkh8c.js", + "_trash-2-F2gcUNIU.js", + "_search-D72Br97G.js", + "_shield-check-DU5mFNut.js", + "_file-text-B6nrM_aa.js", + "_copy-L_02rmZ3.js", + "_save--EOuaVhR.js", + "_external-link-CeL3t6Kr.js" + ], + "dynamicImports": [ + "_index-CUklgy1x.js", + "node_modules/pdfjs-dist/legacy/build/pdf.mjs" + ], + "assets": [ + "assets/pdf.worker-DTrjDNvb.mjs" + ] + }, + { + "key": "src/pages/LoginPage.tsx", + "file": "assets/LoginPage-CD0NVSxt.js", + "name": "LoginPage", + "src": "src/pages/LoginPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-BnT411OX.js", + "_input-BjDrRHtx.js", + "_tabs-Dc13bJ4B.js" + ] + }, + { + "key": "src/pages/NotFound.tsx", + "file": "assets/NotFound-DvGZAJP6.js", + "name": "NotFound", + "src": "src/pages/NotFound.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "src/pages/PrivacyPage.tsx", + "file": "assets/PrivacyPage-D9Cozr5T.js", + "name": "PrivacyPage", + "src": "src/pages/PrivacyPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "src/pages/SettingsPage.tsx", + "file": "assets/SettingsPage-BUk754vw.js", + "name": "SettingsPage", + "src": "src/pages/SettingsPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-BnT411OX.js", + "_badge-BC-6QS26.js", + "_use-subscription-DPxqRAbU.js", + "_PricingModal-D8mLWjDu.js", + "_date-format-CfassM9h.js", + "_input-BjDrRHtx.js", + "_crown-BzZHpcif.js", + "_credit-card-DxReFz7h.js", + "_zap-DRG34D0x.js", + "_shield-C8ZFNTgi.js", + "_trash-2-F2gcUNIU.js", + "_edge-function-error-dlcwXP30.js" + ] + }, + { + "key": "src/pages/SharedPage.tsx", + "file": "assets/SharedPage-TMNbj13C.js", + "name": "SharedPage", + "src": "src/pages/SharedPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-BnT411OX.js", + "_badge-BC-6QS26.js", + "_date-format-CfassM9h.js", + "_download-B6rLXL5_.js", + "_external-link-CeL3t6Kr.js" + ] + }, + { + "key": "src/pages/SourcesPage.tsx", + "file": "assets/SourcesPage-CNyFodT6.js", + "name": "SourcesPage", + "src": "src/pages/SourcesPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "src/pages/SparringPage.tsx", + "file": "assets/SparringPage-ChpAbP_j.js", + "name": "SparringPage", + "src": "src/pages/SparringPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_client-DEwlmyst.js", + "_card-BnT411OX.js", + "_textarea-BQ0Vj88K.js", + "_badge-BC-6QS26.js", + "_ModelSelector--btGoe1p.js", + "_arrow-right-_GA5t6Ff.js", + "_progress-Eyz1T4LG.js", + "_markdown-BFkXmfLC.js", + "_clock-3-cVu-fg4P.js", + "_rotate-ccw-v2tcH4l7.js", + "_circle-alert-EvFEdfwm.js", + "_send-DyAEqj-V.js", + "_download-B6rLXL5_.js", + "_generateCategoricalChart-tQpM_2Ey.js", + "_target-BtiUsRv7.js", + "_file-text-B6nrM_aa.js", + "_circle-help-B0oPixm9.js", + "_url-CeZm_C1D.js", + "_use-subscription-DPxqRAbU.js", + "_index-DCbKzI_r.js", + "_string-cKWu9XK9.js" + ], + "dynamicImports": [ + "src/lib/export-utils.ts", + "src/lib/pdf-export-utils.ts" + ] + }, + { + "key": "src/pages/TermsPage.tsx", + "file": "assets/TermsPage-BOTALLMN.js", + "name": "TermsPage", + "src": "src/pages/TermsPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "src/pages/TimerPage.tsx", + "file": "assets/TimerPage-DD2LToSI.js", + "name": "TimerPage", + "src": "src/pages/TimerPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-BnT411OX.js", + "_badge-BC-6QS26.js", + "_progress-Eyz1T4LG.js", + "_rotate-ccw-v2tcH4l7.js" + ] + } + ], + "routeStaticGraphs": [ + { + "route": "index.html", + "file": "assets/index-BXPLmGRM.js", + "files": [ + "assets/index-BXPLmGRM.js" + ] + }, + { + "route": "/", + "file": "assets/LandingPage-BEJhBS06.js", + "files": [ + "assets/LandingPage-BEJhBS06.js", + "assets/users-BM5mL8hE.js", + "assets/index-BXPLmGRM.js", + "assets/search-D72Br97G.js", + "assets/brain-M0E5BVtS.js", + "assets/zap-DRG34D0x.js", + "assets/crown-BzZHpcif.js", + "assets/arrow-right-_GA5t6Ff.js", + "assets/proxy-CZ59rzDR.js", + "assets/use-reduced-motion-v_1o4Ngt.js" + ] + }, + { + "route": "/login", + "file": "assets/LoginPage-CD0NVSxt.js", + "files": [ + "assets/LoginPage-CD0NVSxt.js", + "assets/tabs-Dc13bJ4B.js", + "assets/index-BXPLmGRM.js", + "assets/input-BjDrRHtx.js", + "assets/card-BnT411OX.js" + ] + }, + { + "route": "/app", + "file": "assets/HomePage-BcLTnuQ3.js", + "files": [ + "assets/HomePage-BcLTnuQ3.js", + "assets/arrow-right-_GA5t6Ff.js", + "assets/index-BXPLmGRM.js", + "assets/card-BnT411OX.js" + ] + }, + { + "route": "/app/generate", + "file": "assets/GeneratePage-Chk9sB1m.js", + "files": [ + "assets/GeneratePage-Chk9sB1m.js", + "assets/string-cKWu9XK9.js", + "assets/crown-BzZHpcif.js", + "assets/index-BXPLmGRM.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/zap-DRG34D0x.js", + "assets/use-subscription-DPxqRAbU.js", + "assets/url-CeZm_C1D.js", + "assets/external-link-CeL3t6Kr.js", + "assets/file-text-B6nrM_aa.js", + "assets/index-CzRyuAKe.js", + "assets/use-reduced-motion-v_1o4Ngt.js", + "assets/PricingModal-D8mLWjDu.js", + "assets/badge-BC-6QS26.js", + "assets/input-BjDrRHtx.js", + "assets/error-display-CfPmd3wN.js", + "assets/client-DEwlmyst.js", + "assets/triangle-alert-BgYzclSC.js", + "assets/shield-C8ZFNTgi.js", + "assets/target-BtiUsRv7.js", + "assets/refresh-cw-BeTvwxHO.js", + "assets/save--EOuaVhR.js", + "assets/flame-LxH7SUbA.js", + "assets/date-format-CfassM9h.js", + "assets/ModelRestrictedModal-C3fyEORB.js", + "assets/markdown-BFkXmfLC.js", + "assets/prefill-Bt9XeRbC.js", + "assets/ModelSelector--btGoe1p.js", + "assets/use-speech-to-text-BwciQCuH.js", + "assets/card-BnT411OX.js", + "assets/streaming-indicator-Ckj0qTTQ.js" + ] + }, + { + "route": "/app/attack", + "file": "assets/AttackPage-DjMYLo0u.js", + "files": [ + "assets/AttackPage-DjMYLo0u.js", + "assets/crown-BzZHpcif.js", + "assets/index-BXPLmGRM.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/input-BjDrRHtx.js", + "assets/zap-DRG34D0x.js", + "assets/use-subscription-DPxqRAbU.js", + "assets/url-CeZm_C1D.js", + "assets/external-link-CeL3t6Kr.js", + "assets/file-text-B6nrM_aa.js", + "assets/PricingModal-D8mLWjDu.js", + "assets/badge-BC-6QS26.js", + "assets/error-display-CfPmd3wN.js", + "assets/client-DEwlmyst.js", + "assets/triangle-alert-BgYzclSC.js", + "assets/refresh-cw-BeTvwxHO.js", + "assets/circle-alert-EvFEdfwm.js", + "assets/flame-LxH7SUbA.js", + "assets/ModelRestrictedModal-C3fyEORB.js", + "assets/markdown-BFkXmfLC.js", + "assets/progress-Eyz1T4LG.js", + "assets/search-D72Br97G.js", + "assets/prefill-Bt9XeRbC.js", + "assets/ModelSelector--btGoe1p.js", + "assets/card-BnT411OX.js", + "assets/switch-CHK59itA.js", + "assets/textarea-BQ0Vj88K.js", + "assets/streaming-indicator-Ckj0qTTQ.js" + ] + }, + { + "route": "/app/flowchart", + "file": "assets/FlowchartPage-hnm2Idlk.js", + "files": [ + "assets/FlowchartPage-hnm2Idlk.js", + "assets/string-cKWu9XK9.js", + "assets/triangle-alert-BgYzclSC.js", + "assets/index-BXPLmGRM.js", + "assets/shield-C8ZFNTgi.js", + "assets/target-BtiUsRv7.js", + "assets/download-B6rLXL5_.js", + "assets/plus-CuZTkh8c.js", + "assets/save--EOuaVhR.js", + "assets/trash-2-F2gcUNIU.js", + "assets/index-CzRyuAKe.js", + "assets/alert-dialog-chuiBWTg.js", + "assets/textarea-BQ0Vj88K.js", + "assets/input-BjDrRHtx.js", + "assets/badge-BC-6QS26.js", + "assets/card-BnT411OX.js" + ] + }, + { + "route": "/app/history", + "file": "assets/HistoryPage-B6Fqkfa7.js", + "files": [ + "assets/HistoryPage-B6Fqkfa7.js", + "assets/trash-2-F2gcUNIU.js", + "assets/index-BXPLmGRM.js", + "assets/brain-M0E5BVtS.js", + "assets/zap-DRG34D0x.js", + "assets/file-text-B6nrM_aa.js", + "assets/empty-state-DM7N_Xh_.js", + "assets/alert-dialog-chuiBWTg.js", + "assets/date-format-CfassM9h.js", + "assets/scroll-area-BTGx2PB1.js", + "assets/badge-BC-6QS26.js", + "assets/tabs-Dc13bJ4B.js", + "assets/card-BnT411OX.js" + ] + }, + { + "route": "/app/admin", + "file": "assets/AdminPage-DxOnwRAE.js", + "files": [ + "assets/AdminPage-DxOnwRAE.js", + "assets/string-cKWu9XK9.js", + "assets/index-DCbKzI_r.js", + "assets/index-BXPLmGRM.js", + "assets/rotate-ccw-v2tcH4l7.js", + "assets/copy-L_02rmZ3.js", + "assets/generateCategoricalChart-tQpM_2Ey.js", + "assets/credit-card-DxReFz7h.js", + "assets/users-BM5mL8hE.js", + "assets/circle-alert-EvFEdfwm.js", + "assets/shield-C8ZFNTgi.js", + "assets/trash-2-F2gcUNIU.js", + "assets/search-D72Br97G.js", + "assets/alert-dialog-chuiBWTg.js", + "assets/textarea-BQ0Vj88K.js", + "assets/checkbox-CPn-6Pk1.js", + "assets/date-format-CfassM9h.js", + "assets/scroll-area-BTGx2PB1.js", + "assets/tabs-Dc13bJ4B.js", + "assets/badge-BC-6QS26.js", + "assets/input-BjDrRHtx.js", + "assets/card-BnT411OX.js" + ] + } + ], + "chunks": [ + { + "file": "assets/index-BXPLmGRM.js", + "bytes": 1043946, + "gzipBytes": 322114, + "imports": [], + "modules": [ + "\u0000vite/modulepreload-polyfill.js", + "src/index.css", + "src/jam-loader.ts", + "\u0000commonjsHelpers.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/jsx-runtime.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/cjs/react-jsx-runtime.production.min.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/cjs/react.production.min.js?commonjs-exports", + "node_modules/react/cjs/react.production.min.js", + "node_modules/react/index.js", + "node_modules/react/cjs/react-jsx-runtime.production.min.js", + "node_modules/react/jsx-runtime.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/jsx-runtime.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/client.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/cjs/react-dom.production.min.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scheduler/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scheduler/cjs/scheduler.production.min.js?commonjs-exports", + "node_modules/scheduler/cjs/scheduler.production.min.js", + "node_modules/scheduler/index.js", + "node_modules/react-dom/cjs/react-dom.production.min.js", + "node_modules/react-dom/index.js", + "node_modules/react-dom/client.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/client.js?commonjs-es-import", + "\u0000vite/preload-helper.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/index.js?commonjs-es-import", + "src/hooks/use-toast.ts", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/index.js?commonjs-es-import", + "node_modules/@radix-ui/primitive/dist/index.mjs", + "node_modules/@radix-ui/react-compose-refs/dist/index.mjs", + "node_modules/@radix-ui/react-context/dist/index.mjs", + "node_modules/@radix-ui/react-slot/dist/index.mjs", + "node_modules/@radix-ui/react-collection/dist/index.mjs", + "node_modules/@radix-ui/react-primitive/dist/index.mjs", + "node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs", + "node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs", + "node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs", + "node_modules/@radix-ui/react-portal/dist/index.mjs", + "node_modules/@radix-ui/react-presence/dist/index.mjs", + "node_modules/@radix-ui/react-use-effect-event/dist/index.mjs", + "node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs", + "node_modules/@radix-ui/react-visually-hidden/dist/index.mjs", + "node_modules/@radix-ui/react-toast/dist/index.mjs", + "node_modules/clsx/dist/clsx.mjs", + "node_modules/class-variance-authority/dist/index.mjs", + "node_modules/lucide-react/dist/esm/shared/src/utils.js", + "node_modules/lucide-react/dist/esm/defaultAttributes.js", + "node_modules/lucide-react/dist/esm/Icon.js", + "node_modules/lucide-react/dist/esm/createLucideIcon.js", + "node_modules/lucide-react/dist/esm/icons/book-open.js", + "node_modules/lucide-react/dist/esm/icons/check.js", + "node_modules/lucide-react/dist/esm/icons/chevron-down.js", + "node_modules/lucide-react/dist/esm/icons/chevron-up.js", + "node_modules/lucide-react/dist/esm/icons/clock.js", + "node_modules/lucide-react/dist/esm/icons/crosshair.js", + "node_modules/lucide-react/dist/esm/icons/database.js", + "node_modules/lucide-react/dist/esm/icons/dumbbell.js", + "node_modules/lucide-react/dist/esm/icons/git-branch.js", + "node_modules/lucide-react/dist/esm/icons/globe.js", + "node_modules/lucide-react/dist/esm/icons/house.js", + "node_modules/lucide-react/dist/esm/icons/laptop.js", + "node_modules/lucide-react/dist/esm/icons/lightbulb.js", + "node_modules/lucide-react/dist/esm/icons/loader-circle.js", + "node_modules/lucide-react/dist/esm/icons/megaphone.js", + "node_modules/lucide-react/dist/esm/icons/menu.js", + "node_modules/lucide-react/dist/esm/icons/message-circle.js", + "node_modules/lucide-react/dist/esm/icons/moon.js", + "node_modules/lucide-react/dist/esm/icons/settings.js", + "node_modules/lucide-react/dist/esm/icons/sparkles.js", + "node_modules/lucide-react/dist/esm/icons/sun.js", + "node_modules/lucide-react/dist/esm/icons/swords.js", + "node_modules/lucide-react/dist/esm/icons/timer.js", + "node_modules/lucide-react/dist/esm/icons/wifi-off.js", + "node_modules/lucide-react/dist/esm/icons/x.js", + "node_modules/tailwind-merge/dist/bundle-mjs.mjs", + "src/lib/utils.ts", + "src/components/ui/toast.tsx", + "src/components/ui/toaster.tsx", + "node_modules/next-themes/dist/index.mjs", + "node_modules/sonner/dist/index.mjs", + "src/components/ui/sonner.tsx", + "node_modules/@radix-ui/react-id/dist/index.mjs", + "node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs", + "node_modules/@floating-ui/core/dist/floating-ui.core.mjs", + "node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs", + "node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs", + "node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs", + "node_modules/@radix-ui/react-use-size/dist/index.mjs", + "node_modules/@radix-ui/react-popper/dist/index.mjs", + "node_modules/@radix-ui/react-tooltip/dist/index.mjs", + "src/components/ui/tooltip.tsx", + "node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js", + "node_modules/@tanstack/query-core/build/modern/timeoutManager.js", + "node_modules/@tanstack/query-core/build/modern/utils.js", + "node_modules/@tanstack/query-core/build/modern/environmentManager.js", + "node_modules/@tanstack/query-core/build/modern/subscribable.js", + "node_modules/@tanstack/query-core/build/modern/focusManager.js", + "node_modules/@tanstack/query-core/build/modern/notifyManager.js", + "node_modules/@tanstack/query-core/build/modern/onlineManager.js", + "node_modules/@tanstack/query-core/build/modern/retryer.js", + "node_modules/@tanstack/query-core/build/modern/removable.js", + "node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js", + "node_modules/@tanstack/query-core/build/modern/query.js", + "node_modules/@tanstack/query-core/build/modern/mutation.js", + "node_modules/@tanstack/query-core/build/modern/mutationCache.js", + "node_modules/@tanstack/query-core/build/modern/queryCache.js", + "node_modules/@tanstack/query-core/build/modern/queryClient.js", + "node_modules/react-router/dist/development/chunk-BV7QT456.mjs", + "node_modules/framer-motion/dist/es/utils/use-constant.mjs", + "node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs", + "node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs", + "node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs", + "node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs", + "node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs", + "node_modules/framer-motion/dist/es/components/MotionConfig/index.mjs", + "node_modules/react-i18next/dist/es/utils.js", + "node_modules/react-i18next/dist/es/unescape.js", + "node_modules/react-i18next/dist/es/defaults.js", + "node_modules/react-i18next/dist/es/i18nInstance.js", + "node_modules/react-i18next/dist/es/initReactI18next.js", + "node_modules/react-i18next/dist/es/context.js", + "node_modules/react-i18next/dist/es/useTranslation.js", + "src/lib/route-modules.ts", + "src/hooks/use-route-prefetch.ts", + "src/components/NavLink.tsx", + "src/components/ui/button.tsx", + "node_modules/zustand/esm/vanilla.mjs", + "node_modules/zustand/esm/react.mjs", + "node_modules/zustand/esm/middleware.mjs", + "node_modules/i18next/dist/esm/i18next.js", + "src/locales/en.json", + "src/locales/es.json", + "src/locales/hu.json", + "src/i18n.ts", + "supabase/functions/_shared/model-catalog.ts", + "src/lib/ai/providers/types.ts", + "node_modules/@supabase/supabase-js/dist/tracingRegistry.mjs", + "node_modules/tslib/tslib.es6.mjs", + "node_modules/@supabase/functions-js/dist/module/helper.js", + "node_modules/@supabase/functions-js/dist/module/types.js", + "node_modules/@supabase/functions-js/dist/module/FunctionsClient.js", + "node_modules/@supabase/postgrest-js/dist/index.mjs", + "node_modules/@supabase/realtime-js/dist/module/lib/websocket-factory.js", + "node_modules/@supabase/realtime-js/dist/module/lib/version.js", + "node_modules/@supabase/realtime-js/dist/module/lib/constants.js", + "node_modules/@supabase/realtime-js/dist/module/lib/serializer.js", + "node_modules/@supabase/realtime-js/dist/module/lib/transformers.js", + "node_modules/@supabase/phoenix/priv/static/phoenix.mjs", + "node_modules/@supabase/realtime-js/dist/module/phoenix/presenceAdapter.js", + "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js", + "node_modules/@supabase/realtime-js/dist/module/lib/normalizeChannelError.js", + "node_modules/@supabase/realtime-js/dist/module/phoenix/channelAdapter.js", + "node_modules/@supabase/realtime-js/dist/module/RealtimePostgresFilterBuilder.js", + "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js", + "node_modules/@supabase/realtime-js/dist/module/phoenix/socketAdapter.js", + "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js", + "node_modules/iceberg-js/dist/index.mjs", + "node_modules/@supabase/storage-js/dist/index.mjs", + "node_modules/@supabase/auth-js/dist/module/lib/version.js", + "node_modules/@supabase/auth-js/dist/module/lib/constants.js", + "node_modules/@supabase/auth-js/dist/module/lib/errors.js", + "node_modules/@supabase/auth-js/dist/module/lib/base64url.js", + "node_modules/@supabase/auth-js/dist/module/lib/helpers.js", + "node_modules/@supabase/auth-js/dist/module/lib/fetch.js", + "node_modules/@supabase/auth-js/dist/module/lib/types.js", + "node_modules/@supabase/auth-js/dist/module/GoTrueAdminApi.js", + "node_modules/@supabase/auth-js/dist/module/lib/local-storage.js", + "node_modules/@supabase/auth-js/dist/module/lib/locks.js", + "node_modules/@supabase/auth-js/dist/module/lib/polyfills.js", + "node_modules/@supabase/auth-js/dist/module/lib/web3/ethereum.js", + "node_modules/@supabase/auth-js/dist/module/lib/webauthn.errors.js", + "node_modules/@supabase/auth-js/dist/module/lib/webauthn.js", + "node_modules/@supabase/auth-js/dist/module/GoTrueClient.js", + "node_modules/@supabase/auth-js/dist/module/AuthClient.js", + "node_modules/@supabase/supabase-js/dist/index.mjs", + "src/lib/supabase/env.ts", + "src/lib/supabase/client.ts", + "src/lib/stores/settings-store.ts", + "src/components/ThemeToggle.tsx", + "node_modules/@radix-ui/number/dist/index.mjs", + "node_modules/@radix-ui/react-direction/dist/index.mjs", + "node_modules/@radix-ui/react-focus-guards/dist/index.mjs", + "node_modules/@radix-ui/react-focus-scope/dist/index.mjs", + "node_modules/@radix-ui/react-use-previous/dist/index.mjs", + "node_modules/aria-hidden/dist/es2015/index.js", + "node_modules/react-remove-scroll-bar/dist/es2015/constants.js", + "node_modules/use-callback-ref/dist/es2015/assignRef.js", + "node_modules/use-callback-ref/dist/es2015/useRef.js", + "node_modules/use-callback-ref/dist/es2015/useMergeRef.js", + "node_modules/use-sidecar/dist/es2015/medium.js", + "node_modules/use-sidecar/dist/es2015/exports.js", + "node_modules/react-remove-scroll/dist/es2015/medium.js", + "node_modules/react-remove-scroll/dist/es2015/UI.js", + "node_modules/get-nonce/dist/es2015/index.js", + "node_modules/react-style-singleton/dist/es2015/singleton.js", + "node_modules/react-style-singleton/dist/es2015/hook.js", + "node_modules/react-style-singleton/dist/es2015/component.js", + "node_modules/react-remove-scroll-bar/dist/es2015/utils.js", + "node_modules/react-remove-scroll-bar/dist/es2015/component.js", + "node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js", + "node_modules/react-remove-scroll/dist/es2015/handleScroll.js", + "node_modules/react-remove-scroll/dist/es2015/SideEffect.js", + "node_modules/react-remove-scroll/dist/es2015/sidecar.js", + "node_modules/react-remove-scroll/dist/es2015/Combination.js", + "node_modules/@radix-ui/react-select/dist/index.mjs", + "src/components/ui/select.tsx", + "node_modules/@radix-ui/react-dialog/dist/index.mjs", + "src/components/ui/dialog.tsx", + "node_modules/@radix-ui/react-label/dist/index.mjs", + "src/components/ui/label.tsx", + "src/components/LanguageSwitcher.tsx", + "src/components/layout/AnnouncementBanner.tsx", + "src/lib/stores/session-store.ts", + "node_modules/zod/v4/core/util.js", + "node_modules/zod/v4/core/core.js", + "node_modules/zod/v4/core/errors.js", + "node_modules/zod/v4/core/parse.js", + "node_modules/zod/v4/core/regexes.js", + "node_modules/zod/v4/core/checks.js", + "node_modules/zod/v4/core/doc.js", + "node_modules/zod/v4/core/versions.js", + "node_modules/zod/v4/core/schemas.js", + "node_modules/zod/v4/core/memoizer.js", + "node_modules/zod/v4/locales/en.js", + "node_modules/zod/v4/core/registries.js", + "node_modules/zod/v4/core/api.js", + "node_modules/zod/v4/core/to-json-schema.js", + "node_modules/zod/v4/core/json-schema-processors.js", + "node_modules/zod/v4/classic/errors.js", + "node_modules/zod/v4/classic/parse.js", + "node_modules/zod/v4/classic/schemas.js", + "node_modules/zod/v4/classic/iso.js", + "src/lib/ai/schemas/sparring.ts", + "src/lib/sparring/formats.ts", + "src/lib/observability.ts", + "src/lib/stores/sparring-store.ts", + "node_modules/@capacitor/core/dist/index.js", + "node_modules/@capacitor/browser/dist/esm/index.js", + "src/lib/native.ts", + "node_modules/@jam.dev/sdk/dist/jamsdk.js", + "src/lib/jam-metadata.ts", + "src/lib/crossfire/schemas.ts", + "src/lib/crossfire/storage.ts", + "src/lib/supabase/AuthProvider.tsx", + "src/lib/announcements.ts", + "src/components/layout/AppLayout.tsx", + "src/components/auth/RequireAuth.tsx", + "src/components/ThemeProvider.tsx", + "src/hooks/use-session-storage-sync.ts", + "src/hooks/use-onboarding.ts", + "src/components/OfflineIndicator.tsx", + "src/components/loading/RouteSkeleton.tsx", + "src/App.tsx", + "src/components/WebTelemetry.tsx", + "node_modules/@capacitor/app/dist/esm/index.js", + "src/native-app-url-listener.ts", + "node_modules/@capacitor/haptics/dist/esm/definitions.js", + "node_modules/@capacitor/haptics/dist/esm/index.js", + "node_modules/@capacitor/keyboard/dist/esm/definitions.js", + "node_modules/@capacitor/keyboard/dist/esm/index.js", + "node_modules/@capacitor/status-bar/dist/esm/definitions.js", + "node_modules/@capacitor/status-bar/dist/esm/index.js", + "src/native-runtime.ts", + "src/register-service-worker.ts", + "src/main.tsx", + "src/bootstrap.ts", + "index.html?html-proxy&inline-css&index=1.css", + "index.html" + ], + "staticMembership": [ + "index.html", + "/", + "/login", + "/app", + "/app/generate", + "/app/attack", + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "index.html" + }, + { + "file": "assets/OnboardingTour-D3HRgV01.js", + "bytes": 103062, + "gzipBytes": 31750, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/index-DCbKzI_r.js" + ], + "modules": [ + "node_modules/@gilbarbara/deep-equal/dist/index.mjs", + "node_modules/is-lite/dist/index.mjs", + "node_modules/tree-changes/dist/index.mjs", + "node_modules/scroll/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scroll/index.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scrollparent/scrollparent.js?commonjs-module", + "node_modules/scrollparent/scrollparent.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scrollparent/scrollparent.js?commonjs-es-import", + "node_modules/react-innertext/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-innertext/index.js?commonjs-es-import", + "node_modules/deepmerge/dist/cjs.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/deepmerge/dist/cjs.js?commonjs-es-import", + "node_modules/popper.js/dist/esm/popper.js", + "node_modules/react-floater/node_modules/is-lite/esm/index.js", + "node_modules/react-floater/node_modules/@gilbarbara/deep-equal/esm/helpers.js", + "node_modules/react-floater/node_modules/@gilbarbara/deep-equal/esm/index.js", + "node_modules/react-floater/node_modules/tree-changes/esm/helpers.js", + "node_modules/react-floater/node_modules/tree-changes/esm/index.js", + "node_modules/react-floater/es/index.js", + "node_modules/react-joyride/dist/index.mjs", + "src/components/features/onboarding/OnboardingTour.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/components/features/onboarding/OnboardingTour.tsx" + }, + { + "file": "assets/index-D_w_W2TW.js", + "bytes": 2665, + "gzipBytes": 1242, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/@vercel/analytics/dist/react/index.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@vercel/analytics/dist/react/index.mjs" + }, + { + "file": "assets/index-BOmRsjz8.js", + "bytes": 2350, + "gzipBytes": 1107, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/@vercel/speed-insights/dist/react/index.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@vercel/speed-insights/dist/react/index.mjs" + }, + { + "file": "assets/LandingPage-BEJhBS06.js", + "bytes": 45814, + "gzipBytes": 11162, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/use-reduced-motion-v_1o4Ngt.js", + "assets/proxy-CZ59rzDR.js", + "assets/arrow-right-_GA5t6Ff.js", + "assets/crown-BzZHpcif.js", + "assets/zap-DRG34D0x.js", + "assets/brain-M0E5BVtS.js", + "assets/search-D72Br97G.js", + "assets/users-BM5mL8hE.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-check.js", + "node_modules/lucide-react/dist/esm/icons/file-search.js", + "node_modules/lucide-react/dist/esm/icons/gavel.js", + "node_modules/lucide-react/dist/esm/icons/graduation-cap.js", + "node_modules/lucide-react/dist/esm/icons/history.js", + "node_modules/lucide-react/dist/esm/icons/network.js", + "node_modules/lucide-react/dist/esm/icons/scan-search.js", + "node_modules/lucide-react/dist/esm/icons/trophy.js", + "node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs", + "src/components/landing/Navbar.tsx", + "src/components/landing/Hero.tsx", + "src/components/landing/SocialProof.tsx", + "src/components/landing/WhatsNew.tsx", + "src/components/landing/Features.tsx", + "src/components/landing/Pricing.tsx", + "src/components/landing/DeepDive.tsx", + "src/components/landing/UseCases.tsx", + "src/components/landing/HowItWorks.tsx", + "node_modules/@radix-ui/react-collapsible/dist/index.mjs", + "node_modules/@radix-ui/react-accordion/dist/index.mjs", + "src/components/ui/accordion.tsx", + "src/components/landing/FAQ.tsx", + "src/components/landing/FinalCTA.tsx", + "src/components/landing/Footer.tsx", + "src/pages/LandingPage.tsx" + ], + "staticMembership": [ + "/" + ], + "dynamicEntry": "src/pages/LandingPage.tsx" + }, + { + "file": "assets/TermsPage-BOTALLMN.js", + "bytes": 772, + "gzipBytes": 421, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "src/pages/TermsPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/TermsPage.tsx" + }, + { + "file": "assets/PrivacyPage-D9Cozr5T.js", + "bytes": 782, + "gzipBytes": 423, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "src/pages/PrivacyPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/PrivacyPage.tsx" + }, + { + "file": "assets/SourcesPage-CNyFodT6.js", + "bytes": 4766, + "gzipBytes": 2080, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "src/pages/SourcesPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/SourcesPage.tsx" + }, + { + "file": "assets/LoginPage-CD0NVSxt.js", + "bytes": 6794, + "gzipBytes": 2206, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/card-BnT411OX.js", + "assets/input-BjDrRHtx.js", + "assets/tabs-Dc13bJ4B.js" + ], + "modules": [ + "src/pages/LoginPage.tsx" + ], + "staticMembership": [ + "/login" + ], + "dynamicEntry": "src/pages/LoginPage.tsx" + }, + { + "file": "assets/SharedPage-TMNbj13C.js", + "bytes": 3249, + "gzipBytes": 1303, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/card-BnT411OX.js", + "assets/badge-BC-6QS26.js", + "assets/date-format-CfassM9h.js", + "assets/download-B6rLXL5_.js", + "assets/external-link-CeL3t6Kr.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/share-2.js", + "src/pages/SharedPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/SharedPage.tsx" + }, + { + "file": "assets/HomePage-BcLTnuQ3.js", + "bytes": 3439, + "gzipBytes": 1261, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/card-BnT411OX.js", + "assets/arrow-right-_GA5t6Ff.js" + ], + "modules": [ + "src/pages/HomePage.tsx" + ], + "staticMembership": [ + "/app" + ], + "dynamicEntry": "src/pages/HomePage.tsx" + }, + { + "file": "assets/GeneratePage-Chk9sB1m.js", + "bytes": 28562, + "gzipBytes": 8173, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/streaming-indicator-Ckj0qTTQ.js", + "assets/input-BjDrRHtx.js", + "assets/card-BnT411OX.js", + "assets/client-DEwlmyst.js", + "assets/use-speech-to-text-BwciQCuH.js", + "assets/ModelSelector--btGoe1p.js", + "assets/prefill-Bt9XeRbC.js", + "assets/badge-BC-6QS26.js", + "assets/markdown-BFkXmfLC.js", + "assets/ModelRestrictedModal-C3fyEORB.js", + "assets/date-format-CfassM9h.js", + "assets/flame-LxH7SUbA.js", + "assets/save--EOuaVhR.js", + "assets/refresh-cw-BeTvwxHO.js", + "assets/target-BtiUsRv7.js", + "assets/shield-C8ZFNTgi.js", + "assets/triangle-alert-BgYzclSC.js", + "assets/error-display-CfPmd3wN.js", + "assets/PricingModal-D8mLWjDu.js", + "assets/use-reduced-motion-v_1o4Ngt.js", + "assets/index-CzRyuAKe.js", + "assets/file-text-B6nrM_aa.js", + "assets/external-link-CeL3t6Kr.js", + "assets/url-CeZm_C1D.js", + "assets/use-subscription-DPxqRAbU.js", + "assets/zap-DRG34D0x.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-BzZHpcif.js", + "assets/string-cKWu9XK9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/clipboard.js", + "node_modules/lucide-react/dist/esm/icons/wand-sparkles.js", + "src/components/features/generate/GenerateForm.tsx", + "src/components/features/generate/GenerateResults.tsx", + "src/pages/GeneratePage.tsx" + ], + "staticMembership": [ + "/app/generate" + ], + "dynamicEntry": "src/pages/GeneratePage.tsx" + }, + { + "file": "assets/AttackPage-DjMYLo0u.js", + "bytes": 19042, + "gzipBytes": 5376, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/streaming-indicator-Ckj0qTTQ.js", + "assets/textarea-BQ0Vj88K.js", + "assets/switch-CHK59itA.js", + "assets/card-BnT411OX.js", + "assets/client-DEwlmyst.js", + "assets/ModelSelector--btGoe1p.js", + "assets/prefill-Bt9XeRbC.js", + "assets/search-D72Br97G.js", + "assets/badge-BC-6QS26.js", + "assets/progress-Eyz1T4LG.js", + "assets/markdown-BFkXmfLC.js", + "assets/ModelRestrictedModal-C3fyEORB.js", + "assets/flame-LxH7SUbA.js", + "assets/circle-alert-EvFEdfwm.js", + "assets/refresh-cw-BeTvwxHO.js", + "assets/triangle-alert-BgYzclSC.js", + "assets/error-display-CfPmd3wN.js", + "assets/PricingModal-D8mLWjDu.js", + "assets/file-text-B6nrM_aa.js", + "assets/external-link-CeL3t6Kr.js", + "assets/url-CeZm_C1D.js", + "assets/use-subscription-DPxqRAbU.js", + "assets/zap-DRG34D0x.js", + "assets/input-BjDrRHtx.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-BzZHpcif.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/info.js", + "node_modules/lucide-react/dist/esm/icons/scale.js", + "src/components/features/attack/AttackForm.tsx", + "src/components/features/attack/AttackResults.tsx", + "src/pages/AttackPage.tsx" + ], + "staticMembership": [ + "/app/attack" + ], + "dynamicEntry": "src/pages/AttackPage.tsx" + }, + { + "file": "assets/prefill-Bt9XeRbC.js", + "bytes": 1983, + "gzipBytes": 960, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/sliders-horizontal.js", + "node_modules/@radix-ui/react-separator/dist/index.mjs", + "src/components/ui/separator.tsx", + "src/lib/crossfire/prefill.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_prefill-Bt9XeRbC.js" + }, + { + "file": "assets/BrainstormPage-CzulC9rz.js", + "bytes": 15091, + "gzipBytes": 4728, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/streaming-indicator-Ckj0qTTQ.js", + "assets/input-BjDrRHtx.js", + "assets/textarea-BQ0Vj88K.js", + "assets/card-BnT411OX.js", + "assets/ModelSelector--btGoe1p.js", + "assets/brain-M0E5BVtS.js", + "assets/badge-BC-6QS26.js", + "assets/ModelRestrictedModal-C3fyEORB.js", + "assets/empty-state-DM7N_Xh_.js", + "assets/triangle-alert-BgYzclSC.js", + "assets/arrow-right-_GA5t6Ff.js", + "assets/client-DEwlmyst.js", + "assets/error-display-CfPmd3wN.js", + "assets/PricingModal-D8mLWjDu.js", + "assets/refresh-cw-BeTvwxHO.js", + "assets/file-text-B6nrM_aa.js", + "assets/external-link-CeL3t6Kr.js", + "assets/use-subscription-DPxqRAbU.js", + "assets/zap-DRG34D0x.js", + "assets/url-CeZm_C1D.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-BzZHpcif.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/trending-up.js", + "src/lib/ai/schemas/brainstorm.ts", + "src/components/features/brainstorm/BrainstormForm.tsx", + "src/components/features/brainstorm/BrainstormResults.tsx", + "src/pages/BrainstormPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/BrainstormPage.tsx" + }, + { + "file": "assets/FactoidsPage-Desc9OHj.js", + "bytes": 27493, + "gzipBytes": 9075, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/streaming-indicator-Ckj0qTTQ.js", + "assets/input-BjDrRHtx.js", + "assets/card-BnT411OX.js", + "assets/client-DEwlmyst.js", + "assets/ModelSelector--btGoe1p.js", + "assets/search-D72Br97G.js", + "assets/badge-BC-6QS26.js", + "assets/progress-Eyz1T4LG.js", + "assets/ModelRestrictedModal-C3fyEORB.js", + "assets/triangle-alert-BgYzclSC.js", + "assets/external-link-CeL3t6Kr.js", + "assets/bookmark-B9VbbzBD.js", + "assets/error-display-CfPmd3wN.js", + "assets/PricingModal-D8mLWjDu.js", + "assets/refresh-cw-BeTvwxHO.js", + "assets/file-text-B6nrM_aa.js", + "assets/url-CeZm_C1D.js", + "assets/use-subscription-DPxqRAbU.js", + "assets/zap-DRG34D0x.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-BzZHpcif.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-check-big.js", + "node_modules/@radix-ui/react-slider/dist/index.mjs", + "src/components/ui/slider.tsx", + "src/components/features/factoids/FactoidsForm.tsx", + "src/components/features/factoids/FactoidsResults.tsx", + "src/pages/FactoidsPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/FactoidsPage.tsx" + }, + { + "file": "assets/streaming-indicator-Ckj0qTTQ.js", + "bytes": 40952, + "gzipBytes": 14991, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/card-BnT411OX.js", + "assets/refresh-cw-BeTvwxHO.js", + "assets/file-text-B6nrM_aa.js", + "assets/external-link-CeL3t6Kr.js", + "assets/badge-BC-6QS26.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/file-down.js", + "node_modules/lucide-react/dist/esm/icons/undo-2.js", + "node_modules/react-hook-form/dist/index.esm.mjs", + "node_modules/@hookform/resolvers/dist/resolvers.mjs", + "node_modules/@hookform/resolvers/zod/dist/zod.mjs", + "src/components/ui/loading-spinner.tsx", + "src/components/ui/section-card.tsx", + "src/components/icons/GoogleDocsIcon.tsx", + "src/components/features/AutoSavedSourcesUndo.tsx", + "src/components/features/ExportToolbar.tsx", + "src/components/features/export/GoogleDriveAuthModal.tsx", + "src/components/features/shared/SourceQualityList.tsx", + "src/components/ui/streaming-indicator.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_streaming-indicator-Ckj0qTTQ.js" + }, + { + "file": "assets/AskPage-D3eVFOW4.js", + "bytes": 30936, + "gzipBytes": 9847, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/input-BjDrRHtx.js", + "assets/markdown-BFkXmfLC.js", + "assets/card-BnT411OX.js", + "assets/switch-CHK59itA.js", + "assets/scroll-area-BTGx2PB1.js", + "assets/use-speech-to-text-BwciQCuH.js", + "assets/date-format-CfassM9h.js", + "assets/ModelSelector--btGoe1p.js", + "assets/sheet-Dfq5h2d1.js", + "assets/use-reduced-motion-v_1o4Ngt.js", + "assets/save--EOuaVhR.js", + "assets/rotate-ccw-v2tcH4l7.js", + "assets/circle-help-B0oPixm9.js", + "assets/search-D72Br97G.js", + "assets/send-DyAEqj-V.js", + "assets/bookmark-B9VbbzBD.js", + "assets/client-DEwlmyst.js", + "assets/ModelRestrictedModal-C3fyEORB.js", + "assets/error-display-CfPmd3wN.js", + "assets/PricingModal-D8mLWjDu.js", + "assets/badge-BC-6QS26.js", + "assets/use-subscription-DPxqRAbU.js", + "assets/url-CeZm_C1D.js", + "assets/triangle-alert-BgYzclSC.js", + "assets/zap-DRG34D0x.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-BzZHpcif.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-plus.js", + "node_modules/lucide-react/dist/esm/icons/list.js", + "node_modules/lucide-react/dist/esm/icons/map.js", + "node_modules/lucide-react/dist/esm/icons/panel-left-open.js", + "node_modules/lucide-react/dist/esm/icons/paperclip.js", + "node_modules/lucide-react/dist/esm/icons/quote.js", + "src/lib/validation/file.ts", + "src/components/features/ask/AskChat.tsx", + "src/lib/ai/streaming.ts", + "src/pages/AskPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/AskPage.tsx" + }, + { + "file": "assets/use-speech-to-text-BwciQCuH.js", + "bytes": 1930, + "gzipBytes": 951, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/mic-off.js", + "node_modules/lucide-react/dist/esm/icons/mic.js", + "src/hooks/use-speech-to-text.ts" + ], + "staticMembership": [ + "/app/generate" + ], + "dynamicEntry": "_use-speech-to-text-BwciQCuH.js" + }, + { + "file": "assets/bookmark-B9VbbzBD.js", + "bytes": 160, + "gzipBytes": 159, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/bookmark.js" + ], + "staticMembership": [], + "dynamicEntry": "_bookmark-B9VbbzBD.js" + }, + { + "file": "assets/ModelRestrictedModal-C3fyEORB.js", + "bytes": 3984, + "gzipBytes": 1464, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/client-DEwlmyst.js", + "assets/triangle-alert-BgYzclSC.js", + "assets/zap-DRG34D0x.js", + "assets/PricingModal-D8mLWjDu.js" + ], + "modules": [ + "src/components/ui/animated-section.tsx", + "src/hooks/use-subscription-error.ts", + "src/components/features/subscription/LimitReachedModal.tsx", + "src/components/features/subscription/ModelRestrictedModal.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_ModelRestrictedModal-C3fyEORB.js" + }, + { + "file": "assets/CrossfirePage-6-RlWW8P.js", + "bytes": 26182, + "gzipBytes": 6863, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/badge-BC-6QS26.js", + "assets/card-BnT411OX.js", + "assets/checkbox-CPn-6Pk1.js", + "assets/textarea-BQ0Vj88K.js", + "assets/client-DEwlmyst.js", + "assets/error-display-CfPmd3wN.js", + "assets/use-reduced-motion-v_1o4Ngt.js", + "assets/flame-LxH7SUbA.js", + "assets/circle-alert-EvFEdfwm.js", + "assets/refresh-cw-BeTvwxHO.js", + "assets/clock-3-cVu-fg4P.js", + "assets/send-DyAEqj-V.js", + "assets/rotate-ccw-v2tcH4l7.js", + "assets/shield-check-DU5mFNut.js", + "assets/proxy-CZ59rzDR.js", + "assets/url-CeZm_C1D.js" + ], + "modules": [ + "src/components/ui/alert.tsx", + "src/lib/crossfire/reducer.ts", + "src/pages/CrossfirePage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/CrossfirePage.tsx" + }, + { + "file": "assets/proxy-CZ59rzDR.js", + "bytes": 121276, + "gzipBytes": 39636, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/use-reduced-motion-v_1o4Ngt.js" + ], + "modules": [ + "node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs", + "node_modules/framer-motion/dist/es/utils/is-browser.mjs", + "node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs", + "node_modules/framer-motion/dist/es/context/PresenceContext.mjs", + "node_modules/motion-utils/dist/es/array.mjs", + "node_modules/motion-utils/dist/es/clamp.mjs", + "node_modules/motion-utils/dist/es/errors.mjs", + "node_modules/motion-utils/dist/es/global-config.mjs", + "node_modules/motion-utils/dist/es/is-numerical-string.mjs", + "node_modules/motion-utils/dist/es/is-object.mjs", + "node_modules/motion-utils/dist/es/is-zero-value-string.mjs", + "node_modules/motion-utils/dist/es/memo.mjs", + "node_modules/motion-utils/dist/es/noop.mjs", + "node_modules/motion-utils/dist/es/pipe.mjs", + "node_modules/motion-utils/dist/es/progress.mjs", + "node_modules/motion-utils/dist/es/subscription-manager.mjs", + "node_modules/motion-utils/dist/es/time-conversion.mjs", + "node_modules/motion-utils/dist/es/velocity-per-second.mjs", + "node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs", + "node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs", + "node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs", + "node_modules/motion-utils/dist/es/easing/back.mjs", + "node_modules/motion-utils/dist/es/easing/anticipate.mjs", + "node_modules/motion-utils/dist/es/easing/circ.mjs", + "node_modules/motion-utils/dist/es/easing/ease.mjs", + "node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs", + "node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs", + "node_modules/motion-utils/dist/es/easing/utils/map.mjs", + "node_modules/motion-dom/dist/es/frameloop/order.mjs", + "node_modules/motion-dom/dist/es/frameloop/render-step.mjs", + "node_modules/motion-dom/dist/es/frameloop/batcher.mjs", + "node_modules/motion-dom/dist/es/frameloop/frame.mjs", + "node_modules/motion-dom/dist/es/frameloop/sync-time.mjs", + "node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs", + "node_modules/motion-dom/dist/es/value/types/numbers/index.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs", + "node_modules/motion-dom/dist/es/value/types/color/utils.mjs", + "node_modules/motion-dom/dist/es/value/types/color/rgba.mjs", + "node_modules/motion-dom/dist/es/value/types/color/hex.mjs", + "node_modules/motion-dom/dist/es/value/types/numbers/units.mjs", + "node_modules/motion-dom/dist/es/value/types/color/hsla.mjs", + "node_modules/motion-dom/dist/es/value/types/color/index.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs", + "node_modules/motion-dom/dist/es/value/types/complex/index.mjs", + "node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs", + "node_modules/motion-dom/dist/es/utils/mix/immediate.mjs", + "node_modules/motion-dom/dist/es/utils/mix/number.mjs", + "node_modules/motion-dom/dist/es/utils/mix/color.mjs", + "node_modules/motion-dom/dist/es/utils/mix/visibility.mjs", + "node_modules/motion-dom/dist/es/utils/mix/complex.mjs", + "node_modules/motion-dom/dist/es/utils/mix/index.mjs", + "node_modules/motion-dom/dist/es/animation/drivers/frame.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs", + "node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs", + "node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs", + "node_modules/motion-dom/dist/es/animation/generators/spring.mjs", + "node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs", + "node_modules/motion-dom/dist/es/animation/generators/inertia.mjs", + "node_modules/motion-dom/dist/es/utils/interpolate.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs", + "node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs", + "node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs", + "node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs", + "node_modules/motion-dom/dist/es/animation/JSAnimation.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs", + "node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs", + "node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs", + "node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs", + "node_modules/motion-dom/dist/es/render/dom/style-set.mjs", + "node_modules/motion-dom/dist/es/utils/supports/flags.mjs", + "node_modules/motion-dom/dist/es/utils/supports/memo.mjs", + "node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs", + "node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs", + "node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs", + "node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs", + "node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs", + "node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs", + "node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs", + "node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/is-browser-color.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs", + "node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs", + "node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs", + "node_modules/motion-dom/dist/es/value/index.mjs", + "node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs", + "node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs", + "node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs", + "node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs", + "node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs", + "node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs", + "node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs", + "node_modules/motion-dom/dist/es/render/utils/keys-position.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs", + "node_modules/motion-dom/dist/es/render/utils/setters.mjs", + "node_modules/motion-dom/dist/es/value/will-change/is.mjs", + "node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs", + "node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs", + "node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs", + "node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs", + "node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs", + "node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs", + "node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs", + "node_modules/motion-dom/dist/es/value/types/auto.mjs", + "node_modules/motion-dom/dist/es/value/types/test.mjs", + "node_modules/motion-dom/dist/es/value/types/dimensions.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs", + "node_modules/motion-dom/dist/es/value/types/complex/filter.mjs", + "node_modules/motion-dom/dist/es/value/types/complex/mask.mjs", + "node_modules/motion-dom/dist/es/value/types/int.mjs", + "node_modules/motion-dom/dist/es/value/types/maps/transform.mjs", + "node_modules/motion-dom/dist/es/value/types/maps/number.mjs", + "node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs", + "node_modules/motion-dom/dist/es/utils/border-radius.mjs", + "node_modules/motion-dom/dist/es/utils/resolve-elements.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs", + "node_modules/motion-dom/dist/es/utils/is-html-element.mjs", + "node_modules/motion-dom/dist/es/frameloop/microtask.mjs", + "node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs", + "node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs", + "node_modules/motion-dom/dist/es/gestures/utils/setup.mjs", + "node_modules/motion-dom/dist/es/gestures/hover.mjs", + "node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs", + "node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs", + "node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs", + "node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs", + "node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs", + "node_modules/motion-dom/dist/es/gestures/press/index.mjs", + "node_modules/motion-dom/dist/es/utils/is-svg-element.mjs", + "node_modules/motion-dom/dist/es/resize/handle-element.mjs", + "node_modules/motion-dom/dist/es/resize/handle-window.mjs", + "node_modules/motion-dom/dist/es/resize/index.mjs", + "node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/find.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/models.mjs", + "node_modules/motion-dom/dist/es/render/store.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs", + "node_modules/motion-dom/dist/es/render/utils/variant-props.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs", + "node_modules/motion-dom/dist/es/render/utils/motion-values.mjs", + "node_modules/motion-dom/dist/es/render/VisualElement.mjs", + "node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs", + "node_modules/motion-dom/dist/es/render/Feature.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs", + "node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs", + "node_modules/motion-dom/dist/es/projection/utils/measure.mjs", + "node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs", + "node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs", + "node_modules/motion-dom/dist/es/render/html/utils/render.mjs", + "node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs", + "node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs", + "node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs", + "node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs", + "node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/path.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/render.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs", + "node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs", + "node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs", + "node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs", + "node_modules/motion-dom/dist/es/render/utils/animation-state.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/copy.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/utils.mjs", + "node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs", + "node_modules/motion-dom/dist/es/projection/styles/transform.mjs", + "node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs", + "node_modules/motion-dom/dist/es/animation/animate/single-value.mjs", + "node_modules/motion-dom/dist/es/events/add-dom-event.mjs", + "node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs", + "node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs", + "node_modules/motion-dom/dist/es/utils/delay.mjs", + "node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs", + "node_modules/motion-dom/dist/es/projection/shared/stack.mjs", + "node_modules/motion-dom/dist/es/projection/node/state.mjs", + "node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs", + "node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs", + "node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs", + "node_modules/framer-motion/dist/es/context/LazyContext.mjs", + "node_modules/framer-motion/dist/es/motion/features/definitions.mjs", + "node_modules/framer-motion/dist/es/motion/features/load-features.mjs", + "node_modules/framer-motion/dist/es/context/MotionContext/index.mjs", + "node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs", + "node_modules/framer-motion/dist/es/context/MotionContext/create.mjs", + "node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs", + "node_modules/framer-motion/dist/es/render/html/use-props.mjs", + "node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs", + "node_modules/framer-motion/dist/es/render/svg/use-props.mjs", + "node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs", + "node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs", + "node_modules/framer-motion/dist/es/render/dom/use-render.mjs", + "node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs", + "node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs", + "node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs", + "node_modules/framer-motion/dist/es/motion/utils/symbol.mjs", + "node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs", + "node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs", + "node_modules/framer-motion/dist/es/utils/is-ref-object.mjs", + "node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs", + "node_modules/framer-motion/dist/es/motion/index.mjs", + "node_modules/framer-motion/dist/es/render/components/create-proxy.mjs", + "node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs", + "node_modules/framer-motion/dist/es/motion/features/animation/index.mjs", + "node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs", + "node_modules/framer-motion/dist/es/motion/features/animations.mjs", + "node_modules/framer-motion/dist/es/events/event-info.mjs", + "node_modules/framer-motion/dist/es/events/add-pointer-event.mjs", + "node_modules/framer-motion/dist/es/utils/get-context-window.mjs", + "node_modules/framer-motion/dist/es/utils/distance.mjs", + "node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs", + "node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs", + "node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs", + "node_modules/framer-motion/dist/es/gestures/drag/index.mjs", + "node_modules/framer-motion/dist/es/gestures/pan/index.mjs", + "node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs", + "node_modules/framer-motion/dist/es/motion/features/drag.mjs", + "node_modules/framer-motion/dist/es/gestures/hover.mjs", + "node_modules/framer-motion/dist/es/gestures/focus.mjs", + "node_modules/framer-motion/dist/es/gestures/press.mjs", + "node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs", + "node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs", + "node_modules/framer-motion/dist/es/motion/features/gestures.mjs", + "node_modules/framer-motion/dist/es/motion/features/layout.mjs", + "node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs", + "node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs" + ], + "staticMembership": [ + "/" + ], + "dynamicEntry": "_proxy-CZ59rzDR.js" + }, + { + "file": "assets/flame-LxH7SUbA.js", + "bytes": 275, + "gzipBytes": 228, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/flame.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_flame-LxH7SUbA.js" + }, + { + "file": "assets/refresh-cw-BeTvwxHO.js", + "bytes": 438, + "gzipBytes": 277, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/message-square.js", + "node_modules/lucide-react/dist/esm/icons/refresh-cw.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_refresh-cw-BeTvwxHO.js" + }, + { + "file": "assets/use-reduced-motion-v_1o4Ngt.js", + "bytes": 387, + "gzipBytes": 271, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs", + "node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs", + "node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.mjs" + ], + "staticMembership": [ + "/", + "/app/generate" + ], + "dynamicEntry": "_use-reduced-motion-v_1o4Ngt.js" + }, + { + "file": "assets/error-display-CfPmd3wN.js", + "bytes": 1464, + "gzipBytes": 627, + "imports": [ + "assets/client-DEwlmyst.js" + ], + "modules": [ + "src/lib/ai/error-display.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_error-display-CfPmd3wN.js" + }, + { + "file": "assets/HistoryPage-B6Fqkfa7.js", + "bytes": 11679, + "gzipBytes": 2623, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/card-BnT411OX.js", + "assets/tabs-Dc13bJ4B.js", + "assets/badge-BC-6QS26.js", + "assets/scroll-area-BTGx2PB1.js", + "assets/date-format-CfassM9h.js", + "assets/alert-dialog-chuiBWTg.js", + "assets/empty-state-DM7N_Xh_.js", + "assets/file-text-B6nrM_aa.js", + "assets/zap-DRG34D0x.js", + "assets/brain-M0E5BVtS.js", + "assets/trash-2-F2gcUNIU.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/eye.js", + "src/pages/HistoryPage.tsx" + ], + "staticMembership": [ + "/app/history" + ], + "dynamicEntry": "src/pages/HistoryPage.tsx" + }, + { + "file": "assets/empty-state-DM7N_Xh_.js", + "bytes": 609, + "gzipBytes": 375, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "src/components/ui/empty-state.tsx" + ], + "staticMembership": [ + "/app/history" + ], + "dynamicEntry": "_empty-state-DM7N_Xh_.js" + }, + { + "file": "assets/brain-M0E5BVtS.js", + "bytes": 731, + "gzipBytes": 354, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/brain.js" + ], + "staticMembership": [ + "/", + "/app/history" + ], + "dynamicEntry": "_brain-M0E5BVtS.js" + }, + { + "file": "assets/LibraryPage-TQP69FJp.js", + "bytes": 45623, + "gzipBytes": 13546, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/card-BnT411OX.js", + "assets/input-BjDrRHtx.js", + "assets/textarea-BQ0Vj88K.js", + "assets/badge-BC-6QS26.js", + "assets/switch-CHK59itA.js", + "assets/date-format-CfassM9h.js", + "assets/url-CeZm_C1D.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/alert-dialog-chuiBWTg.js", + "assets/sheet-Dfq5h2d1.js", + "assets/plus-CuZTkh8c.js", + "assets/trash-2-F2gcUNIU.js", + "assets/search-D72Br97G.js", + "assets/shield-check-DU5mFNut.js", + "assets/file-text-B6nrM_aa.js", + "assets/copy-L_02rmZ3.js", + "assets/save--EOuaVhR.js", + "assets/external-link-CeL3t6Kr.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/folder-minus.js", + "node_modules/lucide-react/dist/esm/icons/folder-plus.js", + "node_modules/lucide-react/dist/esm/icons/folder.js", + "node_modules/lucide-react/dist/esm/icons/link-2.js", + "node_modules/lucide-react/dist/esm/icons/pencil.js", + "node_modules/lucide-react/dist/esm/icons/shield-alert.js", + "node_modules/lucide-react/dist/esm/icons/upload.js", + "node_modules/react-window/dist/react-window.js", + "src/lib/ai/schemas/source-import.ts", + "src/lib/source-import.ts", + "node_modules/pdfjs-dist/legacy/build/pdf.worker.mjs?url", + "src/lib/source-file-import.ts", + "node_modules/@radix-ui/react-popover/dist/index.mjs", + "src/components/ui/popover.tsx", + "src/pages/LibraryPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/LibraryPage.tsx" + }, + { + "file": "assets/external-link-CeL3t6Kr.js", + "bytes": 247, + "gzipBytes": 197, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/external-link.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_external-link-CeL3t6Kr.js" + }, + { + "file": "assets/sheet-Dfq5h2d1.js", + "bytes": 2335, + "gzipBytes": 898, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "src/components/ui/sheet.tsx" + ], + "staticMembership": [], + "dynamicEntry": "_sheet-Dfq5h2d1.js" + }, + { + "file": "assets/switch-CHK59itA.js", + "bytes": 4150, + "gzipBytes": 1792, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/@radix-ui/react-switch/dist/index.mjs", + "src/components/ui/switch.tsx" + ], + "staticMembership": [ + "/app/attack" + ], + "dynamicEntry": "_switch-CHK59itA.js" + }, + { + "file": "assets/shield-check-DU5mFNut.js", + "bytes": 311, + "gzipBytes": 247, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/shield-check.js" + ], + "staticMembership": [], + "dynamicEntry": "_shield-check-DU5mFNut.js" + }, + { + "file": "assets/TimerPage-DD2LToSI.js", + "bytes": 10969, + "gzipBytes": 3559, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/card-BnT411OX.js", + "assets/badge-BC-6QS26.js", + "assets/progress-Eyz1T4LG.js", + "assets/rotate-ccw-v2tcH4l7.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/bell.js", + "node_modules/lucide-react/dist/esm/icons/keyboard.js", + "node_modules/lucide-react/dist/esm/icons/pause.js", + "node_modules/lucide-react/dist/esm/icons/play.js", + "node_modules/lucide-react/dist/esm/icons/volume-2.js", + "node_modules/lucide-react/dist/esm/icons/volume-x.js", + "src/pages/TimerPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/TimerPage.tsx" + }, + { + "file": "assets/SparringPage-ChpAbP_j.js", + "bytes": 55909, + "gzipBytes": 15414, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/client-DEwlmyst.js", + "assets/card-BnT411OX.js", + "assets/textarea-BQ0Vj88K.js", + "assets/badge-BC-6QS26.js", + "assets/ModelSelector--btGoe1p.js", + "assets/arrow-right-_GA5t6Ff.js", + "assets/progress-Eyz1T4LG.js", + "assets/markdown-BFkXmfLC.js", + "assets/clock-3-cVu-fg4P.js", + "assets/rotate-ccw-v2tcH4l7.js", + "assets/circle-alert-EvFEdfwm.js", + "assets/send-DyAEqj-V.js", + "assets/download-B6rLXL5_.js", + "assets/generateCategoricalChart-tQpM_2Ey.js", + "assets/target-BtiUsRv7.js", + "assets/file-text-B6nrM_aa.js", + "assets/circle-help-B0oPixm9.js", + "assets/url-CeZm_C1D.js", + "assets/use-subscription-DPxqRAbU.js", + "assets/index-DCbKzI_r.js", + "assets/string-cKWu9XK9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/arrow-left.js", + "node_modules/lucide-react/dist/esm/icons/award.js", + "node_modules/lucide-react/dist/esm/icons/bot.js", + "node_modules/lucide-react/dist/esm/icons/chart-column.js", + "node_modules/lucide-react/dist/esm/icons/chevron-right.js", + "node_modules/lucide-react/dist/esm/icons/circle-pause.js", + "node_modules/lucide-react/dist/esm/icons/circle-play.js", + "node_modules/lucide-react/dist/esm/icons/cloud-off.js", + "node_modules/lucide-react/dist/esm/icons/gauge.js", + "node_modules/lucide-react/dist/esm/icons/user-round.js", + "node_modules/lucide-react/dist/esm/icons/wifi.js", + "src/components/features/sparring/SparringSetup.tsx", + "src/components/features/sparring/SparringRound.tsx", + "node_modules/recharts/es6/polar/PolarGrid.js", + "node_modules/lodash/head.js", + "node_modules/lodash/first.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/first.js?commonjs-es-import", + "node_modules/recharts/es6/polar/Radar.js", + "node_modules/recharts/es6/chart/RadarChart.js", + "src/components/features/sparring/SparringScorecard.tsx", + "src/pages/SparringPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/SparringPage.tsx" + }, + { + "file": "assets/arrow-right-_GA5t6Ff.js", + "bytes": 161, + "gzipBytes": 158, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/arrow-right.js" + ], + "staticMembership": [ + "/", + "/app" + ], + "dynamicEntry": "_arrow-right-_GA5t6Ff.js" + }, + { + "file": "assets/circle-help-B0oPixm9.js", + "bytes": 230, + "gzipBytes": 199, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-help.js" + ], + "staticMembership": [], + "dynamicEntry": "_circle-help-B0oPixm9.js" + }, + { + "file": "assets/markdown-BFkXmfLC.js", + "bytes": 119378, + "gzipBytes": 36771, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/devlop/lib/default.js", + "node_modules/comma-separated-tokens/index.js", + "node_modules/estree-util-is-identifier-name/lib/index.js", + "node_modules/hast-util-whitespace/lib/index.js", + "node_modules/property-information/lib/util/schema.js", + "node_modules/property-information/lib/util/merge.js", + "node_modules/property-information/lib/normalize.js", + "node_modules/property-information/lib/util/info.js", + "node_modules/property-information/lib/util/types.js", + "node_modules/property-information/lib/util/defined-info.js", + "node_modules/property-information/lib/util/create.js", + "node_modules/property-information/lib/aria.js", + "node_modules/property-information/lib/util/case-sensitive-transform.js", + "node_modules/property-information/lib/util/case-insensitive-transform.js", + "node_modules/property-information/lib/html.js", + "node_modules/property-information/lib/svg.js", + "node_modules/property-information/lib/xlink.js", + "node_modules/property-information/lib/xmlns.js", + "node_modules/property-information/lib/xml.js", + "node_modules/property-information/lib/hast-to-react.js", + "node_modules/property-information/lib/find.js", + "node_modules/property-information/index.js", + "node_modules/space-separated-tokens/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/style-to-object/cjs/index.js?commonjs-exports", + "node_modules/inline-style-parser/cjs/index.js", + "node_modules/style-to-object/cjs/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/style-to-js/cjs/utilities.js?commonjs-exports", + "node_modules/style-to-js/cjs/utilities.js", + "node_modules/style-to-js/cjs/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/style-to-js/cjs/index.js?commonjs-es-import", + "node_modules/unist-util-position/lib/index.js", + "node_modules/unist-util-stringify-position/lib/index.js", + "node_modules/vfile-message/lib/index.js", + "node_modules/hast-util-to-jsx-runtime/lib/index.js", + "node_modules/html-url-attributes/lib/index.js", + "node_modules/mdast-util-to-string/lib/index.js", + "node_modules/decode-named-character-reference/index.dom.js", + "node_modules/micromark-util-chunked/index.js", + "node_modules/micromark-util-combine-extensions/index.js", + "node_modules/micromark-util-decode-numeric-character-reference/index.js", + "node_modules/micromark-util-normalize-identifier/index.js", + "node_modules/micromark-util-character/index.js", + "node_modules/micromark-util-sanitize-uri/index.js", + "node_modules/micromark-factory-space/index.js", + "node_modules/micromark/lib/initialize/content.js", + "node_modules/micromark/lib/initialize/document.js", + "node_modules/micromark-util-classify-character/index.js", + "node_modules/micromark-util-resolve-all/index.js", + "node_modules/micromark-core-commonmark/lib/attention.js", + "node_modules/micromark-core-commonmark/lib/autolink.js", + "node_modules/micromark-core-commonmark/lib/blank-line.js", + "node_modules/micromark-core-commonmark/lib/block-quote.js", + "node_modules/micromark-core-commonmark/lib/character-escape.js", + "node_modules/micromark-core-commonmark/lib/character-reference.js", + "node_modules/micromark-core-commonmark/lib/code-fenced.js", + "node_modules/micromark-core-commonmark/lib/code-indented.js", + "node_modules/micromark-core-commonmark/lib/code-text.js", + "node_modules/micromark-util-subtokenize/lib/splice-buffer.js", + "node_modules/micromark-util-subtokenize/index.js", + "node_modules/micromark-core-commonmark/lib/content.js", + "node_modules/micromark-factory-destination/index.js", + "node_modules/micromark-factory-label/index.js", + "node_modules/micromark-factory-title/index.js", + "node_modules/micromark-factory-whitespace/index.js", + "node_modules/micromark-core-commonmark/lib/definition.js", + "node_modules/micromark-core-commonmark/lib/hard-break-escape.js", + "node_modules/micromark-core-commonmark/lib/heading-atx.js", + "node_modules/micromark-util-html-tag-name/index.js", + "node_modules/micromark-core-commonmark/lib/html-flow.js", + "node_modules/micromark-core-commonmark/lib/html-text.js", + "node_modules/micromark-core-commonmark/lib/label-end.js", + "node_modules/micromark-core-commonmark/lib/label-start-image.js", + "node_modules/micromark-core-commonmark/lib/label-start-link.js", + "node_modules/micromark-core-commonmark/lib/line-ending.js", + "node_modules/micromark-core-commonmark/lib/thematic-break.js", + "node_modules/micromark-core-commonmark/lib/list.js", + "node_modules/micromark-core-commonmark/lib/setext-underline.js", + "node_modules/micromark/lib/initialize/flow.js", + "node_modules/micromark/lib/initialize/text.js", + "node_modules/micromark/lib/constructs.js", + "node_modules/micromark/lib/create-tokenizer.js", + "node_modules/micromark/lib/parse.js", + "node_modules/micromark/lib/postprocess.js", + "node_modules/micromark/lib/preprocess.js", + "node_modules/micromark-util-decode-string/index.js", + "node_modules/mdast-util-from-markdown/lib/index.js", + "node_modules/remark-parse/lib/index.js", + "node_modules/mdast-util-to-hast/lib/handlers/blockquote.js", + "node_modules/mdast-util-to-hast/lib/handlers/break.js", + "node_modules/mdast-util-to-hast/lib/handlers/code.js", + "node_modules/mdast-util-to-hast/lib/handlers/delete.js", + "node_modules/mdast-util-to-hast/lib/handlers/emphasis.js", + "node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js", + "node_modules/mdast-util-to-hast/lib/handlers/heading.js", + "node_modules/mdast-util-to-hast/lib/handlers/html.js", + "node_modules/mdast-util-to-hast/lib/revert.js", + "node_modules/mdast-util-to-hast/lib/handlers/image-reference.js", + "node_modules/mdast-util-to-hast/lib/handlers/image.js", + "node_modules/mdast-util-to-hast/lib/handlers/inline-code.js", + "node_modules/mdast-util-to-hast/lib/handlers/link-reference.js", + "node_modules/mdast-util-to-hast/lib/handlers/link.js", + "node_modules/mdast-util-to-hast/lib/handlers/list-item.js", + "node_modules/mdast-util-to-hast/lib/handlers/list.js", + "node_modules/mdast-util-to-hast/lib/handlers/paragraph.js", + "node_modules/mdast-util-to-hast/lib/handlers/root.js", + "node_modules/mdast-util-to-hast/lib/handlers/strong.js", + "node_modules/mdast-util-to-hast/lib/handlers/table.js", + "node_modules/mdast-util-to-hast/lib/handlers/table-row.js", + "node_modules/mdast-util-to-hast/lib/handlers/table-cell.js", + "node_modules/trim-lines/index.js", + "node_modules/mdast-util-to-hast/lib/handlers/text.js", + "node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js", + "node_modules/mdast-util-to-hast/lib/handlers/index.js", + "node_modules/@ungap/structured-clone/esm/types.js", + "node_modules/@ungap/structured-clone/esm/deserialize.js", + "node_modules/@ungap/structured-clone/esm/serialize.js", + "node_modules/@ungap/structured-clone/esm/index.js", + "node_modules/mdast-util-to-hast/lib/footer.js", + "node_modules/unist-util-is/lib/index.js", + "node_modules/unist-util-visit-parents/lib/color.js", + "node_modules/unist-util-visit-parents/lib/index.js", + "node_modules/unist-util-visit/lib/index.js", + "node_modules/mdast-util-to-hast/lib/state.js", + "node_modules/mdast-util-to-hast/lib/index.js", + "node_modules/remark-rehype/lib/index.js", + "node_modules/bail/index.js", + "node_modules/extend/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/extend/index.js?commonjs-es-import", + "node_modules/is-plain-obj/index.js", + "node_modules/trough/lib/index.js", + "node_modules/vfile/lib/minpath.browser.js", + "node_modules/vfile/lib/minproc.browser.js", + "node_modules/vfile/lib/minurl.shared.js", + "node_modules/vfile/lib/minurl.browser.js", + "node_modules/vfile/lib/index.js", + "node_modules/unified/lib/callable-instance.js", + "node_modules/unified/lib/index.js", + "node_modules/react-markdown/lib/index.js", + "src/components/ui/markdown.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_markdown-BFkXmfLC.js" + }, + { + "file": "assets/ModelSelector--btGoe1p.js", + "bytes": 2514, + "gzipBytes": 1084, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/badge-BC-6QS26.js", + "assets/use-subscription-DPxqRAbU.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/cpu.js", + "src/components/ModelSelector.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_ModelSelector--btGoe1p.js" + }, + { + "file": "assets/clock-3-cVu-fg4P.js", + "bytes": 183, + "gzipBytes": 173, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/clock-3.js" + ], + "staticMembership": [], + "dynamicEntry": "_clock-3-cVu-fg4P.js" + }, + { + "file": "assets/send-DyAEqj-V.js", + "bytes": 287, + "gzipBytes": 230, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/send.js" + ], + "staticMembership": [], + "dynamicEntry": "_send-DyAEqj-V.js" + }, + { + "file": "assets/client-DEwlmyst.js", + "bytes": 39898, + "gzipBytes": 13787, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/url-CeZm_C1D.js" + ], + "modules": [ + "node_modules/zod/v4/classic/coerce.js", + "src/lib/ai/schemas/generate.ts", + "src/lib/ai/providers/mock-provider.ts", + "src/lib/ai/schemas/attack.ts", + "src/lib/ai/schemas/factoids.ts", + "src/lib/ai/schemas/ask.ts", + "src/lib/validation/url.ts", + "src/lib/ai/client.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_client-DEwlmyst.js" + }, + { + "file": "assets/url-CeZm_C1D.js", + "bytes": 179, + "gzipBytes": 166, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "src/lib/ai/schemas/url.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_url-CeZm_C1D.js" + }, + { + "file": "assets/file-text-B6nrM_aa.js", + "bytes": 324, + "gzipBytes": 214, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/file-text.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack", + "/app/history" + ], + "dynamicEntry": "_file-text-B6nrM_aa.js" + }, + { + "file": "assets/progress-Eyz1T4LG.js", + "bytes": 2198, + "gzipBytes": 1094, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/@radix-ui/react-progress/dist/index.mjs", + "src/components/ui/progress.tsx" + ], + "staticMembership": [ + "/app/attack" + ], + "dynamicEntry": "_progress-Eyz1T4LG.js" + }, + { + "file": "assets/FlowchartPage-hnm2Idlk.js", + "bytes": 50510, + "gzipBytes": 16785, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/card-BnT411OX.js", + "assets/badge-BC-6QS26.js", + "assets/input-BjDrRHtx.js", + "assets/textarea-BQ0Vj88K.js", + "assets/alert-dialog-chuiBWTg.js", + "assets/index-CzRyuAKe.js", + "assets/trash-2-F2gcUNIU.js", + "assets/save--EOuaVhR.js", + "assets/plus-CuZTkh8c.js", + "assets/download-B6rLXL5_.js", + "assets/target-BtiUsRv7.js", + "assets/shield-C8ZFNTgi.js", + "assets/triangle-alert-BgYzclSC.js", + "assets/string-cKWu9XK9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/folder-open.js", + "node_modules/lucide-react/dist/esm/icons/layout-grid.js", + "node_modules/@reactflow/minimap/node_modules/zustand/esm/shallow.mjs", + "node_modules/@reactflow/minimap/dist/esm/index.mjs", + "node_modules/@reactflow/controls/node_modules/zustand/esm/shallow.mjs", + "node_modules/@reactflow/controls/dist/esm/index.mjs", + "node_modules/@reactflow/background/node_modules/zustand/esm/shallow.mjs", + "node_modules/@reactflow/background/dist/esm/index.mjs", + "node_modules/reactflow/dist/style.css", + "node_modules/html-to-image/es/util.js", + "node_modules/html-to-image/es/clone-pseudos.js", + "node_modules/html-to-image/es/mimes.js", + "node_modules/html-to-image/es/dataurl.js", + "node_modules/html-to-image/es/clone-node.js", + "node_modules/html-to-image/es/embed-resources.js", + "node_modules/html-to-image/es/embed-images.js", + "node_modules/html-to-image/es/apply-style.js", + "node_modules/html-to-image/es/embed-webfonts.js", + "node_modules/html-to-image/es/index.js", + "node_modules/date-fns/toDate.mjs", + "node_modules/date-fns/constructFrom.mjs", + "node_modules/date-fns/constants.mjs", + "node_modules/date-fns/_lib/defaultOptions.mjs", + "node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs", + "node_modules/date-fns/compareAsc.mjs", + "node_modules/date-fns/constructNow.mjs", + "node_modules/date-fns/differenceInCalendarMonths.mjs", + "node_modules/date-fns/_lib/getRoundingMethod.mjs", + "node_modules/date-fns/differenceInMilliseconds.mjs", + "node_modules/date-fns/endOfDay.mjs", + "node_modules/date-fns/endOfMonth.mjs", + "node_modules/date-fns/isLastDayOfMonth.mjs", + "node_modules/date-fns/differenceInMonths.mjs", + "node_modules/date-fns/differenceInSeconds.mjs", + "node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs", + "node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs", + "node_modules/date-fns/locale/en-US/_lib/formatLong.mjs", + "node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs", + "node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs", + "node_modules/date-fns/locale/en-US/_lib/localize.mjs", + "node_modules/date-fns/locale/_lib/buildMatchFn.mjs", + "node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs", + "node_modules/date-fns/locale/en-US/_lib/match.mjs", + "node_modules/date-fns/locale/en-US.mjs", + "node_modules/date-fns/formatDistance.mjs", + "node_modules/date-fns/formatDistanceToNow.mjs", + "src/pages/FlowchartPage.tsx" + ], + "staticMembership": [ + "/app/flowchart" + ], + "dynamicEntry": "src/pages/FlowchartPage.tsx" + }, + { + "file": "assets/index-CzRyuAKe.js", + "bytes": 127877, + "gzipBytes": 41137, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/string-cKWu9XK9.js" + ], + "modules": [ + "node_modules/classcat/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/shim/with-selector.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/shim/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js?commonjs-exports", + "node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js", + "node_modules/use-sync-external-store/shim/index.js", + "node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js", + "node_modules/use-sync-external-store/shim/with-selector.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/shim/with-selector.js?commonjs-es-import", + "node_modules/@reactflow/core/node_modules/zustand/esm/vanilla.mjs", + "node_modules/@reactflow/core/node_modules/zustand/esm/traditional.mjs", + "node_modules/@reactflow/core/node_modules/zustand/esm/shallow.mjs", + "node_modules/d3-dispatch/src/dispatch.js", + "node_modules/d3-selection/src/namespaces.js", + "node_modules/d3-selection/src/namespace.js", + "node_modules/d3-selection/src/creator.js", + "node_modules/d3-selection/src/selector.js", + "node_modules/d3-selection/src/selection/select.js", + "node_modules/d3-selection/src/array.js", + "node_modules/d3-selection/src/selectorAll.js", + "node_modules/d3-selection/src/selection/selectAll.js", + "node_modules/d3-selection/src/matcher.js", + "node_modules/d3-selection/src/selection/selectChild.js", + "node_modules/d3-selection/src/selection/selectChildren.js", + "node_modules/d3-selection/src/selection/filter.js", + "node_modules/d3-selection/src/selection/sparse.js", + "node_modules/d3-selection/src/selection/enter.js", + "node_modules/d3-selection/src/constant.js", + "node_modules/d3-selection/src/selection/data.js", + "node_modules/d3-selection/src/selection/exit.js", + "node_modules/d3-selection/src/selection/join.js", + "node_modules/d3-selection/src/selection/merge.js", + "node_modules/d3-selection/src/selection/order.js", + "node_modules/d3-selection/src/selection/sort.js", + "node_modules/d3-selection/src/selection/call.js", + "node_modules/d3-selection/src/selection/nodes.js", + "node_modules/d3-selection/src/selection/node.js", + "node_modules/d3-selection/src/selection/size.js", + "node_modules/d3-selection/src/selection/empty.js", + "node_modules/d3-selection/src/selection/each.js", + "node_modules/d3-selection/src/selection/attr.js", + "node_modules/d3-selection/src/window.js", + "node_modules/d3-selection/src/selection/style.js", + "node_modules/d3-selection/src/selection/property.js", + "node_modules/d3-selection/src/selection/classed.js", + "node_modules/d3-selection/src/selection/text.js", + "node_modules/d3-selection/src/selection/html.js", + "node_modules/d3-selection/src/selection/raise.js", + "node_modules/d3-selection/src/selection/lower.js", + "node_modules/d3-selection/src/selection/append.js", + "node_modules/d3-selection/src/selection/insert.js", + "node_modules/d3-selection/src/selection/remove.js", + "node_modules/d3-selection/src/selection/clone.js", + "node_modules/d3-selection/src/selection/datum.js", + "node_modules/d3-selection/src/selection/on.js", + "node_modules/d3-selection/src/selection/dispatch.js", + "node_modules/d3-selection/src/selection/iterator.js", + "node_modules/d3-selection/src/selection/index.js", + "node_modules/d3-selection/src/select.js", + "node_modules/d3-selection/src/sourceEvent.js", + "node_modules/d3-selection/src/pointer.js", + "node_modules/d3-drag/src/noevent.js", + "node_modules/d3-drag/src/nodrag.js", + "node_modules/d3-drag/src/constant.js", + "node_modules/d3-drag/src/event.js", + "node_modules/d3-drag/src/drag.js", + "node_modules/d3-interpolate/src/transform/decompose.js", + "node_modules/d3-interpolate/src/transform/parse.js", + "node_modules/d3-interpolate/src/transform/index.js", + "node_modules/d3-interpolate/src/zoom.js", + "node_modules/d3-timer/src/timer.js", + "node_modules/d3-timer/src/timeout.js", + "node_modules/d3-transition/src/transition/schedule.js", + "node_modules/d3-transition/src/interrupt.js", + "node_modules/d3-transition/src/selection/interrupt.js", + "node_modules/d3-transition/src/transition/tween.js", + "node_modules/d3-transition/src/transition/interpolate.js", + "node_modules/d3-transition/src/transition/attr.js", + "node_modules/d3-transition/src/transition/attrTween.js", + "node_modules/d3-transition/src/transition/delay.js", + "node_modules/d3-transition/src/transition/duration.js", + "node_modules/d3-transition/src/transition/ease.js", + "node_modules/d3-transition/src/transition/easeVarying.js", + "node_modules/d3-transition/src/transition/filter.js", + "node_modules/d3-transition/src/transition/merge.js", + "node_modules/d3-transition/src/transition/on.js", + "node_modules/d3-transition/src/transition/remove.js", + "node_modules/d3-transition/src/transition/select.js", + "node_modules/d3-transition/src/transition/selectAll.js", + "node_modules/d3-transition/src/transition/selection.js", + "node_modules/d3-transition/src/transition/style.js", + "node_modules/d3-transition/src/transition/styleTween.js", + "node_modules/d3-transition/src/transition/text.js", + "node_modules/d3-transition/src/transition/textTween.js", + "node_modules/d3-transition/src/transition/transition.js", + "node_modules/d3-transition/src/transition/end.js", + "node_modules/d3-transition/src/transition/index.js", + "node_modules/d3-ease/src/cubic.js", + "node_modules/d3-transition/src/selection/transition.js", + "node_modules/d3-transition/src/selection/index.js", + "node_modules/d3-zoom/src/constant.js", + "node_modules/d3-zoom/src/event.js", + "node_modules/d3-zoom/src/transform.js", + "node_modules/d3-zoom/src/noevent.js", + "node_modules/d3-zoom/src/zoom.js", + "node_modules/@reactflow/core/dist/esm/index.mjs" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart" + ], + "dynamicEntry": "_index-CzRyuAKe.js" + }, + { + "file": "assets/triangle-alert-BgYzclSC.js", + "bytes": 256, + "gzipBytes": 209, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/triangle-alert.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack", + "/app/flowchart" + ], + "dynamicEntry": "_triangle-alert-BgYzclSC.js" + }, + { + "file": "assets/plus-CuZTkh8c.js", + "bytes": 145, + "gzipBytes": 144, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/plus.js" + ], + "staticMembership": [ + "/app/flowchart" + ], + "dynamicEntry": "_plus-CuZTkh8c.js" + }, + { + "file": "assets/save--EOuaVhR.js", + "bytes": 324, + "gzipBytes": 227, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/save.js" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart" + ], + "dynamicEntry": "_save--EOuaVhR.js" + }, + { + "file": "assets/download-B6rLXL5_.js", + "bytes": 254, + "gzipBytes": 217, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/download.js" + ], + "staticMembership": [ + "/app/flowchart" + ], + "dynamicEntry": "_download-B6rLXL5_.js" + }, + { + "file": "assets/target-BtiUsRv7.js", + "bytes": 223, + "gzipBytes": 160, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/target.js" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart" + ], + "dynamicEntry": "_target-BtiUsRv7.js" + }, + { + "file": "assets/SettingsPage-BUk754vw.js", + "bytes": 16456, + "gzipBytes": 5490, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/card-BnT411OX.js", + "assets/badge-BC-6QS26.js", + "assets/use-subscription-DPxqRAbU.js", + "assets/PricingModal-D8mLWjDu.js", + "assets/date-format-CfassM9h.js", + "assets/input-BjDrRHtx.js", + "assets/crown-BzZHpcif.js", + "assets/credit-card-DxReFz7h.js", + "assets/zap-DRG34D0x.js", + "assets/shield-C8ZFNTgi.js", + "assets/trash-2-F2gcUNIU.js", + "assets/edge-function-error-dlcwXP30.js" + ], + "modules": [ + "node_modules/@tanstack/query-core/build/modern/queryObserver.js", + "node_modules/@tanstack/react-query/build/modern/IsRestoringProvider.js", + "node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js", + "node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js", + "node_modules/@tanstack/react-query/build/modern/suspense.js", + "node_modules/@tanstack/react-query/build/modern/useBaseQuery.js", + "node_modules/@tanstack/react-query/build/modern/useQuery.js", + "src/pages/SettingsPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/SettingsPage.tsx" + }, + { + "file": "assets/PricingModal-D8mLWjDu.js", + "bytes": 5548, + "gzipBytes": 1895, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/input-BjDrRHtx.js", + "assets/badge-BC-6QS26.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-BzZHpcif.js", + "assets/zap-DRG34D0x.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/lock.js", + "src/lib/stripe.ts", + "src/components/features/subscription/PricingModal.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_PricingModal-D8mLWjDu.js" + }, + { + "file": "assets/crown-BzZHpcif.js", + "bytes": 359, + "gzipBytes": 257, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/crown.js" + ], + "staticMembership": [ + "/", + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_crown-BzZHpcif.js" + }, + { + "file": "assets/zap-DRG34D0x.js", + "bytes": 259, + "gzipBytes": 209, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/zap.js" + ], + "staticMembership": [ + "/", + "/app/generate", + "/app/attack", + "/app/history" + ], + "dynamicEntry": "_zap-DRG34D0x.js" + }, + { + "file": "assets/edge-function-error-dlcwXP30.js", + "bytes": 694, + "gzipBytes": 378, + "imports": [], + "modules": [ + "src/lib/supabase/edge-function-error.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_edge-function-error-dlcwXP30.js" + }, + { + "file": "assets/use-subscription-DPxqRAbU.js", + "bytes": 2232, + "gzipBytes": 1002, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "src/hooks/use-subscription.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_use-subscription-DPxqRAbU.js" + }, + { + "file": "assets/AdminPage-DxOnwRAE.js", + "bytes": 77457, + "gzipBytes": 20347, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/card-BnT411OX.js", + "assets/input-BjDrRHtx.js", + "assets/badge-BC-6QS26.js", + "assets/tabs-Dc13bJ4B.js", + "assets/scroll-area-BTGx2PB1.js", + "assets/date-format-CfassM9h.js", + "assets/checkbox-CPn-6Pk1.js", + "assets/textarea-BQ0Vj88K.js", + "assets/alert-dialog-chuiBWTg.js", + "assets/search-D72Br97G.js", + "assets/trash-2-F2gcUNIU.js", + "assets/shield-C8ZFNTgi.js", + "assets/circle-alert-EvFEdfwm.js", + "assets/users-BM5mL8hE.js", + "assets/credit-card-DxReFz7h.js", + "assets/generateCategoricalChart-tQpM_2Ey.js", + "assets/copy-L_02rmZ3.js", + "assets/rotate-ccw-v2tcH4l7.js", + "assets/index-DCbKzI_r.js", + "assets/string-cKWu9XK9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/activity.js", + "node_modules/lucide-react/dist/esm/icons/ban.js", + "node_modules/lucide-react/dist/esm/icons/dollar-sign.js", + "node_modules/lucide-react/dist/esm/icons/gift.js", + "node_modules/lucide-react/dist/esm/icons/key-round.js", + "node_modules/lucide-react/dist/esm/icons/settings-2.js", + "node_modules/lucide-react/dist/esm/icons/ticket.js", + "node_modules/lucide-react/dist/esm/icons/user-check.js", + "node_modules/recharts/es6/polar/Pie.js", + "node_modules/recharts/es6/util/getEveryNthWithCondition.js", + "node_modules/recharts/es6/util/TickUtils.js", + "node_modules/recharts/es6/cartesian/getEquidistantTicks.js", + "node_modules/recharts/es6/cartesian/getTicks.js", + "node_modules/recharts/es6/cartesian/CartesianAxis.js", + "node_modules/recharts/es6/cartesian/CartesianGrid.js", + "node_modules/recharts/es6/cartesian/XAxis.js", + "node_modules/recharts/es6/cartesian/YAxis.js", + "node_modules/recharts/es6/chart/BarChart.js", + "node_modules/recharts/es6/chart/PieChart.js", + "src/components/admin/AdminAnnouncements.tsx", + "src/pages/AdminPage.tsx" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "src/pages/AdminPage.tsx" + }, + { + "file": "assets/users-BM5mL8hE.js", + "bytes": 296, + "gzipBytes": 225, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/users.js" + ], + "staticMembership": [ + "/", + "/app/admin" + ], + "dynamicEntry": "_users-BM5mL8hE.js" + }, + { + "file": "assets/checkbox-CPn-6Pk1.js", + "bytes": 4315, + "gzipBytes": 1872, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/@radix-ui/react-checkbox/dist/index.mjs", + "src/components/ui/checkbox.tsx" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_checkbox-CPn-6Pk1.js" + }, + { + "file": "assets/tabs-Dc13bJ4B.js", + "bytes": 7555, + "gzipBytes": 2988, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/@radix-ui/react-use-is-hydrated/dist/index.mjs", + "node_modules/@radix-ui/react-roving-focus/dist/index.mjs", + "node_modules/@radix-ui/react-tabs/dist/index.mjs", + "src/components/ui/tabs.tsx" + ], + "staticMembership": [ + "/login", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_tabs-Dc13bJ4B.js" + }, + { + "file": "assets/scroll-area-BTGx2PB1.js", + "bytes": 13530, + "gzipBytes": 4251, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/@radix-ui/react-scroll-area/dist/index.mjs", + "src/components/ui/scroll-area.tsx" + ], + "staticMembership": [ + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_scroll-area-BTGx2PB1.js" + }, + { + "file": "assets/copy-L_02rmZ3.js", + "bytes": 228, + "gzipBytes": 206, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/copy.js" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_copy-L_02rmZ3.js" + }, + { + "file": "assets/search-D72Br97G.js", + "bytes": 164, + "gzipBytes": 166, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/search.js" + ], + "staticMembership": [ + "/", + "/app/attack", + "/app/admin" + ], + "dynamicEntry": "_search-D72Br97G.js" + }, + { + "file": "assets/generateCategoricalChart-tQpM_2Ey.js", + "bytes": 364572, + "gzipBytes": 99165, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/index-DCbKzI_r.js", + "assets/string-cKWu9XK9.js" + ], + "modules": [ + "node_modules/d3-interpolate/src/numberArray.js", + "node_modules/d3-interpolate/src/array.js", + "node_modules/d3-interpolate/src/date.js", + "node_modules/d3-interpolate/src/object.js", + "node_modules/d3-interpolate/src/value.js", + "node_modules/d3-interpolate/src/round.js", + "node_modules/d3-interpolate/src/piecewise.js", + "node_modules/lodash/isArray.js", + "node_modules/lodash/_freeGlobal.js", + "node_modules/lodash/_root.js", + "node_modules/lodash/_Symbol.js", + "node_modules/lodash/_getRawTag.js", + "node_modules/lodash/_objectToString.js", + "node_modules/lodash/_baseGetTag.js", + "node_modules/lodash/isObjectLike.js", + "node_modules/lodash/isSymbol.js", + "node_modules/lodash/_isKey.js", + "node_modules/lodash/isObject.js", + "node_modules/lodash/isFunction.js", + "node_modules/lodash/_coreJsData.js", + "node_modules/lodash/_isMasked.js", + "node_modules/lodash/_toSource.js", + "node_modules/lodash/_baseIsNative.js", + "node_modules/lodash/_getValue.js", + "node_modules/lodash/_getNative.js", + "node_modules/lodash/_nativeCreate.js", + "node_modules/lodash/_hashClear.js", + "node_modules/lodash/_hashDelete.js", + "node_modules/lodash/_hashGet.js", + "node_modules/lodash/_hashHas.js", + "node_modules/lodash/_hashSet.js", + "node_modules/lodash/_Hash.js", + "node_modules/lodash/_listCacheClear.js", + "node_modules/lodash/eq.js", + "node_modules/lodash/_assocIndexOf.js", + "node_modules/lodash/_listCacheDelete.js", + "node_modules/lodash/_listCacheGet.js", + "node_modules/lodash/_listCacheHas.js", + "node_modules/lodash/_listCacheSet.js", + "node_modules/lodash/_ListCache.js", + "node_modules/lodash/_Map.js", + "node_modules/lodash/_mapCacheClear.js", + "node_modules/lodash/_isKeyable.js", + "node_modules/lodash/_getMapData.js", + "node_modules/lodash/_mapCacheDelete.js", + "node_modules/lodash/_mapCacheGet.js", + "node_modules/lodash/_mapCacheHas.js", + "node_modules/lodash/_mapCacheSet.js", + "node_modules/lodash/_MapCache.js", + "node_modules/lodash/memoize.js", + "node_modules/lodash/_memoizeCapped.js", + "node_modules/lodash/_stringToPath.js", + "node_modules/lodash/_arrayMap.js", + "node_modules/lodash/_baseToString.js", + "node_modules/lodash/toString.js", + "node_modules/lodash/_castPath.js", + "node_modules/lodash/_toKey.js", + "node_modules/lodash/_baseGet.js", + "node_modules/lodash/get.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/get.js?commonjs-es-import", + "node_modules/lodash/isNil.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isNil.js?commonjs-es-import", + "node_modules/lodash/isString.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isString.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isFunction.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isObject.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/recharts/node_modules/react-is/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/recharts/node_modules/react-is/cjs/react-is.production.min.js?commonjs-exports", + "node_modules/recharts/node_modules/react-is/cjs/react-is.production.min.js", + "node_modules/recharts/node_modules/react-is/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/recharts/node_modules/react-is/index.js?commonjs-es-import", + "node_modules/lodash/isNumber.js", + "node_modules/lodash/isNaN.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isNaN.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isNumber.js?commonjs-es-import", + "node_modules/recharts/es6/util/DataUtils.js", + "node_modules/recharts/es6/util/ShallowEqual.js", + "node_modules/recharts/es6/util/types.js", + "node_modules/recharts/es6/util/ReactUtils.js", + "node_modules/recharts/es6/container/Surface.js", + "node_modules/recharts/es6/container/Layer.js", + "node_modules/recharts/es6/util/LogUtils.js", + "node_modules/lodash/_baseSlice.js", + "node_modules/lodash/_castSlice.js", + "node_modules/lodash/_hasUnicode.js", + "node_modules/lodash/_asciiToArray.js", + "node_modules/lodash/_unicodeToArray.js", + "node_modules/lodash/_stringToArray.js", + "node_modules/lodash/_createCaseFirst.js", + "node_modules/lodash/upperFirst.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/upperFirst.js?commonjs-es-import", + "node_modules/d3-shape/src/constant.js", + "node_modules/d3-shape/src/math.js", + "node_modules/d3-path/src/path.js", + "node_modules/d3-shape/src/path.js", + "node_modules/d3-shape/src/array.js", + "node_modules/d3-shape/src/curve/linear.js", + "node_modules/d3-shape/src/point.js", + "node_modules/d3-shape/src/line.js", + "node_modules/d3-shape/src/area.js", + "node_modules/d3-shape/src/curve/bump.js", + "node_modules/d3-shape/src/symbol/circle.js", + "node_modules/d3-shape/src/symbol/cross.js", + "node_modules/d3-shape/src/symbol/diamond.js", + "node_modules/d3-shape/src/symbol/square.js", + "node_modules/d3-shape/src/symbol/star.js", + "node_modules/d3-shape/src/symbol/triangle.js", + "node_modules/d3-shape/src/symbol/wye.js", + "node_modules/d3-shape/src/symbol.js", + "node_modules/d3-shape/src/noop.js", + "node_modules/d3-shape/src/curve/basis.js", + "node_modules/d3-shape/src/curve/basisClosed.js", + "node_modules/d3-shape/src/curve/basisOpen.js", + "node_modules/d3-shape/src/curve/linearClosed.js", + "node_modules/d3-shape/src/curve/monotone.js", + "node_modules/d3-shape/src/curve/natural.js", + "node_modules/d3-shape/src/curve/step.js", + "node_modules/d3-shape/src/offset/none.js", + "node_modules/d3-shape/src/order/none.js", + "node_modules/d3-shape/src/stack.js", + "node_modules/d3-shape/src/offset/expand.js", + "node_modules/d3-shape/src/offset/silhouette.js", + "node_modules/d3-shape/src/offset/wiggle.js", + "node_modules/recharts/es6/shape/Symbols.js", + "node_modules/recharts/es6/component/DefaultLegendContent.js", + "node_modules/lodash/_stackClear.js", + "node_modules/lodash/_stackDelete.js", + "node_modules/lodash/_stackGet.js", + "node_modules/lodash/_stackHas.js", + "node_modules/lodash/_stackSet.js", + "node_modules/lodash/_Stack.js", + "node_modules/lodash/_setCacheAdd.js", + "node_modules/lodash/_setCacheHas.js", + "node_modules/lodash/_SetCache.js", + "node_modules/lodash/_arraySome.js", + "node_modules/lodash/_cacheHas.js", + "node_modules/lodash/_equalArrays.js", + "node_modules/lodash/_Uint8Array.js", + "node_modules/lodash/_mapToArray.js", + "node_modules/lodash/_setToArray.js", + "node_modules/lodash/_equalByTag.js", + "node_modules/lodash/_arrayPush.js", + "node_modules/lodash/_baseGetAllKeys.js", + "node_modules/lodash/_arrayFilter.js", + "node_modules/lodash/stubArray.js", + "node_modules/lodash/_getSymbols.js", + "node_modules/lodash/_baseTimes.js", + "node_modules/lodash/_baseIsArguments.js", + "node_modules/lodash/isArguments.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isBuffer.js?commonjs-module", + "node_modules/lodash/stubFalse.js", + "node_modules/lodash/isBuffer.js", + "node_modules/lodash/_isIndex.js", + "node_modules/lodash/isLength.js", + "node_modules/lodash/_baseIsTypedArray.js", + "node_modules/lodash/_baseUnary.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/_nodeUtil.js?commonjs-module", + "node_modules/lodash/_nodeUtil.js", + "node_modules/lodash/isTypedArray.js", + "node_modules/lodash/_arrayLikeKeys.js", + "node_modules/lodash/_isPrototype.js", + "node_modules/lodash/_overArg.js", + "node_modules/lodash/_nativeKeys.js", + "node_modules/lodash/_baseKeys.js", + "node_modules/lodash/isArrayLike.js", + "node_modules/lodash/keys.js", + "node_modules/lodash/_getAllKeys.js", + "node_modules/lodash/_equalObjects.js", + "node_modules/lodash/_DataView.js", + "node_modules/lodash/_Promise.js", + "node_modules/lodash/_Set.js", + "node_modules/lodash/_WeakMap.js", + "node_modules/lodash/_getTag.js", + "node_modules/lodash/_baseIsEqualDeep.js", + "node_modules/lodash/_baseIsEqual.js", + "node_modules/lodash/_baseIsMatch.js", + "node_modules/lodash/_isStrictComparable.js", + "node_modules/lodash/_getMatchData.js", + "node_modules/lodash/_matchesStrictComparable.js", + "node_modules/lodash/_baseMatches.js", + "node_modules/lodash/_baseHasIn.js", + "node_modules/lodash/_hasPath.js", + "node_modules/lodash/hasIn.js", + "node_modules/lodash/_baseMatchesProperty.js", + "node_modules/lodash/identity.js", + "node_modules/lodash/_baseProperty.js", + "node_modules/lodash/_basePropertyDeep.js", + "node_modules/lodash/property.js", + "node_modules/lodash/_baseIteratee.js", + "node_modules/lodash/_baseFindIndex.js", + "node_modules/lodash/_baseIsNaN.js", + "node_modules/lodash/_strictIndexOf.js", + "node_modules/lodash/_baseIndexOf.js", + "node_modules/lodash/_arrayIncludes.js", + "node_modules/lodash/_arrayIncludesWith.js", + "node_modules/lodash/noop.js", + "node_modules/lodash/_createSet.js", + "node_modules/lodash/_baseUniq.js", + "node_modules/lodash/uniqBy.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/uniqBy.js?commonjs-es-import", + "node_modules/recharts/es6/util/payload/getUniqPayload.js", + "node_modules/recharts/es6/component/Legend.js", + "node_modules/lodash/_isFlattenable.js", + "node_modules/lodash/_baseFlatten.js", + "node_modules/lodash/_createBaseFor.js", + "node_modules/lodash/_baseFor.js", + "node_modules/lodash/_baseForOwn.js", + "node_modules/lodash/_createBaseEach.js", + "node_modules/lodash/_baseEach.js", + "node_modules/lodash/_baseMap.js", + "node_modules/lodash/_baseSortBy.js", + "node_modules/lodash/_compareAscending.js", + "node_modules/lodash/_compareMultiple.js", + "node_modules/lodash/_baseOrderBy.js", + "node_modules/lodash/_apply.js", + "node_modules/lodash/_overRest.js", + "node_modules/lodash/constant.js", + "node_modules/lodash/_defineProperty.js", + "node_modules/lodash/_baseSetToString.js", + "node_modules/lodash/_shortOut.js", + "node_modules/lodash/_setToString.js", + "node_modules/lodash/_baseRest.js", + "node_modules/lodash/_isIterateeCall.js", + "node_modules/lodash/sortBy.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/sortBy.js?commonjs-es-import", + "node_modules/recharts/es6/component/DefaultTooltipContent.js", + "node_modules/recharts/es6/util/tooltip/translate.js", + "node_modules/recharts/es6/component/TooltipBoundingBox.js", + "node_modules/recharts/es6/util/Global.js", + "node_modules/recharts/es6/component/Tooltip.js", + "node_modules/lodash/now.js", + "node_modules/lodash/_trimmedEndIndex.js", + "node_modules/lodash/_baseTrim.js", + "node_modules/lodash/toNumber.js", + "node_modules/lodash/debounce.js", + "node_modules/lodash/throttle.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/throttle.js?commonjs-es-import", + "node_modules/recharts/es6/component/ResponsiveContainer.js", + "node_modules/recharts/es6/component/Cell.js", + "node_modules/recharts/es6/util/DOMUtils.js", + "node_modules/recharts/es6/util/ReduceCSSCalc.js", + "node_modules/recharts/es6/component/Text.js", + "node_modules/d3-array/src/ascending.js", + "node_modules/d3-array/src/descending.js", + "node_modules/d3-array/src/bisector.js", + "node_modules/d3-array/src/number.js", + "node_modules/d3-array/src/bisect.js", + "node_modules/internmap/src/index.js", + "node_modules/d3-array/src/sort.js", + "node_modules/d3-array/src/ticks.js", + "node_modules/d3-array/src/max.js", + "node_modules/d3-array/src/min.js", + "node_modules/d3-array/src/quickselect.js", + "node_modules/d3-array/src/quantile.js", + "node_modules/d3-array/src/range.js", + "node_modules/d3-scale/src/init.js", + "node_modules/d3-scale/src/ordinal.js", + "node_modules/d3-scale/src/band.js", + "node_modules/d3-scale/src/constant.js", + "node_modules/d3-scale/src/number.js", + "node_modules/d3-scale/src/continuous.js", + "node_modules/d3-format/src/formatDecimal.js", + "node_modules/d3-format/src/exponent.js", + "node_modules/d3-format/src/formatGroup.js", + "node_modules/d3-format/src/formatNumerals.js", + "node_modules/d3-format/src/formatSpecifier.js", + "node_modules/d3-format/src/formatTrim.js", + "node_modules/d3-format/src/formatPrefixAuto.js", + "node_modules/d3-format/src/formatRounded.js", + "node_modules/d3-format/src/formatTypes.js", + "node_modules/d3-format/src/identity.js", + "node_modules/d3-format/src/locale.js", + "node_modules/d3-format/src/defaultLocale.js", + "node_modules/d3-format/src/precisionFixed.js", + "node_modules/d3-format/src/precisionPrefix.js", + "node_modules/d3-format/src/precisionRound.js", + "node_modules/d3-scale/src/tickFormat.js", + "node_modules/d3-scale/src/linear.js", + "node_modules/d3-scale/src/identity.js", + "node_modules/d3-scale/src/nice.js", + "node_modules/d3-scale/src/log.js", + "node_modules/d3-scale/src/symlog.js", + "node_modules/d3-scale/src/pow.js", + "node_modules/d3-scale/src/radial.js", + "node_modules/d3-scale/src/quantile.js", + "node_modules/d3-scale/src/quantize.js", + "node_modules/d3-scale/src/threshold.js", + "node_modules/d3-time/src/interval.js", + "node_modules/d3-time/src/millisecond.js", + "node_modules/d3-time/src/duration.js", + "node_modules/d3-time/src/second.js", + "node_modules/d3-time/src/minute.js", + "node_modules/d3-time/src/hour.js", + "node_modules/d3-time/src/day.js", + "node_modules/d3-time/src/week.js", + "node_modules/d3-time/src/month.js", + "node_modules/d3-time/src/year.js", + "node_modules/d3-time/src/ticks.js", + "node_modules/d3-time-format/src/locale.js", + "node_modules/d3-time-format/src/defaultLocale.js", + "node_modules/d3-scale/src/time.js", + "node_modules/d3-scale/src/utcTime.js", + "node_modules/d3-scale/src/sequential.js", + "node_modules/d3-scale/src/sequentialQuantile.js", + "node_modules/d3-scale/src/diverging.js", + "node_modules/victory-vendor/es/d3-scale.js", + "node_modules/lodash/_baseExtremum.js", + "node_modules/lodash/_baseGt.js", + "node_modules/lodash/max.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/max.js?commonjs-es-import", + "node_modules/lodash/_baseLt.js", + "node_modules/lodash/min.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/min.js?commonjs-es-import", + "node_modules/lodash/map.js", + "node_modules/lodash/flatMap.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/flatMap.js?commonjs-es-import", + "node_modules/lodash/isEqual.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isEqual.js?commonjs-es-import", + "node_modules/decimal.js-light/decimal.mjs", + "node_modules/recharts-scale/es6/util/utils.js", + "node_modules/recharts-scale/es6/util/arithmetic.js", + "node_modules/recharts-scale/es6/getNiceTickValues.js", + "node_modules/tiny-invariant/dist/esm/tiny-invariant.js", + "node_modules/recharts/es6/cartesian/ErrorBar.js", + "node_modules/recharts/es6/util/getLegendProps.js", + "node_modules/recharts/es6/util/ChartUtils.js", + "node_modules/recharts/es6/util/PolarUtils.js", + "node_modules/recharts/es6/component/Label.js", + "node_modules/lodash/last.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/last.js?commonjs-es-import", + "node_modules/recharts/es6/component/LabelList.js", + "node_modules/recharts/es6/shape/Sector.js", + "node_modules/recharts/es6/shape/Curve.js", + "node_modules/fast-equals/dist/es/index.mjs", + "node_modules/react-smooth/es6/setRafTimeout.js", + "node_modules/react-smooth/es6/AnimateManager.js", + "node_modules/react-smooth/es6/util.js", + "node_modules/react-smooth/es6/easing.js", + "node_modules/react-smooth/es6/configUpdate.js", + "node_modules/react-smooth/es6/Animate.js", + "node_modules/recharts/es6/shape/Rectangle.js", + "node_modules/recharts/es6/shape/Polygon.js", + "node_modules/recharts/es6/shape/Dot.js", + "node_modules/recharts/es6/shape/Cross.js", + "node_modules/lodash/maxBy.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/maxBy.js?commonjs-es-import", + "node_modules/lodash/minBy.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/minBy.js?commonjs-es-import", + "node_modules/recharts/es6/polar/PolarRadiusAxis.js", + "node_modules/recharts/es6/polar/PolarAngleAxis.js", + "node_modules/lodash/_getPrototype.js", + "node_modules/lodash/isPlainObject.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isPlainObject.js?commonjs-es-import", + "node_modules/lodash/isBoolean.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isBoolean.js?commonjs-es-import", + "node_modules/recharts/es6/shape/Trapezoid.js", + "node_modules/recharts/es6/util/ActiveShapeUtils.js", + "node_modules/lodash/_baseRange.js", + "node_modules/lodash/toFinite.js", + "node_modules/lodash/_createRange.js", + "node_modules/lodash/range.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/range.js?commonjs-es-import", + "node_modules/recharts/es6/util/CssPrefixUtils.js", + "node_modules/recharts/es6/cartesian/Brush.js", + "node_modules/lodash/_baseSome.js", + "node_modules/lodash/some.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/some.js?commonjs-es-import", + "node_modules/recharts/es6/util/IfOverflowMatches.js", + "node_modules/lodash/_baseAssignValue.js", + "node_modules/lodash/mapValues.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/mapValues.js?commonjs-es-import", + "node_modules/lodash/_arrayEvery.js", + "node_modules/lodash/_baseEvery.js", + "node_modules/lodash/every.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/every.js?commonjs-es-import", + "node_modules/recharts/es6/util/BarUtils.js", + "node_modules/recharts/es6/cartesian/Bar.js", + "node_modules/recharts/es6/util/CartesianUtils.js", + "node_modules/lodash/_createFind.js", + "node_modules/lodash/toInteger.js", + "node_modules/lodash/findIndex.js", + "node_modules/lodash/find.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/find.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/memoize.js?commonjs-es-import", + "node_modules/recharts/es6/util/calculateViewBox.js", + "node_modules/recharts/es6/context/chartLayoutContext.js", + "node_modules/recharts/es6/cartesian/ReferenceLine.js", + "node_modules/recharts/es6/cartesian/ReferenceDot.js", + "node_modules/recharts/es6/cartesian/ReferenceArea.js", + "node_modules/recharts/es6/util/DetectReferenceElementsDomain.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/eventemitter3/index.js?commonjs-module", + "node_modules/eventemitter3/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/eventemitter3/index.js?commonjs-es-import", + "node_modules/recharts/es6/util/Events.js", + "node_modules/recharts/es6/chart/AccessibilityManager.js", + "node_modules/recharts/es6/util/isDomainSpecifiedByUser.js", + "node_modules/recharts/es6/util/cursor/getCursorRectangle.js", + "node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js", + "node_modules/recharts/es6/util/cursor/getCursorPoints.js", + "node_modules/recharts/es6/component/Cursor.js", + "node_modules/recharts/es6/chart/generateCategoricalChart.js" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_generateCategoricalChart-tQpM_2Ey.js" + }, + { + "file": "assets/index-DCbKzI_r.js", + "bytes": 928, + "gzipBytes": 562, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/prop-types/index.js?commonjs-module", + "node_modules/prop-types/lib/ReactPropTypesSecret.js", + "node_modules/prop-types/factoryWithThrowingShims.js", + "node_modules/prop-types/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/prop-types/index.js?commonjs-es-import" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_index-DCbKzI_r.js" + }, + { + "file": "assets/circle-alert-EvFEdfwm.js", + "bytes": 241, + "gzipBytes": 184, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-alert.js" + ], + "staticMembership": [ + "/app/attack", + "/app/admin" + ], + "dynamicEntry": "_circle-alert-EvFEdfwm.js" + }, + { + "file": "assets/rotate-ccw-v2tcH4l7.js", + "bytes": 191, + "gzipBytes": 179, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/rotate-ccw.js" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_rotate-ccw-v2tcH4l7.js" + }, + { + "file": "assets/alert-dialog-chuiBWTg.js", + "bytes": 3698, + "gzipBytes": 1237, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/@radix-ui/react-alert-dialog/dist/index.mjs", + "src/components/ui/alert-dialog.tsx" + ], + "staticMembership": [ + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_alert-dialog-chuiBWTg.js" + }, + { + "file": "assets/string-cKWu9XK9.js", + "bytes": 8378, + "gzipBytes": 3585, + "imports": [], + "modules": [ + "node_modules/d3-color/src/define.js", + "node_modules/d3-color/src/color.js", + "node_modules/d3-interpolate/src/constant.js", + "node_modules/d3-interpolate/src/color.js", + "node_modules/d3-interpolate/src/rgb.js", + "node_modules/d3-interpolate/src/number.js", + "node_modules/d3-interpolate/src/string.js" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart", + "/app/admin" + ], + "dynamicEntry": "_string-cKWu9XK9.js" + }, + { + "file": "assets/textarea-BQ0Vj88K.js", + "bytes": 508, + "gzipBytes": 335, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "src/components/ui/textarea.tsx" + ], + "staticMembership": [ + "/app/attack", + "/app/flowchart", + "/app/admin" + ], + "dynamicEntry": "_textarea-BQ0Vj88K.js" + }, + { + "file": "assets/credit-card-DxReFz7h.js", + "bytes": 198, + "gzipBytes": 184, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/credit-card.js" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_credit-card-DxReFz7h.js" + }, + { + "file": "assets/shield-C8ZFNTgi.js", + "bytes": 264, + "gzipBytes": 224, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/shield.js" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart", + "/app/admin" + ], + "dynamicEntry": "_shield-C8ZFNTgi.js" + }, + { + "file": "assets/input-BjDrRHtx.js", + "bytes": 593, + "gzipBytes": 365, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "src/components/ui/input.tsx" + ], + "staticMembership": [ + "/login", + "/app/generate", + "/app/attack", + "/app/flowchart", + "/app/admin" + ], + "dynamicEntry": "_input-BjDrRHtx.js" + }, + { + "file": "assets/trash-2-F2gcUNIU.js", + "bytes": 349, + "gzipBytes": 246, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/trash-2.js" + ], + "staticMembership": [ + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_trash-2-F2gcUNIU.js" + }, + { + "file": "assets/badge-BC-6QS26.js", + "bytes": 796, + "gzipBytes": 409, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "src/components/ui/badge.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack", + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_badge-BC-6QS26.js" + }, + { + "file": "assets/card-BnT411OX.js", + "bytes": 1004, + "gzipBytes": 390, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "src/components/ui/card.tsx" + ], + "staticMembership": [ + "/login", + "/app", + "/app/generate", + "/app/attack", + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_card-BnT411OX.js" + }, + { + "file": "assets/NotFound-DvGZAJP6.js", + "bytes": 659, + "gzipBytes": 384, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "src/pages/NotFound.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/NotFound.tsx" + }, + { + "file": "assets/web-D9KG4rKC.js", + "bytes": 843, + "gzipBytes": 400, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/@capacitor/app/dist/esm/web.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@capacitor/app/dist/esm/web.js" + }, + { + "file": "assets/web-WxmaVhoc.js", + "bytes": 899, + "gzipBytes": 458, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/@capacitor/haptics/dist/esm/web.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@capacitor/haptics/dist/esm/web.js" + }, + { + "file": "assets/web-XsvGzZYP.js", + "bytes": 380, + "gzipBytes": 253, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/@capacitor/browser/dist/esm/web.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@capacitor/browser/dist/esm/web.js" + }, + { + "file": "assets/export-utils-C_AAuxR6.js", + "bytes": 17958, + "gzipBytes": 4367, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/date-format-CfassM9h.js" + ], + "modules": [ + "src/lib/export-utils.ts" + ], + "staticMembership": [], + "dynamicEntry": "src/lib/export-utils.ts" + }, + { + "file": "assets/pdf-export-utils-DIHHR01V.js", + "bytes": 13433, + "gzipBytes": 4521, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/date-format-CfassM9h.js" + ], + "modules": [ + "src/lib/pdf-export-utils.ts" + ], + "staticMembership": [], + "dynamicEntry": "src/lib/pdf-export-utils.ts" + }, + { + "file": "assets/date-format-CfassM9h.js", + "bytes": 693, + "gzipBytes": 314, + "imports": [], + "modules": [ + "src/lib/date-format.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_date-format-CfassM9h.js" + }, + { + "file": "assets/index-CUklgy1x.js", + "bytes": 504095, + "gzipBytes": 131453, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/index.js?commonjs-exports", + "node_modules/underscore/modules/_setup.js", + "node_modules/underscore/modules/restArguments.js", + "node_modules/underscore/modules/isObject.js", + "node_modules/underscore/modules/isNull.js", + "node_modules/underscore/modules/isUndefined.js", + "node_modules/underscore/modules/isBoolean.js", + "node_modules/underscore/modules/isElement.js", + "node_modules/underscore/modules/_tagTester.js", + "node_modules/underscore/modules/isString.js", + "node_modules/underscore/modules/isNumber.js", + "node_modules/underscore/modules/isDate.js", + "node_modules/underscore/modules/isRegExp.js", + "node_modules/underscore/modules/isError.js", + "node_modules/underscore/modules/isSymbol.js", + "node_modules/underscore/modules/isArrayBuffer.js", + "node_modules/underscore/modules/isFunction.js", + "node_modules/underscore/modules/_hasObjectTag.js", + "node_modules/underscore/modules/_stringTagBug.js", + "node_modules/underscore/modules/isDataView.js", + "node_modules/underscore/modules/isArray.js", + "node_modules/underscore/modules/_has.js", + "node_modules/underscore/modules/isArguments.js", + "node_modules/underscore/modules/isFinite.js", + "node_modules/underscore/modules/isNaN.js", + "node_modules/underscore/modules/constant.js", + "node_modules/underscore/modules/_createSizePropertyCheck.js", + "node_modules/underscore/modules/_shallowProperty.js", + "node_modules/underscore/modules/_getByteLength.js", + "node_modules/underscore/modules/_isBufferLike.js", + "node_modules/underscore/modules/isTypedArray.js", + "node_modules/underscore/modules/_getLength.js", + "node_modules/underscore/modules/_collectNonEnumProps.js", + "node_modules/underscore/modules/keys.js", + "node_modules/underscore/modules/isEmpty.js", + "node_modules/underscore/modules/isMatch.js", + "node_modules/underscore/modules/underscore.js", + "node_modules/underscore/modules/_toBufferView.js", + "node_modules/underscore/modules/isEqual.js", + "node_modules/underscore/modules/allKeys.js", + "node_modules/underscore/modules/_methodFingerprint.js", + "node_modules/underscore/modules/isMap.js", + "node_modules/underscore/modules/isWeakMap.js", + "node_modules/underscore/modules/isSet.js", + "node_modules/underscore/modules/isWeakSet.js", + "node_modules/underscore/modules/values.js", + "node_modules/underscore/modules/pairs.js", + "node_modules/underscore/modules/invert.js", + "node_modules/underscore/modules/functions.js", + "node_modules/underscore/modules/_createAssigner.js", + "node_modules/underscore/modules/extend.js", + "node_modules/underscore/modules/extendOwn.js", + "node_modules/underscore/modules/defaults.js", + "node_modules/underscore/modules/_baseCreate.js", + "node_modules/underscore/modules/create.js", + "node_modules/underscore/modules/clone.js", + "node_modules/underscore/modules/tap.js", + "node_modules/underscore/modules/toPath.js", + "node_modules/underscore/modules/_toPath.js", + "node_modules/underscore/modules/_deepGet.js", + "node_modules/underscore/modules/get.js", + "node_modules/underscore/modules/has.js", + "node_modules/underscore/modules/identity.js", + "node_modules/underscore/modules/matcher.js", + "node_modules/underscore/modules/property.js", + "node_modules/underscore/modules/_optimizeCb.js", + "node_modules/underscore/modules/_baseIteratee.js", + "node_modules/underscore/modules/iteratee.js", + "node_modules/underscore/modules/_cb.js", + "node_modules/underscore/modules/mapObject.js", + "node_modules/underscore/modules/noop.js", + "node_modules/underscore/modules/propertyOf.js", + "node_modules/underscore/modules/times.js", + "node_modules/underscore/modules/random.js", + "node_modules/underscore/modules/now.js", + "node_modules/underscore/modules/_createEscaper.js", + "node_modules/underscore/modules/_escapeMap.js", + "node_modules/underscore/modules/escape.js", + "node_modules/underscore/modules/_unescapeMap.js", + "node_modules/underscore/modules/unescape.js", + "node_modules/underscore/modules/templateSettings.js", + "node_modules/underscore/modules/template.js", + "node_modules/underscore/modules/result.js", + "node_modules/underscore/modules/uniqueId.js", + "node_modules/underscore/modules/chain.js", + "node_modules/underscore/modules/_executeBound.js", + "node_modules/underscore/modules/partial.js", + "node_modules/underscore/modules/bind.js", + "node_modules/underscore/modules/_isArrayLike.js", + "node_modules/underscore/modules/_flatten.js", + "node_modules/underscore/modules/bindAll.js", + "node_modules/underscore/modules/memoize.js", + "node_modules/underscore/modules/delay.js", + "node_modules/underscore/modules/defer.js", + "node_modules/underscore/modules/throttle.js", + "node_modules/underscore/modules/debounce.js", + "node_modules/underscore/modules/wrap.js", + "node_modules/underscore/modules/negate.js", + "node_modules/underscore/modules/compose.js", + "node_modules/underscore/modules/after.js", + "node_modules/underscore/modules/before.js", + "node_modules/underscore/modules/once.js", + "node_modules/underscore/modules/findKey.js", + "node_modules/underscore/modules/_createPredicateIndexFinder.js", + "node_modules/underscore/modules/findIndex.js", + "node_modules/underscore/modules/findLastIndex.js", + "node_modules/underscore/modules/sortedIndex.js", + "node_modules/underscore/modules/_createIndexFinder.js", + "node_modules/underscore/modules/indexOf.js", + "node_modules/underscore/modules/lastIndexOf.js", + "node_modules/underscore/modules/find.js", + "node_modules/underscore/modules/findWhere.js", + "node_modules/underscore/modules/each.js", + "node_modules/underscore/modules/map.js", + "node_modules/underscore/modules/_createReduce.js", + "node_modules/underscore/modules/reduce.js", + "node_modules/underscore/modules/reduceRight.js", + "node_modules/underscore/modules/filter.js", + "node_modules/underscore/modules/reject.js", + "node_modules/underscore/modules/every.js", + "node_modules/underscore/modules/some.js", + "node_modules/underscore/modules/contains.js", + "node_modules/underscore/modules/invoke.js", + "node_modules/underscore/modules/pluck.js", + "node_modules/underscore/modules/where.js", + "node_modules/underscore/modules/max.js", + "node_modules/underscore/modules/min.js", + "node_modules/underscore/modules/toArray.js", + "node_modules/underscore/modules/sample.js", + "node_modules/underscore/modules/shuffle.js", + "node_modules/underscore/modules/sortBy.js", + "node_modules/underscore/modules/_group.js", + "node_modules/underscore/modules/groupBy.js", + "node_modules/underscore/modules/indexBy.js", + "node_modules/underscore/modules/countBy.js", + "node_modules/underscore/modules/partition.js", + "node_modules/underscore/modules/size.js", + "node_modules/underscore/modules/_keyInObj.js", + "node_modules/underscore/modules/pick.js", + "node_modules/underscore/modules/omit.js", + "node_modules/underscore/modules/initial.js", + "node_modules/underscore/modules/first.js", + "node_modules/underscore/modules/rest.js", + "node_modules/underscore/modules/last.js", + "node_modules/underscore/modules/compact.js", + "node_modules/underscore/modules/flatten.js", + "node_modules/underscore/modules/difference.js", + "node_modules/underscore/modules/without.js", + "node_modules/underscore/modules/uniq.js", + "node_modules/underscore/modules/union.js", + "node_modules/underscore/modules/intersection.js", + "node_modules/underscore/modules/unzip.js", + "node_modules/underscore/modules/zip.js", + "node_modules/underscore/modules/object.js", + "node_modules/underscore/modules/range.js", + "node_modules/underscore/modules/chunk.js", + "node_modules/underscore/modules/_chainResult.js", + "node_modules/underscore/modules/mixin.js", + "node_modules/underscore/modules/underscore-array-methods.js", + "node_modules/underscore/modules/index.js", + "node_modules/underscore/modules/index-default.js", + "node_modules/underscore/modules/index-all.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/underscore/modules/index-all.js?commonjs-proxy", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/docx-reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/promises.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/bluebird/js/release/promise.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/bluebird/js/release/es5.js?commonjs-module", + "node_modules/bluebird/js/release/es5.js", + "node_modules/bluebird/js/release/util.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/bluebird/js/release/async.js?commonjs-module", + "node_modules/bluebird/js/release/schedule.js", + "node_modules/bluebird/js/release/queue.js", + "node_modules/bluebird/js/release/async.js", + "node_modules/bluebird/js/release/errors.js", + "node_modules/bluebird/js/release/thenables.js", + "node_modules/bluebird/js/release/promise_array.js", + "node_modules/bluebird/js/release/context.js", + "node_modules/bluebird/js/release/debuggability.js", + "node_modules/bluebird/js/release/finally.js", + "node_modules/bluebird/js/release/catch_filter.js", + "node_modules/bluebird/js/release/nodeback.js", + "node_modules/bluebird/js/release/method.js", + "node_modules/bluebird/js/release/bind.js", + "node_modules/bluebird/js/release/cancel.js", + "node_modules/bluebird/js/release/direct_resolve.js", + "node_modules/bluebird/js/release/synchronous_inspection.js", + "node_modules/bluebird/js/release/join.js", + "node_modules/bluebird/js/release/map.js", + "node_modules/bluebird/js/release/call_get.js", + "node_modules/bluebird/js/release/using.js", + "node_modules/bluebird/js/release/timers.js", + "node_modules/bluebird/js/release/generators.js", + "node_modules/bluebird/js/release/nodeify.js", + "node_modules/bluebird/js/release/promisify.js", + "node_modules/bluebird/js/release/props.js", + "node_modules/bluebird/js/release/race.js", + "node_modules/bluebird/js/release/reduce.js", + "node_modules/bluebird/js/release/settle.js", + "node_modules/bluebird/js/release/some.js", + "node_modules/bluebird/js/release/filter.js", + "node_modules/bluebird/js/release/each.js", + "node_modules/bluebird/js/release/any.js", + "node_modules/bluebird/js/release/promise.js", + "node_modules/mammoth/lib/promises.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/documents.js?commonjs-exports", + "node_modules/mammoth/lib/documents.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/results.js?commonjs-exports", + "node_modules/mammoth/lib/results.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/zipfile.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/base64-js/index.js?commonjs-exports", + "node_modules/base64-js/index.js", + "\u0000commonjs-dynamic-modules", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/jszip/dist/jszip.min.js?commonjs-module", + "node_modules/jszip/dist/jszip.min.js", + "node_modules/mammoth/lib/zipfile.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/office-xml-reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/nodes.js?commonjs-exports", + "node_modules/mammoth/lib/xml/nodes.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/xmldom.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/dom.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/conventions.js?commonjs-exports", + "node_modules/@xmldom/xmldom/lib/conventions.js", + "node_modules/@xmldom/xmldom/lib/dom.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/dom-parser.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/entities.js?commonjs-exports", + "node_modules/@xmldom/xmldom/lib/entities.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/sax.js?commonjs-exports", + "node_modules/@xmldom/xmldom/lib/sax.js", + "node_modules/@xmldom/xmldom/lib/dom-parser.js", + "node_modules/@xmldom/xmldom/lib/index.js", + "node_modules/mammoth/lib/xml/xmldom.js", + "node_modules/mammoth/lib/xml/reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/writer.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/Utility.js?commonjs-exports", + "node_modules/xmlbuilder/lib/Utility.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDocument.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLNode.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLElement.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLAttribute.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLAttribute.js", + "node_modules/xmlbuilder/lib/XMLElement.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLCData.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLCData.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLComment.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLComment.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDeclaration.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDeclaration.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDocType.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDTDAttList.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDTDAttList.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDTDEntity.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDTDEntity.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDTDElement.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDTDElement.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDTDNotation.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDTDNotation.js", + "node_modules/xmlbuilder/lib/XMLDocType.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLRaw.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLRaw.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLText.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLText.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLProcessingInstruction.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDummy.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDummy.js", + "node_modules/xmlbuilder/lib/XMLNode.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLStringifier.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLStringifier.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLStringWriter.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLWriterBase.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLWriterBase.js", + "node_modules/xmlbuilder/lib/XMLStringWriter.js", + "node_modules/xmlbuilder/lib/XMLDocument.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDocumentCB.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDocumentCB.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLStreamWriter.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLStreamWriter.js", + "node_modules/xmlbuilder/lib/index.js", + "node_modules/mammoth/lib/xml/writer.js", + "node_modules/mammoth/lib/xml/index.js", + "node_modules/mammoth/lib/docx/office-xml-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/body-reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/dingbat-to-unicode/dist/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/dingbat-to-unicode/dist/dingbats.js?commonjs-exports", + "node_modules/dingbat-to-unicode/dist/dingbats.js", + "node_modules/dingbat-to-unicode/dist/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/transforms.js?commonjs-exports", + "node_modules/mammoth/lib/transforms.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/uris.js?commonjs-exports", + "node_modules/mammoth/lib/docx/uris.js", + "node_modules/mammoth/lib/docx/body-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/document-xml-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/document-xml-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/relationships-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/relationships-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/content-types-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/content-types-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/numbering-xml.js?commonjs-exports", + "node_modules/mammoth/lib/docx/numbering-xml.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/styles-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/styles-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/notes-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/notes-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/comments-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/comments-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/browser/docx/files.js?commonjs-exports", + "node_modules/mammoth/browser/docx/files.js", + "node_modules/mammoth/lib/docx/docx-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/style-map.js?commonjs-exports", + "node_modules/mammoth/lib/docx/style-map.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/document-to-html.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/styles/html-paths.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/html/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/html/ast.js?commonjs-exports", + "node_modules/mammoth/lib/html/ast.js", + "node_modules/mammoth/lib/html/simplify.js", + "node_modules/mammoth/lib/html/index.js", + "node_modules/mammoth/lib/styles/html-paths.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/images.js?commonjs-exports", + "node_modules/mammoth/lib/images.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/writers/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/writers/html-writer.js?commonjs-exports", + "node_modules/mammoth/lib/writers/html-writer.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/writers/markdown-writer.js?commonjs-exports", + "node_modules/mammoth/lib/writers/markdown-writer.js", + "node_modules/mammoth/lib/writers/index.js", + "node_modules/mammoth/lib/document-to-html.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/raw-text.js?commonjs-exports", + "node_modules/mammoth/lib/raw-text.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/style-reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/parser.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/TokenIterator.js?commonjs-module", + "node_modules/lop/lib/TokenIterator.js", + "node_modules/lop/lib/parser.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/rules.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/option/index.js?commonjs-exports", + "node_modules/option/index.js", + "node_modules/lop/lib/parsing-results.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/errors.js?commonjs-exports", + "node_modules/lop/lib/errors.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/lazy-iterators.js?commonjs-exports", + "node_modules/lop/lib/lazy-iterators.js", + "node_modules/lop/lib/rules.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/StringSource.js?commonjs-module", + "node_modules/lop/lib/StringSource.js", + "node_modules/lop/lib/Token.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/bottom-up.js?commonjs-exports", + "node_modules/lop/lib/bottom-up.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/regex-tokeniser.js?commonjs-exports", + "node_modules/lop/lib/regex-tokeniser.js", + "node_modules/lop/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/styles/document-matchers.js?commonjs-exports", + "node_modules/mammoth/lib/styles/document-matchers.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/styles/parser/tokeniser.js?commonjs-exports", + "node_modules/mammoth/lib/styles/parser/tokeniser.js", + "node_modules/mammoth/lib/style-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/options-reader.js?commonjs-exports", + "node_modules/mammoth/lib/options-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/browser/unzip.js?commonjs-exports", + "node_modules/mammoth/browser/unzip.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/underline.js?commonjs-exports", + "node_modules/mammoth/lib/underline.js", + "node_modules/mammoth/lib/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/index.js?commonjs-es-import" + ], + "staticMembership": [], + "dynamicEntry": "_index-CUklgy1x.js" + }, + { + "file": "assets/pdf-ClZ_1Nv1.js", + "bytes": 495636, + "gzipBytes": 151463, + "imports": [], + "modules": [ + "node_modules/pdfjs-dist/legacy/build/pdf.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/pdfjs-dist/legacy/build/pdf.mjs" + }, + { + "file": "assets/index-BOF6v8rb.js", + "bytes": 410621, + "gzipBytes": 118834, + "imports": [], + "modules": [ + "node_modules/docx/dist/index.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/docx/dist/index.mjs" + }, + { + "file": "assets/FileSaver.min-D_JFMesj.js", + "bytes": 3036, + "gzipBytes": 1485, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/file-saver/dist/FileSaver.min.js?commonjs-module", + "node_modules/file-saver/dist/FileSaver.min.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/file-saver/dist/FileSaver.min.js?commonjs-es-import" + ], + "staticMembership": [], + "dynamicEntry": "_FileSaver.min-D_JFMesj.js" + }, + { + "file": "assets/jspdf.es.min-rPht-yMH.js", + "bytes": 386192, + "gzipBytes": 126391, + "imports": [ + "assets/index-BXPLmGRM.js" + ], + "modules": [ + "node_modules/@babel/runtime/helpers/esm/typeof.js", + "node_modules/fflate/esm/browser.js", + "node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js", + "node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js", + "node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js", + "node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js", + "node_modules/@babel/runtime/helpers/esm/nonIterableRest.js", + "node_modules/@babel/runtime/helpers/esm/slicedToArray.js", + "node_modules/iobuffer/lib-esm/text.js", + "node_modules/iobuffer/lib-esm/IOBuffer.js", + "node_modules/pako/dist/pako.esm.mjs", + "node_modules/fast-png/lib-esm/helpers/crc.js", + "node_modules/fast-png/lib-esm/helpers/unfilter.js", + "node_modules/fast-png/lib-esm/helpers/applyUnfilter.js", + "node_modules/fast-png/lib-esm/helpers/decodeInterlaceAdam7.js", + "node_modules/fast-png/lib-esm/helpers/decodeInterlaceNull.js", + "node_modules/fast-png/lib-esm/helpers/signature.js", + "node_modules/fast-png/lib-esm/helpers/text.js", + "node_modules/fast-png/lib-esm/internalTypes.js", + "node_modules/fast-png/lib-esm/PngDecoder.js", + "node_modules/fast-png/lib-esm/types.js", + "node_modules/fast-png/lib-esm/index.js", + "node_modules/jspdf/dist/jspdf.es.min.js" + ], + "staticMembership": [], + "dynamicEntry": "_jspdf.es.min-rPht-yMH.js" + }, + { + "file": "assets/jspdf.plugin.autotable-BBLUVd7n.js", + "bytes": 30934, + "gzipBytes": 9870, + "imports": [], + "modules": [ + "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs" + }, + { + "file": "assets/html2canvas.esm-DXEQVQnt.js", + "bytes": 201041, + "gzipBytes": 47431, + "imports": [], + "modules": [ + "node_modules/html2canvas/dist/html2canvas.esm.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/html2canvas/dist/html2canvas.esm.js" + }, + { + "file": "assets/purify.es-4eNOHKSq.js", + "bytes": 28741, + "gzipBytes": 11017, + "imports": [], + "modules": [ + "node_modules/dompurify/dist/purify.es.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/dompurify/dist/purify.es.mjs" + }, + { + "file": "assets/index.es-_IyzbuIU.js", + "bytes": 158949, + "gzipBytes": 53058, + "imports": [ + "assets/index-BXPLmGRM.js", + "assets/jspdf.es.min-rPht-yMH.js" + ], + "modules": [ + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.constructor.js?commonjs-exports", + "node_modules/core-js/internals/global-this.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-get-own-property-descriptor.js?commonjs-exports", + "node_modules/core-js/internals/fails.js", + "node_modules/core-js/internals/descriptors.js", + "node_modules/core-js/internals/function-bind-native.js", + "node_modules/core-js/internals/function-call.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-property-is-enumerable.js?commonjs-exports", + "node_modules/core-js/internals/object-property-is-enumerable.js", + "node_modules/core-js/internals/create-property-descriptor.js", + "node_modules/core-js/internals/function-uncurry-this.js", + "node_modules/core-js/internals/classof-raw.js", + "node_modules/core-js/internals/indexed-object.js", + "node_modules/core-js/internals/is-null-or-undefined.js", + "node_modules/core-js/internals/require-object-coercible.js", + "node_modules/core-js/internals/to-indexed-object.js", + "node_modules/core-js/internals/is-callable.js", + "node_modules/core-js/internals/is-object.js", + "node_modules/core-js/internals/get-built-in.js", + "node_modules/core-js/internals/object-is-prototype-of.js", + "node_modules/core-js/internals/environment-user-agent.js", + "node_modules/core-js/internals/environment-v8-version.js", + "node_modules/core-js/internals/symbol-constructor-detection.js", + "node_modules/core-js/internals/use-symbol-as-uid.js", + "node_modules/core-js/internals/is-symbol.js", + "node_modules/core-js/internals/try-to-string.js", + "node_modules/core-js/internals/a-callable.js", + "node_modules/core-js/internals/get-method.js", + "node_modules/core-js/internals/ordinary-to-primitive.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/shared-store.js?commonjs-module", + "node_modules/core-js/internals/is-pure.js", + "node_modules/core-js/internals/define-global-property.js", + "node_modules/core-js/internals/shared-store.js", + "node_modules/core-js/internals/shared.js", + "node_modules/core-js/internals/to-object.js", + "node_modules/core-js/internals/has-own-property.js", + "node_modules/core-js/internals/uid.js", + "node_modules/core-js/internals/well-known-symbol.js", + "node_modules/core-js/internals/to-primitive.js", + "node_modules/core-js/internals/to-property-key.js", + "node_modules/core-js/internals/document-create-element.js", + "node_modules/core-js/internals/ie8-dom-define.js", + "node_modules/core-js/internals/object-get-own-property-descriptor.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-define-property.js?commonjs-exports", + "node_modules/core-js/internals/v8-prototype-define-bug.js", + "node_modules/core-js/internals/an-object.js", + "node_modules/core-js/internals/object-define-property.js", + "node_modules/core-js/internals/create-non-enumerable-property.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/make-built-in.js?commonjs-module", + "node_modules/core-js/internals/function-name.js", + "node_modules/core-js/internals/inspect-source.js", + "node_modules/core-js/internals/weak-map-basic-detection.js", + "node_modules/core-js/internals/shared-key.js", + "node_modules/core-js/internals/hidden-keys.js", + "node_modules/core-js/internals/internal-state.js", + "node_modules/core-js/internals/make-built-in.js", + "node_modules/core-js/internals/define-built-in.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-get-own-property-names.js?commonjs-exports", + "node_modules/core-js/internals/math-trunc.js", + "node_modules/core-js/internals/to-integer-or-infinity.js", + "node_modules/core-js/internals/to-absolute-index.js", + "node_modules/core-js/internals/to-length.js", + "node_modules/core-js/internals/length-of-array-like.js", + "node_modules/core-js/internals/array-includes.js", + "node_modules/core-js/internals/object-keys-internal.js", + "node_modules/core-js/internals/enum-bug-keys.js", + "node_modules/core-js/internals/object-get-own-property-names.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-get-own-property-symbols.js?commonjs-exports", + "node_modules/core-js/internals/object-get-own-property-symbols.js", + "node_modules/core-js/internals/own-keys.js", + "node_modules/core-js/internals/copy-constructor-properties.js", + "node_modules/core-js/internals/is-forced.js", + "node_modules/core-js/internals/export.js", + "node_modules/core-js/internals/environment.js", + "node_modules/core-js/internals/environment-is-node.js", + "node_modules/core-js/internals/path.js", + "node_modules/core-js/internals/function-uncurry-this-accessor.js", + "node_modules/core-js/internals/is-possible-prototype.js", + "node_modules/core-js/internals/a-possible-prototype.js", + "node_modules/core-js/internals/object-set-prototype-of.js", + "node_modules/core-js/internals/set-to-string-tag.js", + "node_modules/core-js/internals/define-built-in-accessor.js", + "node_modules/core-js/internals/set-species.js", + "node_modules/core-js/internals/an-instance.js", + "node_modules/core-js/internals/to-string-tag-support.js", + "node_modules/core-js/internals/classof.js", + "node_modules/core-js/internals/is-constructor.js", + "node_modules/core-js/internals/a-constructor.js", + "node_modules/core-js/internals/species-constructor.js", + "node_modules/core-js/internals/function-apply.js", + "node_modules/core-js/internals/function-uncurry-this-clause.js", + "node_modules/core-js/internals/function-bind-context.js", + "node_modules/core-js/internals/html.js", + "node_modules/core-js/internals/array-slice.js", + "node_modules/core-js/internals/validate-arguments-length.js", + "node_modules/core-js/internals/environment-is-ios.js", + "node_modules/core-js/internals/task.js", + "node_modules/core-js/internals/safe-get-built-in.js", + "node_modules/core-js/internals/queue.js", + "node_modules/core-js/internals/environment-is-ios-pebble.js", + "node_modules/core-js/internals/environment-is-webos-webkit.js", + "node_modules/core-js/internals/microtask.js", + "node_modules/core-js/internals/host-report-errors.js", + "node_modules/core-js/internals/perform.js", + "node_modules/core-js/internals/promise-native-constructor.js", + "node_modules/core-js/internals/promise-constructor-detection.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/new-promise-capability.js?commonjs-exports", + "node_modules/core-js/internals/new-promise-capability.js", + "node_modules/core-js/modules/es.promise.constructor.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.all.js?commonjs-exports", + "node_modules/core-js/internals/iterators.js", + "node_modules/core-js/internals/is-array-iterator-method.js", + "node_modules/core-js/internals/get-iterator-method-internal.js", + "node_modules/core-js/internals/get-iterator-internal.js", + "node_modules/core-js/internals/iterator-close.js", + "node_modules/core-js/internals/iterate.js", + "node_modules/core-js/internals/check-correctness-of-iteration.js", + "node_modules/core-js/internals/promise-statics-incorrect-iteration.js", + "node_modules/core-js/modules/es.promise.all.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.catch.js?commonjs-exports", + "node_modules/core-js/modules/es.promise.catch.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.race.js?commonjs-exports", + "node_modules/core-js/modules/es.promise.race.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.reject.js?commonjs-exports", + "node_modules/core-js/modules/es.promise.reject.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.resolve.js?commonjs-exports", + "node_modules/core-js/internals/promise-resolve.js", + "node_modules/core-js/modules/es.promise.resolve.js", + "node_modules/core-js/modules/es.promise.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.js?commonjs-es-import", + "node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.match.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.regexp.exec.js?commonjs-exports", + "node_modules/core-js/internals/to-string.js", + "node_modules/core-js/internals/regexp-flags.js", + "node_modules/core-js/internals/regexp-sticky-helpers.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-define-properties.js?commonjs-exports", + "node_modules/core-js/internals/object-keys.js", + "node_modules/core-js/internals/object-define-properties.js", + "node_modules/core-js/internals/object-create.js", + "node_modules/core-js/internals/regexp-unsupported-dot-all.js", + "node_modules/core-js/internals/regexp-unsupported-ncg.js", + "node_modules/core-js/internals/regexp-exec.js", + "node_modules/core-js/modules/es.regexp.exec.js", + "node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js", + "node_modules/core-js/internals/string-multibyte.js", + "node_modules/core-js/internals/advance-string-index.js", + "node_modules/core-js/internals/regexp-flags-detection.js", + "node_modules/core-js/internals/regexp-get-flags.js", + "node_modules/core-js/internals/regexp-exec-abstract.js", + "node_modules/core-js/modules/es.string.match.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.match.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.replace.js?commonjs-exports", + "node_modules/core-js/internals/get-substitution.js", + "node_modules/core-js/modules/es.string.replace.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.replace.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.starts-with.js?commonjs-exports", + "node_modules/core-js/internals/is-regexp.js", + "node_modules/core-js/internals/not-a-regexp.js", + "node_modules/core-js/internals/correct-is-regexp-logic.js", + "node_modules/core-js/modules/es.string.starts-with.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.starts-with.js?commonjs-es-import", + "node_modules/core-js/internals/add-to-unscopables.js", + "node_modules/core-js/internals/correct-prototype-getter.js", + "node_modules/core-js/internals/object-get-prototype-of.js", + "node_modules/core-js/internals/iterators-core.js", + "node_modules/core-js/internals/iterator-create-constructor.js", + "node_modules/core-js/internals/iterator-define.js", + "node_modules/core-js/internals/create-iter-result-object.js", + "node_modules/core-js/modules/es.array.iterator.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.iterator.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/web.dom-collections.iterator.js?commonjs-exports", + "node_modules/core-js/internals/dom-iterables.js", + "node_modules/core-js/internals/dom-token-list-prototype.js", + "node_modules/core-js/modules/web.dom-collections.iterator.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/web.dom-collections.iterator.js?commonjs-es-import", + "node_modules/@babel/runtime/helpers/esm/toPrimitive.js", + "node_modules/@babel/runtime/helpers/esm/toPropertyKey.js", + "node_modules/@babel/runtime/helpers/esm/defineProperty.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.reduce.js?commonjs-exports", + "node_modules/core-js/internals/array-reduce.js", + "node_modules/core-js/internals/array-method-is-strict.js", + "node_modules/core-js/modules/es.array.reduce.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.reduce.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.ends-with.js?commonjs-exports", + "node_modules/core-js/modules/es.string.ends-with.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.ends-with.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.split.js?commonjs-exports", + "node_modules/core-js/modules/es.string.split.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.split.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/raf/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/performance-now/lib/performance-now.js?commonjs-module", + "node_modules/performance-now/lib/performance-now.js", + "node_modules/raf/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/raf/index.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.trim.js?commonjs-exports", + "node_modules/core-js/internals/whitespaces.js", + "node_modules/core-js/internals/string-trim.js", + "node_modules/core-js/internals/string-trim-forced.js", + "node_modules/core-js/modules/es.string.trim.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.trim.js?commonjs-es-import", + "node_modules/rgbcolor/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/rgbcolor/index.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.index-of.js?commonjs-exports", + "node_modules/core-js/modules/es.array.index-of.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.index-of.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.includes.js?commonjs-exports", + "node_modules/core-js/modules/es.string.includes.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.includes.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.reverse.js?commonjs-exports", + "node_modules/core-js/internals/is-array.js", + "node_modules/core-js/modules/es.array.reverse.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.reverse.js?commonjs-es-import", + "node_modules/svg-pathdata/lib/SVGPathData.module.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.regexp.to-string.js?commonjs-exports", + "node_modules/core-js/modules/es.regexp.to-string.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.regexp.to-string.js?commonjs-es-import", + "node_modules/stackblur-canvas/dist/stackblur-es.js", + "node_modules/canvg/lib/index.es.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/canvg/lib/index.es.js" + } + ] + } +} diff --git a/docs/performance/smooth-navigation-baseline/task-10-before.json b/docs/performance/smooth-navigation-baseline/task-10-before.json new file mode 100644 index 000000000..9fdec5068 --- /dev/null +++ b/docs/performance/smooth-navigation-baseline/task-10-before.json @@ -0,0 +1,6859 @@ +{ + "metadata": { + "runLabel": "task-10-before", + "capturedAt": "2026-09-20T12:48:53.909Z", + "sourceCommit": "b2ba178dee148d06d9bf89793f044add69d705b8", + "harnessCommit": "2e4076702bf769d3486863bc127c6add06558b69", + "nodeVersion": "v22.23.2", + "npmVersion": "12.0.2", + "browser": { + "name": "Chromium", + "version": "151.0.7922.34", + "executablePath": "/home/codex/.cache/ms-playwright/chromium-1234/chrome-linux64/chrome", + "playwrightVersion": "1.62.1" + }, + "vite": { + "serverMode": "development", + "productionGraphMode": "production", + "version": "7.3.6", + "port": 38383, + "cacheState": "cold routes disable HTTP cache through CDP and block service workers; clicks use a fresh or warmed browser cache" + }, + "profiles": [ + { + "name": "desktop", + "viewport": { + "width": 1280, + "height": 800 + }, + "deviceScaleFactor": 1, + "isMobile": false, + "hasTouch": false, + "userAgent": null, + "networkProfile": "unthrottled loopback", + "cpuProfile": "Chromium default CPU, no emulation" + }, + { + "name": "pixel-5", + "viewport": { + "width": 393, + "height": 727 + }, + "deviceScaleFactor": 2.75, + "isMobile": true, + "hasTouch": true, + "userAgent": "Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Mobile Safari/537.36", + "networkProfile": "unthrottled loopback", + "cpuProfile": "Chromium default CPU, no emulation" + } + ] + }, + "summary": { + "measurements": 38, + "byKind": { + "cold-refresh": 16, + "first-visit-click": 10, + "warm-click": 10, + "delayed-click": 2 + }, + "delayedFilmstrips": [ + "desktop", + "pixel-5" + ] + }, + "results": [ + { + "path": "/", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 2796.899999856949, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:38383/src/pages/LandingPage.tsx", + "startTime": 2498.2999999523163, + "endTime": 2518, + "duration": 19.700000047683716, + "transferSize": 7643, + "decodedBodySize": 7343 + } + ], + "longTasks": [ + { + "startTime": 2348.7999999523163, + "duration": 123 + }, + { + "startTime": 2683.7999999523163, + "duration": 108 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 136, + "browserRequestCount": 146, + "externalRequestCount": 10, + "transferredBytes": 7553487, + "encodedBytes": 7512687, + "decodedBytes": 7512687, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 2470.7999999523163, + "loadEventEnd": 2516.0999999046326, + "responseEnd": 1686.7999999523163 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "LandingPage" + }, + { + "path": "/login", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 591.2000000476837, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:38383/src/pages/LoginPage.tsx", + "startTime": 490.60000014305115, + "endTime": 517.1000001430511, + "duration": 26.5, + "transferSize": 63754, + "decodedBodySize": 63454 + } + ], + "longTasks": [ + { + "startTime": 327.60000014305115, + "duration": 133 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 124, + "browserRequestCount": 134, + "externalRequestCount": 10, + "transferredBytes": 7029415, + "encodedBytes": 6992215, + "decodedBytes": 6992215, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 458.7000000476837, + "loadEventEnd": 513, + "responseEnd": 16.40000009536743 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /login", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "LoginPage" + }, + { + "path": "/app", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 729.7000000476837, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:38383/src/pages/HomePage.tsx", + "startTime": 594.8999998569489, + "endTime": 620.0999999046326, + "duration": 25.200000047683716, + "transferSize": 26673, + "decodedBodySize": 26373 + } + ], + "longTasks": [ + { + "startTime": 351.59999990463257, + "duration": 151 + }, + { + "startTime": 506.2999999523163, + "duration": 50 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 122, + "browserRequestCount": 143, + "externalRequestCount": 21, + "transferredBytes": 7239166, + "encodedBytes": 7202566, + "decodedBytes": 7202566, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 500.5, + "loadEventEnd": 562.5999999046326, + "responseEnd": 15.700000047683716 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "HomePage" + }, + { + "path": "/app/generate", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 962.5, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:38383/src/pages/GeneratePage.tsx", + "startTime": 570.2000000476837, + "endTime": 599.3999998569489, + "duration": 29.199999809265137, + "transferSize": 78506, + "decodedBodySize": 78206 + } + ], + "longTasks": [ + { + "startTime": 354, + "duration": 128 + }, + { + "startTime": 879.5, + "duration": 81 + } + ], + "cls": 0.0028984375, + "layoutShifts": [ + { + "startTime": 988.2999999523163, + "value": 0.0028984375 + } + ], + "requestCount": 165, + "browserRequestCount": 187, + "externalRequestCount": 22, + "transferredBytes": 8865319, + "encodedBytes": 8815819, + "decodedBytes": 8815819, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 480, + "loadEventEnd": 643.5999999046326, + "responseEnd": 14.799999952316284 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/generate", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "GeneratePage" + }, + { + "path": "/app/attack", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 921.1999998092651, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:38383/src/pages/AttackPage.tsx", + "startTime": 554.6999998092651, + "endTime": 578.8999998569489, + "duration": 24.200000047683716, + "transferSize": 33746, + "decodedBodySize": 33446 + } + ], + "longTasks": [ + { + "startTime": 339, + "duration": 130 + }, + { + "startTime": 826.7999999523163, + "duration": 89 + } + ], + "cls": 0.01097265625, + "layoutShifts": [ + { + "startTime": 921, + "value": 0.01097265625 + } + ], + "requestCount": 166, + "browserRequestCount": 188, + "externalRequestCount": 22, + "transferredBytes": 8461296, + "encodedBytes": 8411496, + "decodedBytes": 8411496, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 467, + "loadEventEnd": 523, + "responseEnd": 12.799999952316284 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/attack", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AttackPage" + }, + { + "path": "/app/flowchart", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 859, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:38383/src/pages/FlowchartPage.tsx", + "startTime": 603.7000000476837, + "endTime": 642.7999999523163, + "duration": 39.09999990463257, + "transferSize": 205577, + "decodedBodySize": 205277 + } + ], + "longTasks": [ + { + "startTime": 350, + "duration": 156 + }, + { + "startTime": 561.5999999046326, + "duration": 53 + }, + { + "startTime": 793.2000000476837, + "duration": 58 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 132, + "browserRequestCount": 153, + "externalRequestCount": 21, + "transferredBytes": 8011529, + "encodedBytes": 7971929, + "decodedBytes": 7971929, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 504.7000000476837, + "loadEventEnd": 672, + "responseEnd": 17.799999952316284 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/flowchart", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "FlowchartPage" + }, + { + "path": "/app/history", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 736.7999999523163, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:38383/src/pages/HistoryPage.tsx", + "startTime": 555.3999998569489, + "endTime": 590.2999999523163, + "duration": 34.90000009536743, + "transferSize": 143448, + "decodedBodySize": 143148 + } + ], + "longTasks": [ + { + "startTime": 326.2999999523163, + "duration": 139 + } + ], + "cls": 0.010455078125, + "layoutShifts": [ + { + "startTime": 732.3999998569489, + "value": 0.010455078125 + } + ], + "requestCount": 131, + "browserRequestCount": 152, + "externalRequestCount": 21, + "transferredBytes": 7469511, + "encodedBytes": 7430211, + "decodedBytes": 7430211, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 464, + "loadEventEnd": 610, + "responseEnd": 12.799999952316284 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/history", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "HistoryPage" + }, + { + "path": "/app/admin", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 909.7999999523163, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:38383/src/pages/AdminPage.tsx", + "startTime": 623.7999999523163, + "endTime": 677.5999999046326, + "duration": 53.799999952316284, + "transferSize": 394470, + "decodedBodySize": 394170 + } + ], + "longTasks": [ + { + "startTime": 349, + "duration": 166 + }, + { + "startTime": 518.0999999046326, + "duration": 53 + }, + { + "startTime": 581.0999999046326, + "duration": 57 + }, + { + "startTime": 794.8999998569489, + "duration": 77 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 137, + "browserRequestCount": 163, + "externalRequestCount": 26, + "transferredBytes": 9075594, + "encodedBytes": 9034494, + "decodedBytes": 9034494, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 513.0999999046326, + "loadEventEnd": 578.7999999523163, + "responseEnd": 12.399999856948853 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/admin", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AdminPage" + }, + { + "path": "/app", + "clickTime": 1490.6999998092651, + "measurementBoundary": 1490.6999998092651, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 118.40000009536743, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 1, + "browserRequestCount": 11, + "externalRequestCount": 10, + "transferredBytes": 10223, + "encodedBytes": 9923, + "decodedBytes": 9923, + "sourceWorkExcluded": { + "requestCount": 137, + "longTaskCount": 4, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 458.2999999523163, + "loadEventEnd": 527.5999999046326, + "responseEnd": 13.799999952316284 + }, + "shellDomIdentitySurvived": null, + "kind": "first-visit-click", + "label": "Landing CTA -> /app", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "HomePage" + }, + { + "path": "/app", + "clickTime": 3482.0999999046326, + "measurementBoundary": 3482.0999999046326, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 39.200000047683716, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 138, + "longTaskCount": 5, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 805.0999999046326, + "loadEventEnd": 922.5, + "responseEnd": 32.299999952316284 + }, + "shellDomIdentitySurvived": null, + "kind": "warm-click", + "label": "Landing CTA -> /app", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "HomePage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:38383/src/pages/HomePage.tsx", + "startTime": 1974, + "responseEnd": 1990.5, + "transferSize": 26673, + "encodedBodySize": 26373, + "decodedBodySize": 26373 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/generate", + "clickTime": 865.1000001430511, + "measurementBoundary": 865.1000001430511, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 300.59999990463257, + "routeChunkRequests": [], + "longTasks": [ + { + "startTime": 1064, + "duration": 78 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 43, + "browserRequestCount": 45, + "externalRequestCount": 2, + "transferredBytes": 1574320, + "encodedBytes": 1561420, + "decodedBytes": 1561420, + "sourceWorkExcluded": { + "requestCount": 123, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 540.2999999523163, + "loadEventEnd": 602.7000000476837, + "responseEnd": 11.900000095367432 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> Generate", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "GeneratePage" + }, + { + "path": "/app/generate", + "clickTime": 1486.7999999523163, + "measurementBoundary": 1486.7999999523163, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 98.60000014305115, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 11, + "externalRequestCount": 11, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 166, + "longTaskCount": 3, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 471.2000000476837, + "loadEventEnd": 626, + "responseEnd": 16.5 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> Generate", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "GeneratePage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:38383/src/pages/GeneratePage.tsx", + "startTime": 823.4000000953674, + "responseEnd": 834.4000000953674, + "transferSize": 78506, + "encodedBodySize": 78206, + "decodedBodySize": 78206 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/attack", + "clickTime": 1023.1999998092651, + "measurementBoundary": 1023.1999998092651, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 132.60000014305115, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 7, + "browserRequestCount": 9, + "externalRequestCount": 2, + "transferredBytes": 188075, + "encodedBytes": 185975, + "decodedBytes": 185975, + "sourceWorkExcluded": { + "requestCount": 166, + "longTaskCount": 3, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 476.2999999523163, + "loadEventEnd": 639.3999998569489, + "responseEnd": 14.199999809265137 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Generate -> Attack", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "AttackPage" + }, + { + "path": "/app/attack", + "clickTime": 1681.7999999523163, + "measurementBoundary": 1681.7999999523163, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 79.20000004768372, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 3, + "externalRequestCount": 3, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 173, + "longTaskCount": 5, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 398.09999990463257, + "loadEventEnd": 459.19999980926514, + "responseEnd": 10 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Generate -> Attack", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "AttackPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:38383/src/pages/AttackPage.tsx", + "startTime": 939.7999999523163, + "responseEnd": 948.0999999046326, + "transferSize": 33746, + "encodedBodySize": 33446, + "decodedBodySize": 33446 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/flowchart", + "clickTime": 705.2999999523163, + "measurementBoundary": 705.2999999523163, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 142.5, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 10, + "browserRequestCount": 11, + "externalRequestCount": 1, + "transferredBytes": 593459, + "encodedBytes": 590459, + "decodedBytes": 590459, + "sourceWorkExcluded": { + "requestCount": 123, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 408.60000014305115, + "loadEventEnd": 458, + "responseEnd": 9.600000143051147 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> Flowchart", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "FlowchartPage" + }, + { + "path": "/app/flowchart", + "clickTime": 1172.4000000953674, + "measurementBoundary": 1172.4000000953674, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 56.799999952316284, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 133, + "longTaskCount": 2, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 397.80000019073486, + "loadEventEnd": 518.2000000476837, + "responseEnd": 8.100000143051147 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> Flowchart", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "FlowchartPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:38383/src/pages/FlowchartPage.tsx", + "startTime": 672.5, + "responseEnd": 681.6000001430511, + "transferSize": 205577, + "encodedBodySize": 205277, + "decodedBodySize": 205277 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/history", + "clickTime": 790.7000000476837, + "measurementBoundary": 790.7000000476837, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 158.40000009536743, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 9, + "browserRequestCount": 10, + "externalRequestCount": 1, + "transferredBytes": 113570, + "encodedBytes": 110870, + "decodedBytes": 110870, + "sourceWorkExcluded": { + "requestCount": 123, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 462.5, + "loadEventEnd": 614, + "responseEnd": 10 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> History", + "profile": "desktop", + "cacheState": "new context, browser cache empty", + "routeModule": "HistoryPage" + }, + { + "path": "/app/history", + "clickTime": 1353, + "measurementBoundary": 1353, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 33.89999985694885, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 132, + "longTaskCount": 3, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 579.7999999523163, + "loadEventEnd": 772.0999999046326, + "responseEnd": 14.5 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> History", + "profile": "desktop", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "HistoryPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:38383/src/pages/HistoryPage.tsx", + "startTime": 932.5999999046326, + "responseEnd": 945.8999998569489, + "transferSize": 143448, + "encodedBodySize": 143148, + "decodedBodySize": 143148 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 803.0999999046326, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:38383/src/pages/LandingPage.tsx", + "startTime": 524.0999999046326, + "endTime": 541.7000000476837, + "duration": 17.600000143051147, + "transferSize": 7643, + "decodedBodySize": 7343 + } + ], + "longTasks": [ + { + "startTime": 332.5, + "duration": 153 + }, + { + "startTime": 717.5999999046326, + "duration": 81 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 136, + "browserRequestCount": 146, + "externalRequestCount": 10, + "transferredBytes": 7553487, + "encodedBytes": 7512687, + "decodedBytes": 7512687, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 484, + "loadEventEnd": 543, + "responseEnd": 12 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "LandingPage" + }, + { + "path": "/login", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 630.5999999046326, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:38383/src/pages/LoginPage.tsx", + "startTime": 550.5, + "endTime": 566.4000000953674, + "duration": 15.900000095367432, + "transferSize": 63754, + "decodedBodySize": 63454 + } + ], + "longTasks": [ + { + "startTime": 355, + "duration": 159 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 124, + "browserRequestCount": 134, + "externalRequestCount": 10, + "transferredBytes": 7029415, + "encodedBytes": 6992215, + "decodedBytes": 6992215, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 511.2999999523163, + "loadEventEnd": 569, + "responseEnd": 12.599999904632568 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /login", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "LoginPage" + }, + { + "path": "/app", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 601.6000001430511, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:38383/src/pages/HomePage.tsx", + "startTime": 519.9000000953674, + "endTime": 535.7000000476837, + "duration": 15.799999952316284, + "transferSize": 26673, + "decodedBodySize": 26373 + } + ], + "longTasks": [ + { + "startTime": 296.7000000476837, + "duration": 130 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 122, + "browserRequestCount": 143, + "externalRequestCount": 21, + "transferredBytes": 7239166, + "encodedBytes": 7202566, + "decodedBytes": 7202566, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 425.40000009536743, + "loadEventEnd": 485.80000019073486, + "responseEnd": 12.400000095367432 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "HomePage" + }, + { + "path": "/app/generate", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 836.5999999046326, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:38383/src/pages/GeneratePage.tsx", + "startTime": 493.7999999523163, + "endTime": 509.40000009536743, + "duration": 15.600000143051147, + "transferSize": 78506, + "decodedBodySize": 78206 + } + ], + "longTasks": [ + { + "startTime": 308.5, + "duration": 115 + }, + { + "startTime": 760.7999999523163, + "duration": 74 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 165, + "browserRequestCount": 187, + "externalRequestCount": 22, + "transferredBytes": 8865319, + "encodedBytes": 8815819, + "decodedBytes": 8815819, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 422.59999990463257, + "loadEventEnd": 547.7999999523163, + "responseEnd": 7.900000095367432 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/generate", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "GeneratePage" + }, + { + "path": "/app/attack", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 813.9000000953674, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:38383/src/pages/AttackPage.tsx", + "startTime": 474, + "endTime": 488.10000014305115, + "duration": 14.100000143051147, + "transferSize": 33746, + "decodedBodySize": 33446 + } + ], + "longTasks": [ + { + "startTime": 267, + "duration": 126 + }, + { + "startTime": 725.3000001907349, + "duration": 84 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 166, + "browserRequestCount": 188, + "externalRequestCount": 22, + "transferredBytes": 8461296, + "encodedBytes": 8411496, + "decodedBytes": 8411496, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 391.5, + "loadEventEnd": 525.5, + "responseEnd": 10.100000143051147 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/attack", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AttackPage" + }, + { + "path": "/app/flowchart", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 844.7000000476837, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:38383/src/pages/FlowchartPage.tsx", + "startTime": 610.7000000476837, + "endTime": 631, + "duration": 20.299999952316284, + "transferSize": 205577, + "decodedBodySize": 205277 + } + ], + "longTasks": [ + { + "startTime": 359.7000000476837, + "duration": 152 + }, + { + "startTime": 567.1000001430511, + "duration": 52 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 132, + "browserRequestCount": 153, + "externalRequestCount": 21, + "transferredBytes": 8011529, + "encodedBytes": 7971929, + "decodedBytes": 7971929, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 510.2000000476837, + "loadEventEnd": 566, + "responseEnd": 12.299999952316284 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/flowchart", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "FlowchartPage" + }, + { + "path": "/app/history", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 722.6000001430511, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:38383/src/pages/HistoryPage.tsx", + "startTime": 555.9000000953674, + "endTime": 571.5, + "duration": 15.599999904632568, + "transferSize": 143448, + "decodedBodySize": 143148 + } + ], + "longTasks": [ + { + "startTime": 333.7000000476837, + "duration": 143 + } + ], + "cls": 0.04643643016750263, + "layoutShifts": [ + { + "startTime": 726.4000000953674, + "value": 0.04643643016750263 + } + ], + "requestCount": 131, + "browserRequestCount": 152, + "externalRequestCount": 21, + "transferredBytes": 7469511, + "encodedBytes": 7430211, + "decodedBytes": 7430211, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 475.40000009536743, + "loadEventEnd": 525.5, + "responseEnd": 11.600000143051147 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/history", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "HistoryPage" + }, + { + "path": "/app/admin", + "clickTime": null, + "measurementBoundary": null, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 783.5999999046326, + "routeChunkRequests": [ + { + "url": "http://127.0.0.1:38383/src/pages/AdminPage.tsx", + "startTime": 514.7000000476837, + "endTime": 542, + "duration": 27.299999952316284, + "transferSize": 394470, + "decodedBodySize": 394170 + } + ], + "longTasks": [ + { + "startTime": 315.7000000476837, + "duration": 124 + }, + { + "startTime": 680.3999998569489, + "duration": 71 + } + ], + "cls": 0.08245148326771094, + "layoutShifts": [ + { + "startTime": 764.3999998569489, + "value": 0.08245148326771094 + } + ], + "requestCount": 137, + "browserRequestCount": 163, + "externalRequestCount": 26, + "transferredBytes": 9075594, + "encodedBytes": 9034494, + "decodedBytes": 9034494, + "sourceWorkExcluded": null, + "navigationTiming": { + "domContentLoaded": 438.5, + "loadEventEnd": 572.8999998569489, + "responseEnd": 13 + }, + "shellDomIdentitySurvived": null, + "kind": "cold-refresh", + "label": "Cold /app/admin", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AdminPage" + }, + { + "path": "/app", + "clickTime": 849.0999999046326, + "measurementBoundary": 849.0999999046326, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 77.20000004768372, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 12, + "browserRequestCount": 13, + "externalRequestCount": 1, + "transferredBytes": 809259, + "encodedBytes": 805659, + "decodedBytes": 805659, + "sourceWorkExcluded": { + "requestCount": 137, + "longTaskCount": 2, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 403.7999999523163, + "loadEventEnd": 459.2000000476837, + "responseEnd": 13.200000047683716 + }, + "shellDomIdentitySurvived": null, + "kind": "first-visit-click", + "label": "Landing CTA -> /app", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "HomePage" + }, + { + "path": "/app", + "clickTime": 1331, + "measurementBoundary": 1331, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 33.69999980926514, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 10, + "externalRequestCount": 10, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 149, + "longTaskCount": 3, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 387.5, + "loadEventEnd": 448.69999980926514, + "responseEnd": 7.799999952316284 + }, + "shellDomIdentitySurvived": null, + "kind": "warm-click", + "label": "Landing CTA -> /app", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "HomePage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:38383/src/pages/HomePage.tsx", + "startTime": 921.8999998569489, + "responseEnd": 928.8999998569489, + "transferSize": 26673, + "encodedBodySize": 26373, + "decodedBodySize": 26373 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/generate", + "clickTime": 746.7000000476837, + "measurementBoundary": 746.7000000476837, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 271.39999985694885, + "routeChunkRequests": [], + "longTasks": [ + { + "startTime": 933.0999999046326, + "duration": 65 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 43, + "browserRequestCount": 45, + "externalRequestCount": 2, + "transferredBytes": 1574320, + "encodedBytes": 1561420, + "decodedBytes": 1561420, + "sourceWorkExcluded": { + "requestCount": 123, + "longTaskCount": 2, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 444.7999999523163, + "loadEventEnd": 598.7999999523163, + "responseEnd": 12.700000047683716 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> Generate", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "GeneratePage" + }, + { + "path": "/app/generate", + "clickTime": 1362.5999999046326, + "measurementBoundary": 1362.5999999046326, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 94.5, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 11, + "externalRequestCount": 11, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 166, + "longTaskCount": 3, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 427.2999999523163, + "loadEventEnd": 568.3999998569489, + "responseEnd": 9.899999856948853 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> Generate", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "GeneratePage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:38383/src/pages/GeneratePage.tsx", + "startTime": 718.0999999046326, + "responseEnd": 729.7000000476837, + "transferSize": 78506, + "encodedBodySize": 78206, + "decodedBodySize": 78206 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/attack", + "clickTime": 2014.2000000476837, + "measurementBoundary": 2014.2000000476837, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 164.39999985694885, + "routeChunkRequests": [], + "longTasks": [ + { + "startTime": 2122.5, + "duration": 51 + } + ], + "cls": 0, + "layoutShifts": [], + "requestCount": 7, + "browserRequestCount": 9, + "externalRequestCount": 2, + "transferredBytes": 188075, + "encodedBytes": 185975, + "decodedBytes": 185975, + "sourceWorkExcluded": { + "requestCount": 166, + "longTaskCount": 3, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 468.5, + "loadEventEnd": 530.7000000476837, + "responseEnd": 14.200000047683716 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Generate -> Attack", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "AttackPage" + }, + { + "path": "/app/attack", + "clickTime": 4691.299999952316, + "measurementBoundary": 4691.299999952316, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 77.5, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 2, + "externalRequestCount": 2, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 173, + "longTaskCount": 4, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 418.5, + "loadEventEnd": 476.2999999523163, + "responseEnd": 8.599999904632568 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Generate -> Attack", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "AttackPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:38383/src/pages/AttackPage.tsx", + "startTime": 1955.3999998569489, + "responseEnd": 1963.3999998569489, + "transferSize": 33746, + "encodedBodySize": 33446, + "decodedBodySize": 33446 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/flowchart", + "clickTime": 742.5999999046326, + "measurementBoundary": 742.5999999046326, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 173.10000014305115, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 10, + "browserRequestCount": 11, + "externalRequestCount": 1, + "transferredBytes": 593459, + "encodedBytes": 590459, + "decodedBytes": 590459, + "sourceWorkExcluded": { + "requestCount": 123, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 452.59999990463257, + "loadEventEnd": 597.8999998569489, + "responseEnd": 11.5 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> Flowchart", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "FlowchartPage" + }, + { + "path": "/app/flowchart", + "clickTime": 1223.5, + "measurementBoundary": 1223.5, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 56.200000047683716, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 133, + "longTaskCount": 2, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 459.10000014305115, + "loadEventEnd": 610.9000000953674, + "responseEnd": 13.100000143051147 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> Flowchart", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "FlowchartPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:38383/src/pages/FlowchartPage.tsx", + "startTime": 760.6000001430511, + "responseEnd": 770.7999999523163, + "transferSize": 205577, + "encodedBodySize": 205277, + "decodedBodySize": 205277 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + }, + { + "path": "/app/history", + "clickTime": 737.7999999523163, + "measurementBoundary": 737.7999999523163, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 120.5, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 9, + "browserRequestCount": 10, + "externalRequestCount": 1, + "transferredBytes": 113570, + "encodedBytes": 110870, + "decodedBytes": 110870, + "sourceWorkExcluded": { + "requestCount": 123, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 454, + "loadEventEnd": 513.5999999046326, + "responseEnd": 12.200000047683716 + }, + "shellDomIdentitySurvived": true, + "kind": "first-visit-click", + "label": "Home -> History", + "profile": "pixel-5", + "cacheState": "new context, browser cache empty", + "routeModule": "HistoryPage" + }, + { + "path": "/app/history", + "clickTime": 1177.5999999046326, + "measurementBoundary": 1177.5999999046326, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 28.40000009536743, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 0, + "browserRequestCount": 1, + "externalRequestCount": 1, + "transferredBytes": 0, + "encodedBytes": 0, + "decodedBytes": 0, + "sourceWorkExcluded": { + "requestCount": 132, + "longTaskCount": 1, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 447.59999990463257, + "loadEventEnd": 593.3999998569489, + "responseEnd": 11 + }, + "shellDomIdentitySurvived": true, + "kind": "warm-click", + "label": "Home -> History", + "profile": "pixel-5", + "cacheState": "same-document destination visit, same-document return, module cache warm", + "routeModule": "HistoryPage", + "warmCacheProof": { + "sameDocumentNavigation": true, + "destinationWarmRequest": { + "url": "http://127.0.0.1:38383/src/pages/HistoryPage.tsx", + "startTime": 751, + "responseEnd": 761.5999999046326, + "transferSize": 143448, + "encodedBodySize": 143148, + "decodedBodySize": 143148 + }, + "measuredDestinationRequestCount": 0, + "semantics": "destination module remained resolved across same-document return; measured click issued no destination request" + } + } + ], + "delayed": [ + { + "path": "/app/attack", + "clickTime": 1138.6000001430511, + "measurementBoundary": 1138.6000001430511, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 870.0999999046326, + "routeChunkRequests": [], + "longTasks": [ + { + "startTime": 1951.6000001430511, + "duration": 52 + } + ], + "cls": 0.01097265625, + "layoutShifts": [ + { + "startTime": 2008.4000000953674, + "value": 0.01097265625 + } + ], + "requestCount": 7, + "browserRequestCount": 19, + "externalRequestCount": 12, + "transferredBytes": 188075, + "encodedBytes": 185975, + "decodedBytes": 185975, + "sourceWorkExcluded": { + "requestCount": 166, + "longTaskCount": 2, + "layoutShiftCount": 1 + }, + "navigationTiming": { + "domContentLoaded": 467.60000014305115, + "loadEventEnd": 518, + "responseEnd": 13.600000143051147 + }, + "shellDomIdentitySurvived": true, + "kind": "delayed-click", + "label": "Delayed Generate -> Attack", + "profile": "desktop", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AttackPage", + "delayMs": 750, + "delayRequestObserved": true, + "frameStates": [ + { + "route": "/app/generate", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + } + ], + "video": "docs/performance/smooth-navigation-baseline/desktop-delayed.webm", + "filmstrip": "docs/performance/smooth-navigation-baseline/desktop-delayed-filmstrip.png" + }, + { + "path": "/app/attack", + "clickTime": 2445.7999999523163, + "measurementBoundary": 2445.7999999523163, + "firstSkeletonFrameMs": null, + "firstRealContentFrameMs": 864.2999999523163, + "routeChunkRequests": [], + "longTasks": [], + "cls": 0, + "layoutShifts": [], + "requestCount": 7, + "browserRequestCount": 20, + "externalRequestCount": 13, + "transferredBytes": 188075, + "encodedBytes": 185975, + "decodedBytes": 185975, + "sourceWorkExcluded": { + "requestCount": 166, + "longTaskCount": 2, + "layoutShiftCount": 0 + }, + "navigationTiming": { + "domContentLoaded": 464, + "loadEventEnd": 622.1999998092651, + "responseEnd": 12.799999952316284 + }, + "shellDomIdentitySurvived": true, + "kind": "delayed-click", + "label": "Delayed Generate -> Attack", + "profile": "pixel-5", + "cacheState": "new context, HTTP cache disabled, service workers blocked", + "routeModule": "AttackPage", + "delayMs": 750, + "delayRequestObserved": true, + "frameStates": [ + { + "route": "/app/generate", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/generate", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + }, + { + "route": "/app/attack", + "fallbackVisible": false, + "shellVisible": true + } + ], + "video": "docs/performance/smooth-navigation-baseline/pixel-5-delayed.webm", + "filmstrip": "docs/performance/smooth-navigation-baseline/pixel-5-delayed-filmstrip.png" + } + ], + "bundleGraph": { + "manifestEntries": [ + { + "key": "_FileSaver.min-DnytsR3g.js", + "file": "assets/FileSaver.min-DnytsR3g.js", + "name": "FileSaver.min", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "_ModelRestrictedModal-z3DTBALd.js", + "file": "assets/ModelRestrictedModal-z3DTBALd.js", + "name": "ModelRestrictedModal", + "imports": [ + "index.html", + "_client-BTq6F-PU.js", + "_triangle-alert-DSvIrkJI.js", + "_zap-EoS37zre.js", + "_PricingModal-CEXuD9Wb.js" + ] + }, + { + "key": "_ModelSelector-DslLRZjt.js", + "file": "assets/ModelSelector-DslLRZjt.js", + "name": "ModelSelector", + "imports": [ + "index.html", + "_badge--S7rRRa_.js", + "_use-subscription-C0XrPVqO.js" + ] + }, + { + "key": "_PricingModal-CEXuD9Wb.js", + "file": "assets/PricingModal-CEXuD9Wb.js", + "name": "PricingModal", + "imports": [ + "index.html", + "_input-CnrYjqwN.js", + "_badge--S7rRRa_.js", + "_edge-function-error-dlcwXP30.js", + "_crown-D4N948KJ.js", + "_zap-EoS37zre.js" + ] + }, + { + "key": "_alert-dialog-C83-hcvs.js", + "file": "assets/alert-dialog-C83-hcvs.js", + "name": "alert-dialog", + "imports": [ + "index.html" + ] + }, + { + "key": "_arrow-right-DgBYKnNo.js", + "file": "assets/arrow-right-DgBYKnNo.js", + "name": "arrow-right", + "imports": [ + "index.html" + ] + }, + { + "key": "_badge--S7rRRa_.js", + "file": "assets/badge--S7rRRa_.js", + "name": "badge", + "imports": [ + "index.html" + ] + }, + { + "key": "_bookmark-CkfTrWEp.js", + "file": "assets/bookmark-CkfTrWEp.js", + "name": "bookmark", + "imports": [ + "index.html" + ] + }, + { + "key": "_brain-Cd3j89BP.js", + "file": "assets/brain-Cd3j89BP.js", + "name": "brain", + "imports": [ + "index.html" + ] + }, + { + "key": "_card-D6eub4N8.js", + "file": "assets/card-D6eub4N8.js", + "name": "card", + "imports": [ + "index.html" + ] + }, + { + "key": "_checkbox-_MXGNjmt.js", + "file": "assets/checkbox-_MXGNjmt.js", + "name": "checkbox", + "imports": [ + "index.html" + ] + }, + { + "key": "_circle-alert-Chv9CSFv.js", + "file": "assets/circle-alert-Chv9CSFv.js", + "name": "circle-alert", + "imports": [ + "index.html" + ] + }, + { + "key": "_circle-help-57I9vNIu.js", + "file": "assets/circle-help-57I9vNIu.js", + "name": "circle-help", + "imports": [ + "index.html" + ] + }, + { + "key": "_client-BTq6F-PU.js", + "file": "assets/client-BTq6F-PU.js", + "name": "client", + "imports": [ + "index.html", + "_url-I6ZuTOfd.js" + ] + }, + { + "key": "_clock-3-DXL97kin.js", + "file": "assets/clock-3-DXL97kin.js", + "name": "clock-3", + "imports": [ + "index.html" + ] + }, + { + "key": "_copy-DjMDGCvS.js", + "file": "assets/copy-DjMDGCvS.js", + "name": "copy", + "imports": [ + "index.html" + ] + }, + { + "key": "_credit-card-vZ_cZe0e.js", + "file": "assets/credit-card-vZ_cZe0e.js", + "name": "credit-card", + "imports": [ + "index.html" + ] + }, + { + "key": "_crown-D4N948KJ.js", + "file": "assets/crown-D4N948KJ.js", + "name": "crown", + "imports": [ + "index.html" + ] + }, + { + "key": "_date-format-CfassM9h.js", + "file": "assets/date-format-CfassM9h.js", + "name": "date-format" + }, + { + "key": "_download-Buou6_Ok.js", + "file": "assets/download-Buou6_Ok.js", + "name": "download", + "imports": [ + "index.html" + ] + }, + { + "key": "_edge-function-error-dlcwXP30.js", + "file": "assets/edge-function-error-dlcwXP30.js", + "name": "edge-function-error" + }, + { + "key": "_empty-state-DVcmbEo7.js", + "file": "assets/empty-state-DVcmbEo7.js", + "name": "empty-state", + "imports": [ + "index.html" + ] + }, + { + "key": "_error-display-DrChSMbz.js", + "file": "assets/error-display-DrChSMbz.js", + "name": "error-display", + "imports": [ + "_client-BTq6F-PU.js" + ] + }, + { + "key": "_external-link-Dqt0ymKS.js", + "file": "assets/external-link-Dqt0ymKS.js", + "name": "external-link", + "imports": [ + "index.html" + ] + }, + { + "key": "_file-text-DcHyYoya.js", + "file": "assets/file-text-DcHyYoya.js", + "name": "file-text", + "imports": [ + "index.html" + ] + }, + { + "key": "_flame-D57LyGTP.js", + "file": "assets/flame-D57LyGTP.js", + "name": "flame", + "imports": [ + "index.html" + ] + }, + { + "key": "_generateCategoricalChart-CN74Z58N.js", + "file": "assets/generateCategoricalChart-CN74Z58N.js", + "name": "generateCategoricalChart", + "imports": [ + "index.html", + "_string-cKWu9XK9.js" + ] + }, + { + "key": "_index-D0At4Kou.js", + "file": "assets/index-D0At4Kou.js", + "name": "index", + "imports": [ + "index.html", + "_string-cKWu9XK9.js" + ] + }, + { + "key": "_index-DFp_HAie.js", + "file": "assets/index-DFp_HAie.js", + "name": "index", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "_input-CnrYjqwN.js", + "file": "assets/input-CnrYjqwN.js", + "name": "input", + "imports": [ + "index.html" + ] + }, + { + "key": "_jspdf.es.min-D0mWSedx.js", + "file": "assets/jspdf.es.min-D0mWSedx.js", + "name": "jspdf.es.min", + "isDynamicEntry": true, + "imports": [ + "index.html" + ], + "dynamicImports": [ + "node_modules/html2canvas/dist/html2canvas.esm.js", + "node_modules/dompurify/dist/purify.es.mjs", + "node_modules/canvg/lib/index.es.js" + ] + }, + { + "key": "_markdown-D7H1fUC4.js", + "file": "assets/markdown-D7H1fUC4.js", + "name": "markdown", + "imports": [ + "index.html" + ] + }, + { + "key": "_plus-DRncpdwv.js", + "file": "assets/plus-DRncpdwv.js", + "name": "plus", + "imports": [ + "index.html" + ] + }, + { + "key": "_prefill-CVrpA-lu.js", + "file": "assets/prefill-CVrpA-lu.js", + "name": "prefill", + "imports": [ + "index.html" + ] + }, + { + "key": "_progress-BxcfcTfE.js", + "file": "assets/progress-BxcfcTfE.js", + "name": "progress", + "imports": [ + "index.html" + ] + }, + { + "key": "_proxy-CvwFFBBn.js", + "file": "assets/proxy-CvwFFBBn.js", + "name": "proxy", + "imports": [ + "index.html", + "_use-reduced-motion-zRDnn0Fz.js" + ] + }, + { + "key": "_refresh-cw-CrWzIDvX.js", + "file": "assets/refresh-cw-CrWzIDvX.js", + "name": "refresh-cw", + "imports": [ + "index.html" + ] + }, + { + "key": "_rotate-ccw-BuOm1Tl2.js", + "file": "assets/rotate-ccw-BuOm1Tl2.js", + "name": "rotate-ccw", + "imports": [ + "index.html" + ] + }, + { + "key": "_save-Dk4dYhHU.js", + "file": "assets/save-Dk4dYhHU.js", + "name": "save", + "imports": [ + "index.html" + ] + }, + { + "key": "_scroll-area-BR8Yasj-.js", + "file": "assets/scroll-area-BR8Yasj-.js", + "name": "scroll-area", + "imports": [ + "index.html" + ] + }, + { + "key": "_search-BZV0xrgm.js", + "file": "assets/search-BZV0xrgm.js", + "name": "search", + "imports": [ + "index.html" + ] + }, + { + "key": "_send-BdjSbyuU.js", + "file": "assets/send-BdjSbyuU.js", + "name": "send", + "imports": [ + "index.html" + ] + }, + { + "key": "_sheet-CPaIXg5N.js", + "file": "assets/sheet-CPaIXg5N.js", + "name": "sheet", + "imports": [ + "index.html" + ] + }, + { + "key": "_shield-1K71PF3Z.js", + "file": "assets/shield-1K71PF3Z.js", + "name": "shield", + "imports": [ + "index.html" + ] + }, + { + "key": "_shield-check-M0zqP7PB.js", + "file": "assets/shield-check-M0zqP7PB.js", + "name": "shield-check", + "imports": [ + "index.html" + ] + }, + { + "key": "_streaming-indicator-DhYSWhCP.js", + "file": "assets/streaming-indicator-DhYSWhCP.js", + "name": "streaming-indicator", + "imports": [ + "index.html", + "_card-D6eub4N8.js", + "_refresh-cw-CrWzIDvX.js", + "_file-text-DcHyYoya.js", + "_external-link-Dqt0ymKS.js", + "_badge--S7rRRa_.js" + ] + }, + { + "key": "_string-cKWu9XK9.js", + "file": "assets/string-cKWu9XK9.js", + "name": "string" + }, + { + "key": "_switch-Dd8KWBFh.js", + "file": "assets/switch-Dd8KWBFh.js", + "name": "switch", + "imports": [ + "index.html" + ] + }, + { + "key": "_tabs-mlEhuh6x.js", + "file": "assets/tabs-mlEhuh6x.js", + "name": "tabs", + "imports": [ + "index.html" + ] + }, + { + "key": "_target-DKppQCPt.js", + "file": "assets/target-DKppQCPt.js", + "name": "target", + "imports": [ + "index.html" + ] + }, + { + "key": "_textarea-g0WOpBON.js", + "file": "assets/textarea-g0WOpBON.js", + "name": "textarea", + "imports": [ + "index.html" + ] + }, + { + "key": "_trash-2-DyFY_1qQ.js", + "file": "assets/trash-2-DyFY_1qQ.js", + "name": "trash-2", + "imports": [ + "index.html" + ] + }, + { + "key": "_triangle-alert-DSvIrkJI.js", + "file": "assets/triangle-alert-DSvIrkJI.js", + "name": "triangle-alert", + "imports": [ + "index.html" + ] + }, + { + "key": "_url-I6ZuTOfd.js", + "file": "assets/url-I6ZuTOfd.js", + "name": "url", + "imports": [ + "index.html" + ] + }, + { + "key": "_use-reduced-motion-zRDnn0Fz.js", + "file": "assets/use-reduced-motion-zRDnn0Fz.js", + "name": "use-reduced-motion", + "imports": [ + "index.html" + ] + }, + { + "key": "_use-speech-to-text-BG2bMqig.js", + "file": "assets/use-speech-to-text-BG2bMqig.js", + "name": "use-speech-to-text", + "imports": [ + "index.html" + ] + }, + { + "key": "_use-subscription-C0XrPVqO.js", + "file": "assets/use-subscription-C0XrPVqO.js", + "name": "use-subscription", + "imports": [ + "index.html" + ] + }, + { + "key": "_users-Dw3Op9EO.js", + "file": "assets/users-Dw3Op9EO.js", + "name": "users", + "imports": [ + "index.html" + ] + }, + { + "key": "_zap-EoS37zre.js", + "file": "assets/zap-EoS37zre.js", + "name": "zap", + "imports": [ + "index.html" + ] + }, + { + "key": "index.html", + "file": "assets/index-D4jHDNYl.js", + "name": "index", + "src": "index.html", + "isEntry": true, + "isDynamicEntry": true, + "dynamicImports": [ + "src/pages/LandingPage.tsx", + "src/pages/TermsPage.tsx", + "src/pages/PrivacyPage.tsx", + "src/pages/SourcesPage.tsx", + "src/pages/LoginPage.tsx", + "src/pages/SharedPage.tsx", + "src/pages/HomePage.tsx", + "src/pages/GeneratePage.tsx", + "src/pages/AttackPage.tsx", + "src/pages/BrainstormPage.tsx", + "src/pages/FactoidsPage.tsx", + "src/pages/AskPage.tsx", + "src/pages/CrossfirePage.tsx", + "src/pages/HistoryPage.tsx", + "src/pages/LibraryPage.tsx", + "src/pages/TimerPage.tsx", + "src/pages/SparringPage.tsx", + "src/pages/FlowchartPage.tsx", + "src/pages/SettingsPage.tsx", + "src/pages/AdminPage.tsx", + "src/pages/NotFound.tsx", + "node_modules/@capacitor/browser/dist/esm/web.js", + "node_modules/@vercel/analytics/dist/react/index.mjs", + "node_modules/@vercel/speed-insights/dist/react/index.mjs", + "node_modules/@capacitor/app/dist/esm/web.js", + "node_modules/@capacitor/haptics/dist/esm/web.js" + ], + "css": [ + "assets/index-CQh0Qbtd.css" + ] + }, + { + "key": "node_modules/@capacitor/app/dist/esm/web.js", + "file": "assets/web-DDWreN7n.js", + "name": "web", + "src": "node_modules/@capacitor/app/dist/esm/web.js", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/@capacitor/browser/dist/esm/web.js", + "file": "assets/web-DlhCIZla.js", + "name": "web", + "src": "node_modules/@capacitor/browser/dist/esm/web.js", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/@capacitor/haptics/dist/esm/web.js", + "file": "assets/web-CxvXmWEI.js", + "name": "web", + "src": "node_modules/@capacitor/haptics/dist/esm/web.js", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/@vercel/analytics/dist/react/index.mjs", + "file": "assets/index-fTGozHfm.js", + "name": "index", + "src": "node_modules/@vercel/analytics/dist/react/index.mjs", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/@vercel/speed-insights/dist/react/index.mjs", + "file": "assets/index-wJ0rgeqX.js", + "name": "index", + "src": "node_modules/@vercel/speed-insights/dist/react/index.mjs", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "node_modules/canvg/lib/index.es.js", + "file": "assets/index.es-_A4ItKWd.js", + "name": "index.es", + "src": "node_modules/canvg/lib/index.es.js", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_jspdf.es.min-D0mWSedx.js" + ] + }, + { + "key": "node_modules/docx/dist/index.mjs", + "file": "assets/index-BOF6v8rb.js", + "name": "index", + "src": "node_modules/docx/dist/index.mjs", + "isDynamicEntry": true + }, + { + "key": "node_modules/dompurify/dist/purify.es.mjs", + "file": "assets/purify.es-4eNOHKSq.js", + "name": "purify.es", + "src": "node_modules/dompurify/dist/purify.es.mjs", + "isDynamicEntry": true + }, + { + "key": "node_modules/html2canvas/dist/html2canvas.esm.js", + "file": "assets/html2canvas.esm-DXEQVQnt.js", + "name": "html2canvas.esm", + "src": "node_modules/html2canvas/dist/html2canvas.esm.js", + "isDynamicEntry": true + }, + { + "key": "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs", + "file": "assets/jspdf.plugin.autotable-BBLUVd7n.js", + "name": "jspdf.plugin.autotable", + "src": "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs", + "isDynamicEntry": true + }, + { + "key": "node_modules/pdfjs-dist/legacy/build/pdf.mjs", + "file": "assets/pdf-ClZ_1Nv1.js", + "name": "pdf", + "src": "node_modules/pdfjs-dist/legacy/build/pdf.mjs", + "isDynamicEntry": true + }, + { + "key": "node_modules/pdfjs-dist/legacy/build/pdf.worker.mjs", + "file": "assets/pdf.worker-DTrjDNvb.mjs", + "src": "node_modules/pdfjs-dist/legacy/build/pdf.worker.mjs" + }, + { + "key": "src/lib/export-utils.ts", + "file": "assets/export-utils-dKtA7aoI.js", + "name": "export-utils", + "src": "src/lib/export-utils.ts", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_date-format-CfassM9h.js" + ], + "dynamicImports": [ + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-DnytsR3g.js", + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-DnytsR3g.js", + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-DnytsR3g.js", + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-DnytsR3g.js", + "index.html", + "node_modules/docx/dist/index.mjs", + "_FileSaver.min-DnytsR3g.js" + ] + }, + { + "key": "src/lib/pdf-export-utils.ts", + "file": "assets/pdf-export-utils-DYKMwf6W.js", + "name": "pdf-export-utils", + "src": "src/lib/pdf-export-utils.ts", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_date-format-CfassM9h.js" + ], + "dynamicImports": [ + "_jspdf.es.min-D0mWSedx.js", + "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs" + ] + }, + { + "key": "src/pages/AdminPage.tsx", + "file": "assets/AdminPage-B43vuwcQ.js", + "name": "AdminPage", + "src": "src/pages/AdminPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-D6eub4N8.js", + "_input-CnrYjqwN.js", + "_badge--S7rRRa_.js", + "_tabs-mlEhuh6x.js", + "_scroll-area-BR8Yasj-.js", + "_date-format-CfassM9h.js", + "_checkbox-_MXGNjmt.js", + "_textarea-g0WOpBON.js", + "_alert-dialog-C83-hcvs.js", + "_search-BZV0xrgm.js", + "_trash-2-DyFY_1qQ.js", + "_shield-1K71PF3Z.js", + "_circle-alert-Chv9CSFv.js", + "_users-Dw3Op9EO.js", + "_credit-card-vZ_cZe0e.js", + "_generateCategoricalChart-CN74Z58N.js", + "_copy-DjMDGCvS.js", + "_rotate-ccw-BuOm1Tl2.js", + "_string-cKWu9XK9.js" + ] + }, + { + "key": "src/pages/AskPage.tsx", + "file": "assets/AskPage-D6Yq65Hk.js", + "name": "AskPage", + "src": "src/pages/AskPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_input-CnrYjqwN.js", + "_markdown-D7H1fUC4.js", + "_card-D6eub4N8.js", + "_switch-Dd8KWBFh.js", + "_scroll-area-BR8Yasj-.js", + "_use-speech-to-text-BG2bMqig.js", + "_date-format-CfassM9h.js", + "_ModelSelector-DslLRZjt.js", + "_sheet-CPaIXg5N.js", + "_use-reduced-motion-zRDnn0Fz.js", + "_save-Dk4dYhHU.js", + "_rotate-ccw-BuOm1Tl2.js", + "_circle-help-57I9vNIu.js", + "_search-BZV0xrgm.js", + "_send-BdjSbyuU.js", + "_bookmark-CkfTrWEp.js", + "_client-BTq6F-PU.js", + "_ModelRestrictedModal-z3DTBALd.js", + "_error-display-DrChSMbz.js", + "_PricingModal-CEXuD9Wb.js", + "_badge--S7rRRa_.js", + "_use-subscription-C0XrPVqO.js", + "_url-I6ZuTOfd.js", + "_triangle-alert-DSvIrkJI.js", + "_zap-EoS37zre.js", + "_edge-function-error-dlcwXP30.js", + "_crown-D4N948KJ.js" + ] + }, + { + "key": "src/pages/AttackPage.tsx", + "file": "assets/AttackPage-DT2nJloh.js", + "name": "AttackPage", + "src": "src/pages/AttackPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_streaming-indicator-DhYSWhCP.js", + "_textarea-g0WOpBON.js", + "_switch-Dd8KWBFh.js", + "_card-D6eub4N8.js", + "_client-BTq6F-PU.js", + "_ModelSelector-DslLRZjt.js", + "_prefill-CVrpA-lu.js", + "_search-BZV0xrgm.js", + "_badge--S7rRRa_.js", + "_progress-BxcfcTfE.js", + "_markdown-D7H1fUC4.js", + "_ModelRestrictedModal-z3DTBALd.js", + "_flame-D57LyGTP.js", + "_circle-alert-Chv9CSFv.js", + "_refresh-cw-CrWzIDvX.js", + "_triangle-alert-DSvIrkJI.js", + "_error-display-DrChSMbz.js", + "_PricingModal-CEXuD9Wb.js", + "_file-text-DcHyYoya.js", + "_external-link-Dqt0ymKS.js", + "_url-I6ZuTOfd.js", + "_use-subscription-C0XrPVqO.js", + "_zap-EoS37zre.js", + "_input-CnrYjqwN.js", + "_edge-function-error-dlcwXP30.js", + "_crown-D4N948KJ.js" + ], + "dynamicImports": [ + "src/lib/pdf-export-utils.ts", + "src/lib/export-utils.ts", + "src/lib/export-utils.ts" + ] + }, + { + "key": "src/pages/BrainstormPage.tsx", + "file": "assets/BrainstormPage-CGeKGOlQ.js", + "name": "BrainstormPage", + "src": "src/pages/BrainstormPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_streaming-indicator-DhYSWhCP.js", + "_input-CnrYjqwN.js", + "_textarea-g0WOpBON.js", + "_card-D6eub4N8.js", + "_ModelSelector-DslLRZjt.js", + "_brain-Cd3j89BP.js", + "_badge--S7rRRa_.js", + "_ModelRestrictedModal-z3DTBALd.js", + "_empty-state-DVcmbEo7.js", + "_triangle-alert-DSvIrkJI.js", + "_arrow-right-DgBYKnNo.js", + "_client-BTq6F-PU.js", + "_error-display-DrChSMbz.js", + "_PricingModal-CEXuD9Wb.js", + "_refresh-cw-CrWzIDvX.js", + "_file-text-DcHyYoya.js", + "_external-link-Dqt0ymKS.js", + "_use-subscription-C0XrPVqO.js", + "_zap-EoS37zre.js", + "_url-I6ZuTOfd.js", + "_edge-function-error-dlcwXP30.js", + "_crown-D4N948KJ.js" + ], + "dynamicImports": [ + "src/lib/export-utils.ts", + "src/lib/export-utils.ts", + "src/lib/pdf-export-utils.ts" + ] + }, + { + "key": "src/pages/CrossfirePage.tsx", + "file": "assets/CrossfirePage-BLkJIzx7.js", + "name": "CrossfirePage", + "src": "src/pages/CrossfirePage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_badge--S7rRRa_.js", + "_card-D6eub4N8.js", + "_checkbox-_MXGNjmt.js", + "_textarea-g0WOpBON.js", + "_client-BTq6F-PU.js", + "_error-display-DrChSMbz.js", + "_use-reduced-motion-zRDnn0Fz.js", + "_flame-D57LyGTP.js", + "_circle-alert-Chv9CSFv.js", + "_refresh-cw-CrWzIDvX.js", + "_clock-3-DXL97kin.js", + "_send-BdjSbyuU.js", + "_rotate-ccw-BuOm1Tl2.js", + "_shield-check-M0zqP7PB.js", + "_proxy-CvwFFBBn.js", + "_url-I6ZuTOfd.js" + ] + }, + { + "key": "src/pages/FactoidsPage.tsx", + "file": "assets/FactoidsPage-D19RrI8e.js", + "name": "FactoidsPage", + "src": "src/pages/FactoidsPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_streaming-indicator-DhYSWhCP.js", + "_input-CnrYjqwN.js", + "_card-D6eub4N8.js", + "_client-BTq6F-PU.js", + "_ModelSelector-DslLRZjt.js", + "_search-BZV0xrgm.js", + "_badge--S7rRRa_.js", + "_progress-BxcfcTfE.js", + "_ModelRestrictedModal-z3DTBALd.js", + "_triangle-alert-DSvIrkJI.js", + "_external-link-Dqt0ymKS.js", + "_bookmark-CkfTrWEp.js", + "_error-display-DrChSMbz.js", + "_PricingModal-CEXuD9Wb.js", + "_refresh-cw-CrWzIDvX.js", + "_file-text-DcHyYoya.js", + "_url-I6ZuTOfd.js", + "_use-subscription-C0XrPVqO.js", + "_zap-EoS37zre.js", + "_edge-function-error-dlcwXP30.js", + "_crown-D4N948KJ.js" + ], + "dynamicImports": [ + "src/lib/export-utils.ts", + "src/lib/export-utils.ts", + "src/lib/pdf-export-utils.ts" + ] + }, + { + "key": "src/pages/FlowchartPage.tsx", + "file": "assets/FlowchartPage-DSdPyTg-.js", + "name": "FlowchartPage", + "src": "src/pages/FlowchartPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-D6eub4N8.js", + "_badge--S7rRRa_.js", + "_input-CnrYjqwN.js", + "_textarea-g0WOpBON.js", + "_alert-dialog-C83-hcvs.js", + "_index-D0At4Kou.js", + "_trash-2-DyFY_1qQ.js", + "_save-Dk4dYhHU.js", + "_plus-DRncpdwv.js", + "_download-Buou6_Ok.js", + "_target-DKppQCPt.js", + "_shield-1K71PF3Z.js", + "_triangle-alert-DSvIrkJI.js", + "_string-cKWu9XK9.js" + ], + "css": [ + "assets/FlowchartPage-Fd0xVSp_.css" + ] + }, + { + "key": "src/pages/GeneratePage.tsx", + "file": "assets/GeneratePage-CdUz2-w9.js", + "name": "GeneratePage", + "src": "src/pages/GeneratePage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_streaming-indicator-DhYSWhCP.js", + "_input-CnrYjqwN.js", + "_card-D6eub4N8.js", + "_client-BTq6F-PU.js", + "_use-speech-to-text-BG2bMqig.js", + "_ModelSelector-DslLRZjt.js", + "_prefill-CVrpA-lu.js", + "_badge--S7rRRa_.js", + "_markdown-D7H1fUC4.js", + "_ModelRestrictedModal-z3DTBALd.js", + "_date-format-CfassM9h.js", + "_flame-D57LyGTP.js", + "_save-Dk4dYhHU.js", + "_refresh-cw-CrWzIDvX.js", + "_target-DKppQCPt.js", + "_shield-1K71PF3Z.js", + "_triangle-alert-DSvIrkJI.js", + "_error-display-DrChSMbz.js", + "_PricingModal-CEXuD9Wb.js", + "_use-reduced-motion-zRDnn0Fz.js", + "_index-D0At4Kou.js", + "_file-text-DcHyYoya.js", + "_external-link-Dqt0ymKS.js", + "_url-I6ZuTOfd.js", + "_use-subscription-C0XrPVqO.js", + "_zap-EoS37zre.js", + "_edge-function-error-dlcwXP30.js", + "_crown-D4N948KJ.js", + "_string-cKWu9XK9.js" + ], + "dynamicImports": [ + "src/lib/export-utils.ts", + "src/lib/pdf-export-utils.ts", + "src/lib/export-utils.ts" + ] + }, + { + "key": "src/pages/HistoryPage.tsx", + "file": "assets/HistoryPage-CoLxEj_o.js", + "name": "HistoryPage", + "src": "src/pages/HistoryPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-D6eub4N8.js", + "_tabs-mlEhuh6x.js", + "_badge--S7rRRa_.js", + "_scroll-area-BR8Yasj-.js", + "_date-format-CfassM9h.js", + "_alert-dialog-C83-hcvs.js", + "_empty-state-DVcmbEo7.js", + "_file-text-DcHyYoya.js", + "_zap-EoS37zre.js", + "_brain-Cd3j89BP.js", + "_trash-2-DyFY_1qQ.js" + ] + }, + { + "key": "src/pages/HomePage.tsx", + "file": "assets/HomePage-DrVRFPs0.js", + "name": "HomePage", + "src": "src/pages/HomePage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-D6eub4N8.js", + "_arrow-right-DgBYKnNo.js" + ] + }, + { + "key": "src/pages/LandingPage.tsx", + "file": "assets/LandingPage-Cb7ljqwH.js", + "name": "LandingPage", + "src": "src/pages/LandingPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_use-reduced-motion-zRDnn0Fz.js", + "_proxy-CvwFFBBn.js", + "_arrow-right-DgBYKnNo.js", + "_crown-D4N948KJ.js", + "_zap-EoS37zre.js", + "_brain-Cd3j89BP.js", + "_search-BZV0xrgm.js", + "_users-Dw3Op9EO.js" + ] + }, + { + "key": "src/pages/LibraryPage.tsx", + "file": "assets/LibraryPage-CBLdkjpo.js", + "name": "LibraryPage", + "src": "src/pages/LibraryPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-D6eub4N8.js", + "_input-CnrYjqwN.js", + "_textarea-g0WOpBON.js", + "_badge--S7rRRa_.js", + "_switch-Dd8KWBFh.js", + "_date-format-CfassM9h.js", + "_url-I6ZuTOfd.js", + "_edge-function-error-dlcwXP30.js", + "_alert-dialog-C83-hcvs.js", + "_sheet-CPaIXg5N.js", + "_plus-DRncpdwv.js", + "_trash-2-DyFY_1qQ.js", + "_search-BZV0xrgm.js", + "_shield-check-M0zqP7PB.js", + "_file-text-DcHyYoya.js", + "_copy-DjMDGCvS.js", + "_save-Dk4dYhHU.js", + "_external-link-Dqt0ymKS.js" + ], + "dynamicImports": [ + "_index-DFp_HAie.js", + "node_modules/pdfjs-dist/legacy/build/pdf.mjs" + ], + "assets": [ + "assets/pdf.worker-DTrjDNvb.mjs" + ] + }, + { + "key": "src/pages/LoginPage.tsx", + "file": "assets/LoginPage-C8SChovI.js", + "name": "LoginPage", + "src": "src/pages/LoginPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-D6eub4N8.js", + "_input-CnrYjqwN.js", + "_tabs-mlEhuh6x.js" + ] + }, + { + "key": "src/pages/NotFound.tsx", + "file": "assets/NotFound-DbKaJf8M.js", + "name": "NotFound", + "src": "src/pages/NotFound.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "src/pages/PrivacyPage.tsx", + "file": "assets/PrivacyPage-Cp-qrvE_.js", + "name": "PrivacyPage", + "src": "src/pages/PrivacyPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "src/pages/SettingsPage.tsx", + "file": "assets/SettingsPage-Du1uLT74.js", + "name": "SettingsPage", + "src": "src/pages/SettingsPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-D6eub4N8.js", + "_badge--S7rRRa_.js", + "_use-subscription-C0XrPVqO.js", + "_PricingModal-CEXuD9Wb.js", + "_date-format-CfassM9h.js", + "_input-CnrYjqwN.js", + "_crown-D4N948KJ.js", + "_credit-card-vZ_cZe0e.js", + "_zap-EoS37zre.js", + "_shield-1K71PF3Z.js", + "_trash-2-DyFY_1qQ.js", + "_edge-function-error-dlcwXP30.js" + ] + }, + { + "key": "src/pages/SharedPage.tsx", + "file": "assets/SharedPage-Cf0DuX9D.js", + "name": "SharedPage", + "src": "src/pages/SharedPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-D6eub4N8.js", + "_badge--S7rRRa_.js", + "_date-format-CfassM9h.js", + "_download-Buou6_Ok.js", + "_external-link-Dqt0ymKS.js" + ] + }, + { + "key": "src/pages/SourcesPage.tsx", + "file": "assets/SourcesPage-B7rI1xha.js", + "name": "SourcesPage", + "src": "src/pages/SourcesPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "src/pages/SparringPage.tsx", + "file": "assets/SparringPage-D3QwuaQ_.js", + "name": "SparringPage", + "src": "src/pages/SparringPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_client-BTq6F-PU.js", + "_card-D6eub4N8.js", + "_textarea-g0WOpBON.js", + "_badge--S7rRRa_.js", + "_ModelSelector-DslLRZjt.js", + "_arrow-right-DgBYKnNo.js", + "_progress-BxcfcTfE.js", + "_markdown-D7H1fUC4.js", + "_clock-3-DXL97kin.js", + "_rotate-ccw-BuOm1Tl2.js", + "_circle-alert-Chv9CSFv.js", + "_send-BdjSbyuU.js", + "_download-Buou6_Ok.js", + "_generateCategoricalChart-CN74Z58N.js", + "_target-DKppQCPt.js", + "_file-text-DcHyYoya.js", + "_circle-help-57I9vNIu.js", + "_url-I6ZuTOfd.js", + "_use-subscription-C0XrPVqO.js", + "_string-cKWu9XK9.js" + ], + "dynamicImports": [ + "src/lib/export-utils.ts", + "src/lib/pdf-export-utils.ts" + ] + }, + { + "key": "src/pages/TermsPage.tsx", + "file": "assets/TermsPage-E7aA4MSt.js", + "name": "TermsPage", + "src": "src/pages/TermsPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html" + ] + }, + { + "key": "src/pages/TimerPage.tsx", + "file": "assets/TimerPage-NP1HeKRl.js", + "name": "TimerPage", + "src": "src/pages/TimerPage.tsx", + "isDynamicEntry": true, + "imports": [ + "index.html", + "_card-D6eub4N8.js", + "_badge--S7rRRa_.js", + "_progress-BxcfcTfE.js", + "_rotate-ccw-BuOm1Tl2.js" + ] + } + ], + "routeStaticGraphs": [ + { + "route": "index.html", + "file": "assets/index-D4jHDNYl.js", + "files": [ + "assets/index-D4jHDNYl.js" + ] + }, + { + "route": "/", + "file": "assets/LandingPage-Cb7ljqwH.js", + "files": [ + "assets/LandingPage-Cb7ljqwH.js", + "assets/users-Dw3Op9EO.js", + "assets/index-D4jHDNYl.js", + "assets/search-BZV0xrgm.js", + "assets/brain-Cd3j89BP.js", + "assets/zap-EoS37zre.js", + "assets/crown-D4N948KJ.js", + "assets/arrow-right-DgBYKnNo.js", + "assets/proxy-CvwFFBBn.js", + "assets/use-reduced-motion-zRDnn0Fz.js" + ] + }, + { + "route": "/login", + "file": "assets/LoginPage-C8SChovI.js", + "files": [ + "assets/LoginPage-C8SChovI.js", + "assets/tabs-mlEhuh6x.js", + "assets/index-D4jHDNYl.js", + "assets/input-CnrYjqwN.js", + "assets/card-D6eub4N8.js" + ] + }, + { + "route": "/app", + "file": "assets/HomePage-DrVRFPs0.js", + "files": [ + "assets/HomePage-DrVRFPs0.js", + "assets/arrow-right-DgBYKnNo.js", + "assets/index-D4jHDNYl.js", + "assets/card-D6eub4N8.js" + ] + }, + { + "route": "/app/generate", + "file": "assets/GeneratePage-CdUz2-w9.js", + "files": [ + "assets/GeneratePage-CdUz2-w9.js", + "assets/string-cKWu9XK9.js", + "assets/crown-D4N948KJ.js", + "assets/index-D4jHDNYl.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/zap-EoS37zre.js", + "assets/use-subscription-C0XrPVqO.js", + "assets/url-I6ZuTOfd.js", + "assets/external-link-Dqt0ymKS.js", + "assets/file-text-DcHyYoya.js", + "assets/index-D0At4Kou.js", + "assets/use-reduced-motion-zRDnn0Fz.js", + "assets/PricingModal-CEXuD9Wb.js", + "assets/badge--S7rRRa_.js", + "assets/input-CnrYjqwN.js", + "assets/error-display-DrChSMbz.js", + "assets/client-BTq6F-PU.js", + "assets/triangle-alert-DSvIrkJI.js", + "assets/shield-1K71PF3Z.js", + "assets/target-DKppQCPt.js", + "assets/refresh-cw-CrWzIDvX.js", + "assets/save-Dk4dYhHU.js", + "assets/flame-D57LyGTP.js", + "assets/date-format-CfassM9h.js", + "assets/ModelRestrictedModal-z3DTBALd.js", + "assets/markdown-D7H1fUC4.js", + "assets/prefill-CVrpA-lu.js", + "assets/ModelSelector-DslLRZjt.js", + "assets/use-speech-to-text-BG2bMqig.js", + "assets/card-D6eub4N8.js", + "assets/streaming-indicator-DhYSWhCP.js" + ] + }, + { + "route": "/app/attack", + "file": "assets/AttackPage-DT2nJloh.js", + "files": [ + "assets/AttackPage-DT2nJloh.js", + "assets/crown-D4N948KJ.js", + "assets/index-D4jHDNYl.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/input-CnrYjqwN.js", + "assets/zap-EoS37zre.js", + "assets/use-subscription-C0XrPVqO.js", + "assets/url-I6ZuTOfd.js", + "assets/external-link-Dqt0ymKS.js", + "assets/file-text-DcHyYoya.js", + "assets/PricingModal-CEXuD9Wb.js", + "assets/badge--S7rRRa_.js", + "assets/error-display-DrChSMbz.js", + "assets/client-BTq6F-PU.js", + "assets/triangle-alert-DSvIrkJI.js", + "assets/refresh-cw-CrWzIDvX.js", + "assets/circle-alert-Chv9CSFv.js", + "assets/flame-D57LyGTP.js", + "assets/ModelRestrictedModal-z3DTBALd.js", + "assets/markdown-D7H1fUC4.js", + "assets/progress-BxcfcTfE.js", + "assets/search-BZV0xrgm.js", + "assets/prefill-CVrpA-lu.js", + "assets/ModelSelector-DslLRZjt.js", + "assets/card-D6eub4N8.js", + "assets/switch-Dd8KWBFh.js", + "assets/textarea-g0WOpBON.js", + "assets/streaming-indicator-DhYSWhCP.js" + ] + }, + { + "route": "/app/flowchart", + "file": "assets/FlowchartPage-DSdPyTg-.js", + "files": [ + "assets/FlowchartPage-DSdPyTg-.js", + "assets/string-cKWu9XK9.js", + "assets/triangle-alert-DSvIrkJI.js", + "assets/index-D4jHDNYl.js", + "assets/shield-1K71PF3Z.js", + "assets/target-DKppQCPt.js", + "assets/download-Buou6_Ok.js", + "assets/plus-DRncpdwv.js", + "assets/save-Dk4dYhHU.js", + "assets/trash-2-DyFY_1qQ.js", + "assets/index-D0At4Kou.js", + "assets/alert-dialog-C83-hcvs.js", + "assets/textarea-g0WOpBON.js", + "assets/input-CnrYjqwN.js", + "assets/badge--S7rRRa_.js", + "assets/card-D6eub4N8.js" + ] + }, + { + "route": "/app/history", + "file": "assets/HistoryPage-CoLxEj_o.js", + "files": [ + "assets/HistoryPage-CoLxEj_o.js", + "assets/trash-2-DyFY_1qQ.js", + "assets/index-D4jHDNYl.js", + "assets/brain-Cd3j89BP.js", + "assets/zap-EoS37zre.js", + "assets/file-text-DcHyYoya.js", + "assets/empty-state-DVcmbEo7.js", + "assets/alert-dialog-C83-hcvs.js", + "assets/date-format-CfassM9h.js", + "assets/scroll-area-BR8Yasj-.js", + "assets/badge--S7rRRa_.js", + "assets/tabs-mlEhuh6x.js", + "assets/card-D6eub4N8.js" + ] + }, + { + "route": "/app/admin", + "file": "assets/AdminPage-B43vuwcQ.js", + "files": [ + "assets/AdminPage-B43vuwcQ.js", + "assets/string-cKWu9XK9.js", + "assets/rotate-ccw-BuOm1Tl2.js", + "assets/index-D4jHDNYl.js", + "assets/copy-DjMDGCvS.js", + "assets/generateCategoricalChart-CN74Z58N.js", + "assets/credit-card-vZ_cZe0e.js", + "assets/users-Dw3Op9EO.js", + "assets/circle-alert-Chv9CSFv.js", + "assets/shield-1K71PF3Z.js", + "assets/trash-2-DyFY_1qQ.js", + "assets/search-BZV0xrgm.js", + "assets/alert-dialog-C83-hcvs.js", + "assets/textarea-g0WOpBON.js", + "assets/checkbox-_MXGNjmt.js", + "assets/date-format-CfassM9h.js", + "assets/scroll-area-BR8Yasj-.js", + "assets/tabs-mlEhuh6x.js", + "assets/badge--S7rRRa_.js", + "assets/input-CnrYjqwN.js", + "assets/card-D6eub4N8.js" + ] + } + ], + "chunks": [ + { + "file": "assets/index-D4jHDNYl.js", + "bytes": 1147759, + "gzipBytes": 354128, + "imports": [], + "modules": [ + "\u0000vite/modulepreload-polyfill.js", + "src/index.css", + "src/jam-loader.ts", + "\u0000commonjsHelpers.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/jsx-runtime.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/cjs/react-jsx-runtime.production.min.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/cjs/react.production.min.js?commonjs-exports", + "node_modules/react/cjs/react.production.min.js", + "node_modules/react/index.js", + "node_modules/react/cjs/react-jsx-runtime.production.min.js", + "node_modules/react/jsx-runtime.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/jsx-runtime.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/client.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/cjs/react-dom.production.min.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scheduler/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scheduler/cjs/scheduler.production.min.js?commonjs-exports", + "node_modules/scheduler/cjs/scheduler.production.min.js", + "node_modules/scheduler/index.js", + "node_modules/react-dom/cjs/react-dom.production.min.js", + "node_modules/react-dom/index.js", + "node_modules/react-dom/client.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/client.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react/index.js?commonjs-es-import", + "src/hooks/use-toast.ts", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-dom/index.js?commonjs-es-import", + "node_modules/@radix-ui/primitive/dist/index.mjs", + "node_modules/@radix-ui/react-compose-refs/dist/index.mjs", + "node_modules/@radix-ui/react-context/dist/index.mjs", + "node_modules/@radix-ui/react-slot/dist/index.mjs", + "node_modules/@radix-ui/react-collection/dist/index.mjs", + "node_modules/@radix-ui/react-primitive/dist/index.mjs", + "node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs", + "node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs", + "node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs", + "node_modules/@radix-ui/react-portal/dist/index.mjs", + "node_modules/@radix-ui/react-presence/dist/index.mjs", + "node_modules/@radix-ui/react-use-effect-event/dist/index.mjs", + "node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs", + "node_modules/@radix-ui/react-visually-hidden/dist/index.mjs", + "node_modules/@radix-ui/react-toast/dist/index.mjs", + "node_modules/clsx/dist/clsx.mjs", + "node_modules/class-variance-authority/dist/index.mjs", + "node_modules/lucide-react/dist/esm/shared/src/utils.js", + "node_modules/lucide-react/dist/esm/defaultAttributes.js", + "node_modules/lucide-react/dist/esm/Icon.js", + "node_modules/lucide-react/dist/esm/createLucideIcon.js", + "node_modules/lucide-react/dist/esm/icons/book-open.js", + "node_modules/lucide-react/dist/esm/icons/check.js", + "node_modules/lucide-react/dist/esm/icons/chevron-down.js", + "node_modules/lucide-react/dist/esm/icons/chevron-up.js", + "node_modules/lucide-react/dist/esm/icons/clock.js", + "node_modules/lucide-react/dist/esm/icons/crosshair.js", + "node_modules/lucide-react/dist/esm/icons/database.js", + "node_modules/lucide-react/dist/esm/icons/dumbbell.js", + "node_modules/lucide-react/dist/esm/icons/git-branch.js", + "node_modules/lucide-react/dist/esm/icons/globe.js", + "node_modules/lucide-react/dist/esm/icons/house.js", + "node_modules/lucide-react/dist/esm/icons/laptop.js", + "node_modules/lucide-react/dist/esm/icons/lightbulb.js", + "node_modules/lucide-react/dist/esm/icons/loader-circle.js", + "node_modules/lucide-react/dist/esm/icons/megaphone.js", + "node_modules/lucide-react/dist/esm/icons/menu.js", + "node_modules/lucide-react/dist/esm/icons/message-circle.js", + "node_modules/lucide-react/dist/esm/icons/moon.js", + "node_modules/lucide-react/dist/esm/icons/settings.js", + "node_modules/lucide-react/dist/esm/icons/sparkles.js", + "node_modules/lucide-react/dist/esm/icons/sun.js", + "node_modules/lucide-react/dist/esm/icons/swords.js", + "node_modules/lucide-react/dist/esm/icons/timer.js", + "node_modules/lucide-react/dist/esm/icons/wifi-off.js", + "node_modules/lucide-react/dist/esm/icons/x.js", + "node_modules/tailwind-merge/dist/bundle-mjs.mjs", + "src/lib/utils.ts", + "src/components/ui/toast.tsx", + "src/components/ui/toaster.tsx", + "node_modules/next-themes/dist/index.mjs", + "node_modules/sonner/dist/index.mjs", + "src/components/ui/sonner.tsx", + "node_modules/@radix-ui/react-id/dist/index.mjs", + "node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs", + "node_modules/@floating-ui/core/dist/floating-ui.core.mjs", + "node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs", + "node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs", + "node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs", + "node_modules/@radix-ui/react-use-size/dist/index.mjs", + "node_modules/@radix-ui/react-popper/dist/index.mjs", + "node_modules/@radix-ui/react-tooltip/dist/index.mjs", + "src/components/ui/tooltip.tsx", + "node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js", + "node_modules/@tanstack/query-core/build/modern/timeoutManager.js", + "node_modules/@tanstack/query-core/build/modern/utils.js", + "node_modules/@tanstack/query-core/build/modern/environmentManager.js", + "node_modules/@tanstack/query-core/build/modern/subscribable.js", + "node_modules/@tanstack/query-core/build/modern/focusManager.js", + "node_modules/@tanstack/query-core/build/modern/notifyManager.js", + "node_modules/@tanstack/query-core/build/modern/onlineManager.js", + "node_modules/@tanstack/query-core/build/modern/retryer.js", + "node_modules/@tanstack/query-core/build/modern/removable.js", + "node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js", + "node_modules/@tanstack/query-core/build/modern/query.js", + "node_modules/@tanstack/query-core/build/modern/mutation.js", + "node_modules/@tanstack/query-core/build/modern/mutationCache.js", + "node_modules/@tanstack/query-core/build/modern/queryCache.js", + "node_modules/@tanstack/query-core/build/modern/queryClient.js", + "node_modules/react-router/dist/development/chunk-BV7QT456.mjs", + "node_modules/framer-motion/dist/es/utils/use-constant.mjs", + "node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs", + "node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs", + "node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs", + "node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs", + "node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs", + "node_modules/framer-motion/dist/es/components/MotionConfig/index.mjs", + "node_modules/react-i18next/dist/es/utils.js", + "node_modules/react-i18next/dist/es/unescape.js", + "node_modules/react-i18next/dist/es/defaults.js", + "node_modules/react-i18next/dist/es/i18nInstance.js", + "node_modules/react-i18next/dist/es/initReactI18next.js", + "node_modules/react-i18next/dist/es/context.js", + "node_modules/react-i18next/dist/es/useTranslation.js", + "\u0000vite/preload-helper.js", + "src/lib/route-modules.ts", + "src/hooks/use-route-prefetch.ts", + "src/components/NavLink.tsx", + "src/components/ui/button.tsx", + "node_modules/zustand/esm/vanilla.mjs", + "node_modules/zustand/esm/react.mjs", + "node_modules/zustand/esm/middleware.mjs", + "node_modules/i18next/dist/esm/i18next.js", + "src/locales/en.json", + "src/locales/es.json", + "src/locales/hu.json", + "src/i18n.ts", + "supabase/functions/_shared/model-catalog.ts", + "src/lib/ai/providers/types.ts", + "node_modules/@supabase/supabase-js/dist/tracingRegistry.mjs", + "node_modules/tslib/tslib.es6.mjs", + "node_modules/@supabase/functions-js/dist/module/helper.js", + "node_modules/@supabase/functions-js/dist/module/types.js", + "node_modules/@supabase/functions-js/dist/module/FunctionsClient.js", + "node_modules/@supabase/postgrest-js/dist/index.mjs", + "node_modules/@supabase/realtime-js/dist/module/lib/websocket-factory.js", + "node_modules/@supabase/realtime-js/dist/module/lib/version.js", + "node_modules/@supabase/realtime-js/dist/module/lib/constants.js", + "node_modules/@supabase/realtime-js/dist/module/lib/serializer.js", + "node_modules/@supabase/realtime-js/dist/module/lib/transformers.js", + "node_modules/@supabase/phoenix/priv/static/phoenix.mjs", + "node_modules/@supabase/realtime-js/dist/module/phoenix/presenceAdapter.js", + "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js", + "node_modules/@supabase/realtime-js/dist/module/lib/normalizeChannelError.js", + "node_modules/@supabase/realtime-js/dist/module/phoenix/channelAdapter.js", + "node_modules/@supabase/realtime-js/dist/module/RealtimePostgresFilterBuilder.js", + "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js", + "node_modules/@supabase/realtime-js/dist/module/phoenix/socketAdapter.js", + "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js", + "node_modules/iceberg-js/dist/index.mjs", + "node_modules/@supabase/storage-js/dist/index.mjs", + "node_modules/@supabase/auth-js/dist/module/lib/version.js", + "node_modules/@supabase/auth-js/dist/module/lib/constants.js", + "node_modules/@supabase/auth-js/dist/module/lib/errors.js", + "node_modules/@supabase/auth-js/dist/module/lib/base64url.js", + "node_modules/@supabase/auth-js/dist/module/lib/helpers.js", + "node_modules/@supabase/auth-js/dist/module/lib/fetch.js", + "node_modules/@supabase/auth-js/dist/module/lib/types.js", + "node_modules/@supabase/auth-js/dist/module/GoTrueAdminApi.js", + "node_modules/@supabase/auth-js/dist/module/lib/local-storage.js", + "node_modules/@supabase/auth-js/dist/module/lib/locks.js", + "node_modules/@supabase/auth-js/dist/module/lib/polyfills.js", + "node_modules/@supabase/auth-js/dist/module/lib/web3/ethereum.js", + "node_modules/@supabase/auth-js/dist/module/lib/webauthn.errors.js", + "node_modules/@supabase/auth-js/dist/module/lib/webauthn.js", + "node_modules/@supabase/auth-js/dist/module/GoTrueClient.js", + "node_modules/@supabase/auth-js/dist/module/AuthClient.js", + "node_modules/@supabase/supabase-js/dist/index.mjs", + "src/lib/supabase/env.ts", + "src/lib/supabase/client.ts", + "src/lib/stores/settings-store.ts", + "src/components/ThemeToggle.tsx", + "node_modules/@radix-ui/number/dist/index.mjs", + "node_modules/@radix-ui/react-direction/dist/index.mjs", + "node_modules/@radix-ui/react-focus-guards/dist/index.mjs", + "node_modules/@radix-ui/react-focus-scope/dist/index.mjs", + "node_modules/@radix-ui/react-use-previous/dist/index.mjs", + "node_modules/aria-hidden/dist/es2015/index.js", + "node_modules/react-remove-scroll-bar/dist/es2015/constants.js", + "node_modules/use-callback-ref/dist/es2015/assignRef.js", + "node_modules/use-callback-ref/dist/es2015/useRef.js", + "node_modules/use-callback-ref/dist/es2015/useMergeRef.js", + "node_modules/use-sidecar/dist/es2015/medium.js", + "node_modules/use-sidecar/dist/es2015/exports.js", + "node_modules/react-remove-scroll/dist/es2015/medium.js", + "node_modules/react-remove-scroll/dist/es2015/UI.js", + "node_modules/get-nonce/dist/es2015/index.js", + "node_modules/react-style-singleton/dist/es2015/singleton.js", + "node_modules/react-style-singleton/dist/es2015/hook.js", + "node_modules/react-style-singleton/dist/es2015/component.js", + "node_modules/react-remove-scroll-bar/dist/es2015/utils.js", + "node_modules/react-remove-scroll-bar/dist/es2015/component.js", + "node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js", + "node_modules/react-remove-scroll/dist/es2015/handleScroll.js", + "node_modules/react-remove-scroll/dist/es2015/SideEffect.js", + "node_modules/react-remove-scroll/dist/es2015/sidecar.js", + "node_modules/react-remove-scroll/dist/es2015/Combination.js", + "node_modules/@radix-ui/react-select/dist/index.mjs", + "src/components/ui/select.tsx", + "node_modules/@radix-ui/react-dialog/dist/index.mjs", + "src/components/ui/dialog.tsx", + "node_modules/@radix-ui/react-label/dist/index.mjs", + "src/components/ui/label.tsx", + "src/components/LanguageSwitcher.tsx", + "src/components/layout/AnnouncementBanner.tsx", + "src/lib/stores/session-store.ts", + "node_modules/zod/v4/core/util.js", + "node_modules/zod/v4/core/core.js", + "node_modules/zod/v4/core/errors.js", + "node_modules/zod/v4/core/parse.js", + "node_modules/zod/v4/core/regexes.js", + "node_modules/zod/v4/core/checks.js", + "node_modules/zod/v4/core/doc.js", + "node_modules/zod/v4/core/versions.js", + "node_modules/zod/v4/core/schemas.js", + "node_modules/zod/v4/core/memoizer.js", + "node_modules/zod/v4/locales/en.js", + "node_modules/zod/v4/core/registries.js", + "node_modules/zod/v4/core/api.js", + "node_modules/zod/v4/core/to-json-schema.js", + "node_modules/zod/v4/core/json-schema-processors.js", + "node_modules/zod/v4/classic/errors.js", + "node_modules/zod/v4/classic/parse.js", + "node_modules/zod/v4/classic/schemas.js", + "node_modules/zod/v4/classic/iso.js", + "src/lib/ai/schemas/sparring.ts", + "src/lib/sparring/formats.ts", + "src/lib/observability.ts", + "src/lib/stores/sparring-store.ts", + "node_modules/@capacitor/core/dist/index.js", + "node_modules/@capacitor/browser/dist/esm/index.js", + "src/lib/native.ts", + "node_modules/@jam.dev/sdk/dist/jamsdk.js", + "src/lib/jam-metadata.ts", + "src/lib/crossfire/schemas.ts", + "src/lib/crossfire/storage.ts", + "src/lib/supabase/AuthProvider.tsx", + "src/lib/announcements.ts", + "src/components/layout/AppLayout.tsx", + "src/components/auth/RequireAuth.tsx", + "node_modules/@gilbarbara/deep-equal/dist/index.mjs", + "node_modules/is-lite/dist/index.mjs", + "node_modules/tree-changes/dist/index.mjs", + "node_modules/scroll/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scroll/index.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scrollparent/scrollparent.js?commonjs-module", + "node_modules/scrollparent/scrollparent.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/scrollparent/scrollparent.js?commonjs-es-import", + "node_modules/react-innertext/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/react-innertext/index.js?commonjs-es-import", + "node_modules/deepmerge/dist/cjs.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/deepmerge/dist/cjs.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/prop-types/index.js?commonjs-module", + "node_modules/prop-types/lib/ReactPropTypesSecret.js", + "node_modules/prop-types/factoryWithThrowingShims.js", + "node_modules/prop-types/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/prop-types/index.js?commonjs-es-import", + "node_modules/popper.js/dist/esm/popper.js", + "node_modules/react-floater/node_modules/is-lite/esm/index.js", + "node_modules/react-floater/node_modules/@gilbarbara/deep-equal/esm/helpers.js", + "node_modules/react-floater/node_modules/@gilbarbara/deep-equal/esm/index.js", + "node_modules/react-floater/node_modules/tree-changes/esm/helpers.js", + "node_modules/react-floater/node_modules/tree-changes/esm/index.js", + "node_modules/react-floater/es/index.js", + "node_modules/react-joyride/dist/index.mjs", + "src/hooks/use-onboarding.ts", + "src/components/features/onboarding/OnboardingTour.tsx", + "src/components/ThemeProvider.tsx", + "src/hooks/use-session-storage-sync.ts", + "src/components/OfflineIndicator.tsx", + "src/components/loading/RouteSkeleton.tsx", + "src/App.tsx", + "src/components/WebTelemetry.tsx", + "node_modules/@capacitor/app/dist/esm/index.js", + "src/native-app-url-listener.ts", + "node_modules/@capacitor/haptics/dist/esm/definitions.js", + "node_modules/@capacitor/haptics/dist/esm/index.js", + "node_modules/@capacitor/keyboard/dist/esm/definitions.js", + "node_modules/@capacitor/keyboard/dist/esm/index.js", + "node_modules/@capacitor/status-bar/dist/esm/definitions.js", + "node_modules/@capacitor/status-bar/dist/esm/index.js", + "src/native-runtime.ts", + "src/register-service-worker.ts", + "src/main.tsx", + "src/bootstrap.ts", + "index.html?html-proxy&inline-css&index=1.css", + "index.html" + ], + "staticMembership": [ + "index.html", + "/", + "/login", + "/app", + "/app/generate", + "/app/attack", + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "index.html" + }, + { + "file": "assets/index-fTGozHfm.js", + "bytes": 2665, + "gzipBytes": 1243, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/@vercel/analytics/dist/react/index.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@vercel/analytics/dist/react/index.mjs" + }, + { + "file": "assets/index-wJ0rgeqX.js", + "bytes": 2350, + "gzipBytes": 1109, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/@vercel/speed-insights/dist/react/index.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@vercel/speed-insights/dist/react/index.mjs" + }, + { + "file": "assets/LandingPage-Cb7ljqwH.js", + "bytes": 45814, + "gzipBytes": 11164, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/use-reduced-motion-zRDnn0Fz.js", + "assets/proxy-CvwFFBBn.js", + "assets/arrow-right-DgBYKnNo.js", + "assets/crown-D4N948KJ.js", + "assets/zap-EoS37zre.js", + "assets/brain-Cd3j89BP.js", + "assets/search-BZV0xrgm.js", + "assets/users-Dw3Op9EO.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-check.js", + "node_modules/lucide-react/dist/esm/icons/file-search.js", + "node_modules/lucide-react/dist/esm/icons/gavel.js", + "node_modules/lucide-react/dist/esm/icons/graduation-cap.js", + "node_modules/lucide-react/dist/esm/icons/history.js", + "node_modules/lucide-react/dist/esm/icons/network.js", + "node_modules/lucide-react/dist/esm/icons/scan-search.js", + "node_modules/lucide-react/dist/esm/icons/trophy.js", + "node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs", + "src/components/landing/Navbar.tsx", + "src/components/landing/Hero.tsx", + "src/components/landing/SocialProof.tsx", + "src/components/landing/WhatsNew.tsx", + "src/components/landing/Features.tsx", + "src/components/landing/Pricing.tsx", + "src/components/landing/DeepDive.tsx", + "src/components/landing/UseCases.tsx", + "src/components/landing/HowItWorks.tsx", + "node_modules/@radix-ui/react-collapsible/dist/index.mjs", + "node_modules/@radix-ui/react-accordion/dist/index.mjs", + "src/components/ui/accordion.tsx", + "src/components/landing/FAQ.tsx", + "src/components/landing/FinalCTA.tsx", + "src/components/landing/Footer.tsx", + "src/pages/LandingPage.tsx" + ], + "staticMembership": [ + "/" + ], + "dynamicEntry": "src/pages/LandingPage.tsx" + }, + { + "file": "assets/TermsPage-E7aA4MSt.js", + "bytes": 772, + "gzipBytes": 420, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "src/pages/TermsPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/TermsPage.tsx" + }, + { + "file": "assets/PrivacyPage-Cp-qrvE_.js", + "bytes": 782, + "gzipBytes": 421, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "src/pages/PrivacyPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/PrivacyPage.tsx" + }, + { + "file": "assets/SourcesPage-B7rI1xha.js", + "bytes": 4766, + "gzipBytes": 2080, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "src/pages/SourcesPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/SourcesPage.tsx" + }, + { + "file": "assets/LoginPage-C8SChovI.js", + "bytes": 6794, + "gzipBytes": 2207, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/card-D6eub4N8.js", + "assets/input-CnrYjqwN.js", + "assets/tabs-mlEhuh6x.js" + ], + "modules": [ + "src/pages/LoginPage.tsx" + ], + "staticMembership": [ + "/login" + ], + "dynamicEntry": "src/pages/LoginPage.tsx" + }, + { + "file": "assets/SharedPage-Cf0DuX9D.js", + "bytes": 3249, + "gzipBytes": 1297, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/card-D6eub4N8.js", + "assets/badge--S7rRRa_.js", + "assets/date-format-CfassM9h.js", + "assets/download-Buou6_Ok.js", + "assets/external-link-Dqt0ymKS.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/share-2.js", + "src/pages/SharedPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/SharedPage.tsx" + }, + { + "file": "assets/HomePage-DrVRFPs0.js", + "bytes": 3439, + "gzipBytes": 1257, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/card-D6eub4N8.js", + "assets/arrow-right-DgBYKnNo.js" + ], + "modules": [ + "src/pages/HomePage.tsx" + ], + "staticMembership": [ + "/app" + ], + "dynamicEntry": "src/pages/HomePage.tsx" + }, + { + "file": "assets/GeneratePage-CdUz2-w9.js", + "bytes": 28558, + "gzipBytes": 8172, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/streaming-indicator-DhYSWhCP.js", + "assets/input-CnrYjqwN.js", + "assets/card-D6eub4N8.js", + "assets/client-BTq6F-PU.js", + "assets/use-speech-to-text-BG2bMqig.js", + "assets/ModelSelector-DslLRZjt.js", + "assets/prefill-CVrpA-lu.js", + "assets/badge--S7rRRa_.js", + "assets/markdown-D7H1fUC4.js", + "assets/ModelRestrictedModal-z3DTBALd.js", + "assets/date-format-CfassM9h.js", + "assets/flame-D57LyGTP.js", + "assets/save-Dk4dYhHU.js", + "assets/refresh-cw-CrWzIDvX.js", + "assets/target-DKppQCPt.js", + "assets/shield-1K71PF3Z.js", + "assets/triangle-alert-DSvIrkJI.js", + "assets/error-display-DrChSMbz.js", + "assets/PricingModal-CEXuD9Wb.js", + "assets/use-reduced-motion-zRDnn0Fz.js", + "assets/index-D0At4Kou.js", + "assets/file-text-DcHyYoya.js", + "assets/external-link-Dqt0ymKS.js", + "assets/url-I6ZuTOfd.js", + "assets/use-subscription-C0XrPVqO.js", + "assets/zap-EoS37zre.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-D4N948KJ.js", + "assets/string-cKWu9XK9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/clipboard.js", + "node_modules/lucide-react/dist/esm/icons/wand-sparkles.js", + "src/components/features/generate/GenerateForm.tsx", + "src/components/features/generate/GenerateResults.tsx", + "src/pages/GeneratePage.tsx" + ], + "staticMembership": [ + "/app/generate" + ], + "dynamicEntry": "src/pages/GeneratePage.tsx" + }, + { + "file": "assets/AttackPage-DT2nJloh.js", + "bytes": 19028, + "gzipBytes": 5372, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/streaming-indicator-DhYSWhCP.js", + "assets/textarea-g0WOpBON.js", + "assets/switch-Dd8KWBFh.js", + "assets/card-D6eub4N8.js", + "assets/client-BTq6F-PU.js", + "assets/ModelSelector-DslLRZjt.js", + "assets/prefill-CVrpA-lu.js", + "assets/search-BZV0xrgm.js", + "assets/badge--S7rRRa_.js", + "assets/progress-BxcfcTfE.js", + "assets/markdown-D7H1fUC4.js", + "assets/ModelRestrictedModal-z3DTBALd.js", + "assets/flame-D57LyGTP.js", + "assets/circle-alert-Chv9CSFv.js", + "assets/refresh-cw-CrWzIDvX.js", + "assets/triangle-alert-DSvIrkJI.js", + "assets/error-display-DrChSMbz.js", + "assets/PricingModal-CEXuD9Wb.js", + "assets/file-text-DcHyYoya.js", + "assets/external-link-Dqt0ymKS.js", + "assets/url-I6ZuTOfd.js", + "assets/use-subscription-C0XrPVqO.js", + "assets/zap-EoS37zre.js", + "assets/input-CnrYjqwN.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-D4N948KJ.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/info.js", + "node_modules/lucide-react/dist/esm/icons/scale.js", + "src/components/features/attack/AttackForm.tsx", + "src/components/features/attack/AttackResults.tsx", + "src/pages/AttackPage.tsx" + ], + "staticMembership": [ + "/app/attack" + ], + "dynamicEntry": "src/pages/AttackPage.tsx" + }, + { + "file": "assets/prefill-CVrpA-lu.js", + "bytes": 1983, + "gzipBytes": 960, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/sliders-horizontal.js", + "node_modules/@radix-ui/react-separator/dist/index.mjs", + "src/components/ui/separator.tsx", + "src/lib/crossfire/prefill.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_prefill-CVrpA-lu.js" + }, + { + "file": "assets/BrainstormPage-CGeKGOlQ.js", + "bytes": 15097, + "gzipBytes": 4729, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/streaming-indicator-DhYSWhCP.js", + "assets/input-CnrYjqwN.js", + "assets/textarea-g0WOpBON.js", + "assets/card-D6eub4N8.js", + "assets/ModelSelector-DslLRZjt.js", + "assets/brain-Cd3j89BP.js", + "assets/badge--S7rRRa_.js", + "assets/ModelRestrictedModal-z3DTBALd.js", + "assets/empty-state-DVcmbEo7.js", + "assets/triangle-alert-DSvIrkJI.js", + "assets/arrow-right-DgBYKnNo.js", + "assets/client-BTq6F-PU.js", + "assets/error-display-DrChSMbz.js", + "assets/PricingModal-CEXuD9Wb.js", + "assets/refresh-cw-CrWzIDvX.js", + "assets/file-text-DcHyYoya.js", + "assets/external-link-Dqt0ymKS.js", + "assets/use-subscription-C0XrPVqO.js", + "assets/zap-EoS37zre.js", + "assets/url-I6ZuTOfd.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-D4N948KJ.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/trending-up.js", + "src/lib/ai/schemas/brainstorm.ts", + "src/components/features/brainstorm/BrainstormForm.tsx", + "src/components/features/brainstorm/BrainstormResults.tsx", + "src/pages/BrainstormPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/BrainstormPage.tsx" + }, + { + "file": "assets/FactoidsPage-D19RrI8e.js", + "bytes": 27489, + "gzipBytes": 9067, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/streaming-indicator-DhYSWhCP.js", + "assets/input-CnrYjqwN.js", + "assets/card-D6eub4N8.js", + "assets/client-BTq6F-PU.js", + "assets/ModelSelector-DslLRZjt.js", + "assets/search-BZV0xrgm.js", + "assets/badge--S7rRRa_.js", + "assets/progress-BxcfcTfE.js", + "assets/ModelRestrictedModal-z3DTBALd.js", + "assets/triangle-alert-DSvIrkJI.js", + "assets/external-link-Dqt0ymKS.js", + "assets/bookmark-CkfTrWEp.js", + "assets/error-display-DrChSMbz.js", + "assets/PricingModal-CEXuD9Wb.js", + "assets/refresh-cw-CrWzIDvX.js", + "assets/file-text-DcHyYoya.js", + "assets/url-I6ZuTOfd.js", + "assets/use-subscription-C0XrPVqO.js", + "assets/zap-EoS37zre.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-D4N948KJ.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-check-big.js", + "node_modules/@radix-ui/react-slider/dist/index.mjs", + "src/components/ui/slider.tsx", + "src/components/features/factoids/FactoidsForm.tsx", + "src/components/features/factoids/FactoidsResults.tsx", + "src/pages/FactoidsPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/FactoidsPage.tsx" + }, + { + "file": "assets/streaming-indicator-DhYSWhCP.js", + "bytes": 40951, + "gzipBytes": 14988, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/card-D6eub4N8.js", + "assets/refresh-cw-CrWzIDvX.js", + "assets/file-text-DcHyYoya.js", + "assets/external-link-Dqt0ymKS.js", + "assets/badge--S7rRRa_.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/file-down.js", + "node_modules/lucide-react/dist/esm/icons/undo-2.js", + "node_modules/react-hook-form/dist/index.esm.mjs", + "node_modules/@hookform/resolvers/dist/resolvers.mjs", + "node_modules/@hookform/resolvers/zod/dist/zod.mjs", + "src/components/ui/loading-spinner.tsx", + "src/components/ui/section-card.tsx", + "src/components/icons/GoogleDocsIcon.tsx", + "src/components/features/AutoSavedSourcesUndo.tsx", + "src/components/features/ExportToolbar.tsx", + "src/components/features/export/GoogleDriveAuthModal.tsx", + "src/components/features/shared/SourceQualityList.tsx", + "src/components/ui/streaming-indicator.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_streaming-indicator-DhYSWhCP.js" + }, + { + "file": "assets/AskPage-D6Yq65Hk.js", + "bytes": 30936, + "gzipBytes": 9847, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/input-CnrYjqwN.js", + "assets/markdown-D7H1fUC4.js", + "assets/card-D6eub4N8.js", + "assets/switch-Dd8KWBFh.js", + "assets/scroll-area-BR8Yasj-.js", + "assets/use-speech-to-text-BG2bMqig.js", + "assets/date-format-CfassM9h.js", + "assets/ModelSelector-DslLRZjt.js", + "assets/sheet-CPaIXg5N.js", + "assets/use-reduced-motion-zRDnn0Fz.js", + "assets/save-Dk4dYhHU.js", + "assets/rotate-ccw-BuOm1Tl2.js", + "assets/circle-help-57I9vNIu.js", + "assets/search-BZV0xrgm.js", + "assets/send-BdjSbyuU.js", + "assets/bookmark-CkfTrWEp.js", + "assets/client-BTq6F-PU.js", + "assets/ModelRestrictedModal-z3DTBALd.js", + "assets/error-display-DrChSMbz.js", + "assets/PricingModal-CEXuD9Wb.js", + "assets/badge--S7rRRa_.js", + "assets/use-subscription-C0XrPVqO.js", + "assets/url-I6ZuTOfd.js", + "assets/triangle-alert-DSvIrkJI.js", + "assets/zap-EoS37zre.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-D4N948KJ.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-plus.js", + "node_modules/lucide-react/dist/esm/icons/list.js", + "node_modules/lucide-react/dist/esm/icons/map.js", + "node_modules/lucide-react/dist/esm/icons/panel-left-open.js", + "node_modules/lucide-react/dist/esm/icons/paperclip.js", + "node_modules/lucide-react/dist/esm/icons/quote.js", + "src/lib/validation/file.ts", + "src/components/features/ask/AskChat.tsx", + "src/lib/ai/streaming.ts", + "src/pages/AskPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/AskPage.tsx" + }, + { + "file": "assets/use-speech-to-text-BG2bMqig.js", + "bytes": 1930, + "gzipBytes": 950, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/mic-off.js", + "node_modules/lucide-react/dist/esm/icons/mic.js", + "src/hooks/use-speech-to-text.ts" + ], + "staticMembership": [ + "/app/generate" + ], + "dynamicEntry": "_use-speech-to-text-BG2bMqig.js" + }, + { + "file": "assets/bookmark-CkfTrWEp.js", + "bytes": 160, + "gzipBytes": 161, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/bookmark.js" + ], + "staticMembership": [], + "dynamicEntry": "_bookmark-CkfTrWEp.js" + }, + { + "file": "assets/ModelRestrictedModal-z3DTBALd.js", + "bytes": 3984, + "gzipBytes": 1463, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/client-BTq6F-PU.js", + "assets/triangle-alert-DSvIrkJI.js", + "assets/zap-EoS37zre.js", + "assets/PricingModal-CEXuD9Wb.js" + ], + "modules": [ + "src/components/ui/animated-section.tsx", + "src/hooks/use-subscription-error.ts", + "src/components/features/subscription/LimitReachedModal.tsx", + "src/components/features/subscription/ModelRestrictedModal.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_ModelRestrictedModal-z3DTBALd.js" + }, + { + "file": "assets/CrossfirePage-BLkJIzx7.js", + "bytes": 26182, + "gzipBytes": 6867, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/badge--S7rRRa_.js", + "assets/card-D6eub4N8.js", + "assets/checkbox-_MXGNjmt.js", + "assets/textarea-g0WOpBON.js", + "assets/client-BTq6F-PU.js", + "assets/error-display-DrChSMbz.js", + "assets/use-reduced-motion-zRDnn0Fz.js", + "assets/flame-D57LyGTP.js", + "assets/circle-alert-Chv9CSFv.js", + "assets/refresh-cw-CrWzIDvX.js", + "assets/clock-3-DXL97kin.js", + "assets/send-BdjSbyuU.js", + "assets/rotate-ccw-BuOm1Tl2.js", + "assets/shield-check-M0zqP7PB.js", + "assets/proxy-CvwFFBBn.js", + "assets/url-I6ZuTOfd.js" + ], + "modules": [ + "src/components/ui/alert.tsx", + "src/lib/crossfire/reducer.ts", + "src/pages/CrossfirePage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/CrossfirePage.tsx" + }, + { + "file": "assets/proxy-CvwFFBBn.js", + "bytes": 121276, + "gzipBytes": 39637, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/use-reduced-motion-zRDnn0Fz.js" + ], + "modules": [ + "node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs", + "node_modules/framer-motion/dist/es/utils/is-browser.mjs", + "node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs", + "node_modules/framer-motion/dist/es/context/PresenceContext.mjs", + "node_modules/motion-utils/dist/es/array.mjs", + "node_modules/motion-utils/dist/es/clamp.mjs", + "node_modules/motion-utils/dist/es/errors.mjs", + "node_modules/motion-utils/dist/es/global-config.mjs", + "node_modules/motion-utils/dist/es/is-numerical-string.mjs", + "node_modules/motion-utils/dist/es/is-object.mjs", + "node_modules/motion-utils/dist/es/is-zero-value-string.mjs", + "node_modules/motion-utils/dist/es/memo.mjs", + "node_modules/motion-utils/dist/es/noop.mjs", + "node_modules/motion-utils/dist/es/pipe.mjs", + "node_modules/motion-utils/dist/es/progress.mjs", + "node_modules/motion-utils/dist/es/subscription-manager.mjs", + "node_modules/motion-utils/dist/es/time-conversion.mjs", + "node_modules/motion-utils/dist/es/velocity-per-second.mjs", + "node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs", + "node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs", + "node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs", + "node_modules/motion-utils/dist/es/easing/back.mjs", + "node_modules/motion-utils/dist/es/easing/anticipate.mjs", + "node_modules/motion-utils/dist/es/easing/circ.mjs", + "node_modules/motion-utils/dist/es/easing/ease.mjs", + "node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs", + "node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs", + "node_modules/motion-utils/dist/es/easing/utils/map.mjs", + "node_modules/motion-dom/dist/es/frameloop/order.mjs", + "node_modules/motion-dom/dist/es/frameloop/render-step.mjs", + "node_modules/motion-dom/dist/es/frameloop/batcher.mjs", + "node_modules/motion-dom/dist/es/frameloop/frame.mjs", + "node_modules/motion-dom/dist/es/frameloop/sync-time.mjs", + "node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs", + "node_modules/motion-dom/dist/es/value/types/numbers/index.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs", + "node_modules/motion-dom/dist/es/value/types/color/utils.mjs", + "node_modules/motion-dom/dist/es/value/types/color/rgba.mjs", + "node_modules/motion-dom/dist/es/value/types/color/hex.mjs", + "node_modules/motion-dom/dist/es/value/types/numbers/units.mjs", + "node_modules/motion-dom/dist/es/value/types/color/hsla.mjs", + "node_modules/motion-dom/dist/es/value/types/color/index.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs", + "node_modules/motion-dom/dist/es/value/types/complex/index.mjs", + "node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs", + "node_modules/motion-dom/dist/es/utils/mix/immediate.mjs", + "node_modules/motion-dom/dist/es/utils/mix/number.mjs", + "node_modules/motion-dom/dist/es/utils/mix/color.mjs", + "node_modules/motion-dom/dist/es/utils/mix/visibility.mjs", + "node_modules/motion-dom/dist/es/utils/mix/complex.mjs", + "node_modules/motion-dom/dist/es/utils/mix/index.mjs", + "node_modules/motion-dom/dist/es/animation/drivers/frame.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs", + "node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs", + "node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs", + "node_modules/motion-dom/dist/es/animation/generators/spring.mjs", + "node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs", + "node_modules/motion-dom/dist/es/animation/generators/inertia.mjs", + "node_modules/motion-dom/dist/es/utils/interpolate.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs", + "node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs", + "node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs", + "node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs", + "node_modules/motion-dom/dist/es/animation/JSAnimation.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs", + "node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs", + "node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs", + "node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs", + "node_modules/motion-dom/dist/es/render/dom/style-set.mjs", + "node_modules/motion-dom/dist/es/utils/supports/flags.mjs", + "node_modules/motion-dom/dist/es/utils/supports/memo.mjs", + "node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs", + "node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs", + "node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs", + "node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs", + "node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs", + "node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs", + "node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs", + "node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/utils/is-browser-color.mjs", + "node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs", + "node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs", + "node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs", + "node_modules/motion-dom/dist/es/value/index.mjs", + "node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs", + "node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs", + "node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs", + "node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs", + "node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs", + "node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs", + "node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs", + "node_modules/motion-dom/dist/es/render/utils/keys-position.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs", + "node_modules/motion-dom/dist/es/render/utils/setters.mjs", + "node_modules/motion-dom/dist/es/value/will-change/is.mjs", + "node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs", + "node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs", + "node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs", + "node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs", + "node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs", + "node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs", + "node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs", + "node_modules/motion-dom/dist/es/value/types/auto.mjs", + "node_modules/motion-dom/dist/es/value/types/test.mjs", + "node_modules/motion-dom/dist/es/value/types/dimensions.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs", + "node_modules/motion-dom/dist/es/value/types/complex/filter.mjs", + "node_modules/motion-dom/dist/es/value/types/complex/mask.mjs", + "node_modules/motion-dom/dist/es/value/types/int.mjs", + "node_modules/motion-dom/dist/es/value/types/maps/transform.mjs", + "node_modules/motion-dom/dist/es/value/types/maps/number.mjs", + "node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs", + "node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs", + "node_modules/motion-dom/dist/es/utils/border-radius.mjs", + "node_modules/motion-dom/dist/es/utils/resolve-elements.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs", + "node_modules/motion-dom/dist/es/utils/is-html-element.mjs", + "node_modules/motion-dom/dist/es/frameloop/microtask.mjs", + "node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs", + "node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs", + "node_modules/motion-dom/dist/es/gestures/utils/setup.mjs", + "node_modules/motion-dom/dist/es/gestures/hover.mjs", + "node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs", + "node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs", + "node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs", + "node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs", + "node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs", + "node_modules/motion-dom/dist/es/gestures/press/index.mjs", + "node_modules/motion-dom/dist/es/utils/is-svg-element.mjs", + "node_modules/motion-dom/dist/es/resize/handle-element.mjs", + "node_modules/motion-dom/dist/es/resize/handle-window.mjs", + "node_modules/motion-dom/dist/es/resize/index.mjs", + "node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs", + "node_modules/motion-dom/dist/es/value/types/utils/find.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/models.mjs", + "node_modules/motion-dom/dist/es/render/store.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs", + "node_modules/motion-dom/dist/es/render/utils/variant-props.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs", + "node_modules/motion-dom/dist/es/render/utils/motion-values.mjs", + "node_modules/motion-dom/dist/es/render/VisualElement.mjs", + "node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs", + "node_modules/motion-dom/dist/es/render/Feature.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs", + "node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs", + "node_modules/motion-dom/dist/es/projection/utils/measure.mjs", + "node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs", + "node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs", + "node_modules/motion-dom/dist/es/render/html/utils/render.mjs", + "node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs", + "node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs", + "node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs", + "node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs", + "node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs", + "node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/path.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/render.mjs", + "node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs", + "node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs", + "node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs", + "node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs", + "node_modules/motion-dom/dist/es/render/utils/animation-state.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/copy.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs", + "node_modules/motion-dom/dist/es/projection/geometry/utils.mjs", + "node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs", + "node_modules/motion-dom/dist/es/projection/styles/transform.mjs", + "node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs", + "node_modules/motion-dom/dist/es/animation/animate/single-value.mjs", + "node_modules/motion-dom/dist/es/events/add-dom-event.mjs", + "node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs", + "node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs", + "node_modules/motion-dom/dist/es/utils/delay.mjs", + "node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs", + "node_modules/motion-dom/dist/es/projection/shared/stack.mjs", + "node_modules/motion-dom/dist/es/projection/node/state.mjs", + "node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs", + "node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs", + "node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs", + "node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs", + "node_modules/framer-motion/dist/es/context/LazyContext.mjs", + "node_modules/framer-motion/dist/es/motion/features/definitions.mjs", + "node_modules/framer-motion/dist/es/motion/features/load-features.mjs", + "node_modules/framer-motion/dist/es/context/MotionContext/index.mjs", + "node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs", + "node_modules/framer-motion/dist/es/context/MotionContext/create.mjs", + "node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs", + "node_modules/framer-motion/dist/es/render/html/use-props.mjs", + "node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs", + "node_modules/framer-motion/dist/es/render/svg/use-props.mjs", + "node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs", + "node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs", + "node_modules/framer-motion/dist/es/render/dom/use-render.mjs", + "node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs", + "node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs", + "node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs", + "node_modules/framer-motion/dist/es/motion/utils/symbol.mjs", + "node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs", + "node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs", + "node_modules/framer-motion/dist/es/utils/is-ref-object.mjs", + "node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs", + "node_modules/framer-motion/dist/es/motion/index.mjs", + "node_modules/framer-motion/dist/es/render/components/create-proxy.mjs", + "node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs", + "node_modules/framer-motion/dist/es/motion/features/animation/index.mjs", + "node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs", + "node_modules/framer-motion/dist/es/motion/features/animations.mjs", + "node_modules/framer-motion/dist/es/events/event-info.mjs", + "node_modules/framer-motion/dist/es/events/add-pointer-event.mjs", + "node_modules/framer-motion/dist/es/utils/get-context-window.mjs", + "node_modules/framer-motion/dist/es/utils/distance.mjs", + "node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs", + "node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs", + "node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs", + "node_modules/framer-motion/dist/es/gestures/drag/index.mjs", + "node_modules/framer-motion/dist/es/gestures/pan/index.mjs", + "node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs", + "node_modules/framer-motion/dist/es/motion/features/drag.mjs", + "node_modules/framer-motion/dist/es/gestures/hover.mjs", + "node_modules/framer-motion/dist/es/gestures/focus.mjs", + "node_modules/framer-motion/dist/es/gestures/press.mjs", + "node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs", + "node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs", + "node_modules/framer-motion/dist/es/motion/features/gestures.mjs", + "node_modules/framer-motion/dist/es/motion/features/layout.mjs", + "node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs", + "node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs" + ], + "staticMembership": [ + "/" + ], + "dynamicEntry": "_proxy-CvwFFBBn.js" + }, + { + "file": "assets/flame-D57LyGTP.js", + "bytes": 275, + "gzipBytes": 225, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/flame.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_flame-D57LyGTP.js" + }, + { + "file": "assets/refresh-cw-CrWzIDvX.js", + "bytes": 443, + "gzipBytes": 279, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/message-square.js", + "node_modules/lucide-react/dist/esm/icons/refresh-cw.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_refresh-cw-CrWzIDvX.js" + }, + { + "file": "assets/use-reduced-motion-zRDnn0Fz.js", + "bytes": 387, + "gzipBytes": 271, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs", + "node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs", + "node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.mjs" + ], + "staticMembership": [ + "/", + "/app/generate" + ], + "dynamicEntry": "_use-reduced-motion-zRDnn0Fz.js" + }, + { + "file": "assets/error-display-DrChSMbz.js", + "bytes": 1464, + "gzipBytes": 629, + "imports": [ + "assets/client-BTq6F-PU.js" + ], + "modules": [ + "src/lib/ai/error-display.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_error-display-DrChSMbz.js" + }, + { + "file": "assets/HistoryPage-CoLxEj_o.js", + "bytes": 11679, + "gzipBytes": 2615, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/card-D6eub4N8.js", + "assets/tabs-mlEhuh6x.js", + "assets/badge--S7rRRa_.js", + "assets/scroll-area-BR8Yasj-.js", + "assets/date-format-CfassM9h.js", + "assets/alert-dialog-C83-hcvs.js", + "assets/empty-state-DVcmbEo7.js", + "assets/file-text-DcHyYoya.js", + "assets/zap-EoS37zre.js", + "assets/brain-Cd3j89BP.js", + "assets/trash-2-DyFY_1qQ.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/eye.js", + "src/pages/HistoryPage.tsx" + ], + "staticMembership": [ + "/app/history" + ], + "dynamicEntry": "src/pages/HistoryPage.tsx" + }, + { + "file": "assets/empty-state-DVcmbEo7.js", + "bytes": 609, + "gzipBytes": 372, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "src/components/ui/empty-state.tsx" + ], + "staticMembership": [ + "/app/history" + ], + "dynamicEntry": "_empty-state-DVcmbEo7.js" + }, + { + "file": "assets/brain-Cd3j89BP.js", + "bytes": 731, + "gzipBytes": 353, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/brain.js" + ], + "staticMembership": [ + "/", + "/app/history" + ], + "dynamicEntry": "_brain-Cd3j89BP.js" + }, + { + "file": "assets/LibraryPage-CBLdkjpo.js", + "bytes": 45616, + "gzipBytes": 13535, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/card-D6eub4N8.js", + "assets/input-CnrYjqwN.js", + "assets/textarea-g0WOpBON.js", + "assets/badge--S7rRRa_.js", + "assets/switch-Dd8KWBFh.js", + "assets/date-format-CfassM9h.js", + "assets/url-I6ZuTOfd.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/alert-dialog-C83-hcvs.js", + "assets/sheet-CPaIXg5N.js", + "assets/plus-DRncpdwv.js", + "assets/trash-2-DyFY_1qQ.js", + "assets/search-BZV0xrgm.js", + "assets/shield-check-M0zqP7PB.js", + "assets/file-text-DcHyYoya.js", + "assets/copy-DjMDGCvS.js", + "assets/save-Dk4dYhHU.js", + "assets/external-link-Dqt0ymKS.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/folder-minus.js", + "node_modules/lucide-react/dist/esm/icons/folder-plus.js", + "node_modules/lucide-react/dist/esm/icons/folder.js", + "node_modules/lucide-react/dist/esm/icons/link-2.js", + "node_modules/lucide-react/dist/esm/icons/pencil.js", + "node_modules/lucide-react/dist/esm/icons/shield-alert.js", + "node_modules/lucide-react/dist/esm/icons/upload.js", + "node_modules/react-window/dist/react-window.js", + "src/lib/ai/schemas/source-import.ts", + "src/lib/source-import.ts", + "node_modules/pdfjs-dist/legacy/build/pdf.worker.mjs?url", + "src/lib/source-file-import.ts", + "node_modules/@radix-ui/react-popover/dist/index.mjs", + "src/components/ui/popover.tsx", + "src/pages/LibraryPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/LibraryPage.tsx" + }, + { + "file": "assets/external-link-Dqt0ymKS.js", + "bytes": 247, + "gzipBytes": 195, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/external-link.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_external-link-Dqt0ymKS.js" + }, + { + "file": "assets/sheet-CPaIXg5N.js", + "bytes": 2335, + "gzipBytes": 895, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "src/components/ui/sheet.tsx" + ], + "staticMembership": [], + "dynamicEntry": "_sheet-CPaIXg5N.js" + }, + { + "file": "assets/switch-Dd8KWBFh.js", + "bytes": 4150, + "gzipBytes": 1791, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/@radix-ui/react-switch/dist/index.mjs", + "src/components/ui/switch.tsx" + ], + "staticMembership": [ + "/app/attack" + ], + "dynamicEntry": "_switch-Dd8KWBFh.js" + }, + { + "file": "assets/shield-check-M0zqP7PB.js", + "bytes": 316, + "gzipBytes": 245, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/shield-check.js" + ], + "staticMembership": [], + "dynamicEntry": "_shield-check-M0zqP7PB.js" + }, + { + "file": "assets/TimerPage-NP1HeKRl.js", + "bytes": 10973, + "gzipBytes": 3559, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/card-D6eub4N8.js", + "assets/badge--S7rRRa_.js", + "assets/progress-BxcfcTfE.js", + "assets/rotate-ccw-BuOm1Tl2.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/bell.js", + "node_modules/lucide-react/dist/esm/icons/keyboard.js", + "node_modules/lucide-react/dist/esm/icons/pause.js", + "node_modules/lucide-react/dist/esm/icons/play.js", + "node_modules/lucide-react/dist/esm/icons/volume-2.js", + "node_modules/lucide-react/dist/esm/icons/volume-x.js", + "src/pages/TimerPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/TimerPage.tsx" + }, + { + "file": "assets/SparringPage-D3QwuaQ_.js", + "bytes": 55880, + "gzipBytes": 15401, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/client-BTq6F-PU.js", + "assets/card-D6eub4N8.js", + "assets/textarea-g0WOpBON.js", + "assets/badge--S7rRRa_.js", + "assets/ModelSelector-DslLRZjt.js", + "assets/arrow-right-DgBYKnNo.js", + "assets/progress-BxcfcTfE.js", + "assets/markdown-D7H1fUC4.js", + "assets/clock-3-DXL97kin.js", + "assets/rotate-ccw-BuOm1Tl2.js", + "assets/circle-alert-Chv9CSFv.js", + "assets/send-BdjSbyuU.js", + "assets/download-Buou6_Ok.js", + "assets/generateCategoricalChart-CN74Z58N.js", + "assets/target-DKppQCPt.js", + "assets/file-text-DcHyYoya.js", + "assets/circle-help-57I9vNIu.js", + "assets/url-I6ZuTOfd.js", + "assets/use-subscription-C0XrPVqO.js", + "assets/string-cKWu9XK9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/arrow-left.js", + "node_modules/lucide-react/dist/esm/icons/award.js", + "node_modules/lucide-react/dist/esm/icons/bot.js", + "node_modules/lucide-react/dist/esm/icons/chart-column.js", + "node_modules/lucide-react/dist/esm/icons/chevron-right.js", + "node_modules/lucide-react/dist/esm/icons/circle-pause.js", + "node_modules/lucide-react/dist/esm/icons/circle-play.js", + "node_modules/lucide-react/dist/esm/icons/cloud-off.js", + "node_modules/lucide-react/dist/esm/icons/gauge.js", + "node_modules/lucide-react/dist/esm/icons/user-round.js", + "node_modules/lucide-react/dist/esm/icons/wifi.js", + "src/components/features/sparring/SparringSetup.tsx", + "src/components/features/sparring/SparringRound.tsx", + "node_modules/recharts/es6/polar/PolarGrid.js", + "node_modules/lodash/head.js", + "node_modules/lodash/first.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/first.js?commonjs-es-import", + "node_modules/recharts/es6/polar/Radar.js", + "node_modules/recharts/es6/chart/RadarChart.js", + "src/components/features/sparring/SparringScorecard.tsx", + "src/pages/SparringPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/SparringPage.tsx" + }, + { + "file": "assets/arrow-right-DgBYKnNo.js", + "bytes": 161, + "gzipBytes": 161, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/arrow-right.js" + ], + "staticMembership": [ + "/", + "/app" + ], + "dynamicEntry": "_arrow-right-DgBYKnNo.js" + }, + { + "file": "assets/circle-help-57I9vNIu.js", + "bytes": 230, + "gzipBytes": 196, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-help.js" + ], + "staticMembership": [], + "dynamicEntry": "_circle-help-57I9vNIu.js" + }, + { + "file": "assets/markdown-D7H1fUC4.js", + "bytes": 119379, + "gzipBytes": 36769, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/devlop/lib/default.js", + "node_modules/comma-separated-tokens/index.js", + "node_modules/estree-util-is-identifier-name/lib/index.js", + "node_modules/hast-util-whitespace/lib/index.js", + "node_modules/property-information/lib/util/schema.js", + "node_modules/property-information/lib/util/merge.js", + "node_modules/property-information/lib/normalize.js", + "node_modules/property-information/lib/util/info.js", + "node_modules/property-information/lib/util/types.js", + "node_modules/property-information/lib/util/defined-info.js", + "node_modules/property-information/lib/util/create.js", + "node_modules/property-information/lib/aria.js", + "node_modules/property-information/lib/util/case-sensitive-transform.js", + "node_modules/property-information/lib/util/case-insensitive-transform.js", + "node_modules/property-information/lib/html.js", + "node_modules/property-information/lib/svg.js", + "node_modules/property-information/lib/xlink.js", + "node_modules/property-information/lib/xmlns.js", + "node_modules/property-information/lib/xml.js", + "node_modules/property-information/lib/hast-to-react.js", + "node_modules/property-information/lib/find.js", + "node_modules/property-information/index.js", + "node_modules/space-separated-tokens/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/style-to-object/cjs/index.js?commonjs-exports", + "node_modules/inline-style-parser/cjs/index.js", + "node_modules/style-to-object/cjs/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/style-to-js/cjs/utilities.js?commonjs-exports", + "node_modules/style-to-js/cjs/utilities.js", + "node_modules/style-to-js/cjs/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/style-to-js/cjs/index.js?commonjs-es-import", + "node_modules/unist-util-position/lib/index.js", + "node_modules/unist-util-stringify-position/lib/index.js", + "node_modules/vfile-message/lib/index.js", + "node_modules/hast-util-to-jsx-runtime/lib/index.js", + "node_modules/html-url-attributes/lib/index.js", + "node_modules/mdast-util-to-string/lib/index.js", + "node_modules/decode-named-character-reference/index.dom.js", + "node_modules/micromark-util-chunked/index.js", + "node_modules/micromark-util-combine-extensions/index.js", + "node_modules/micromark-util-decode-numeric-character-reference/index.js", + "node_modules/micromark-util-normalize-identifier/index.js", + "node_modules/micromark-util-character/index.js", + "node_modules/micromark-util-sanitize-uri/index.js", + "node_modules/micromark-factory-space/index.js", + "node_modules/micromark/lib/initialize/content.js", + "node_modules/micromark/lib/initialize/document.js", + "node_modules/micromark-util-classify-character/index.js", + "node_modules/micromark-util-resolve-all/index.js", + "node_modules/micromark-core-commonmark/lib/attention.js", + "node_modules/micromark-core-commonmark/lib/autolink.js", + "node_modules/micromark-core-commonmark/lib/blank-line.js", + "node_modules/micromark-core-commonmark/lib/block-quote.js", + "node_modules/micromark-core-commonmark/lib/character-escape.js", + "node_modules/micromark-core-commonmark/lib/character-reference.js", + "node_modules/micromark-core-commonmark/lib/code-fenced.js", + "node_modules/micromark-core-commonmark/lib/code-indented.js", + "node_modules/micromark-core-commonmark/lib/code-text.js", + "node_modules/micromark-util-subtokenize/lib/splice-buffer.js", + "node_modules/micromark-util-subtokenize/index.js", + "node_modules/micromark-core-commonmark/lib/content.js", + "node_modules/micromark-factory-destination/index.js", + "node_modules/micromark-factory-label/index.js", + "node_modules/micromark-factory-title/index.js", + "node_modules/micromark-factory-whitespace/index.js", + "node_modules/micromark-core-commonmark/lib/definition.js", + "node_modules/micromark-core-commonmark/lib/hard-break-escape.js", + "node_modules/micromark-core-commonmark/lib/heading-atx.js", + "node_modules/micromark-util-html-tag-name/index.js", + "node_modules/micromark-core-commonmark/lib/html-flow.js", + "node_modules/micromark-core-commonmark/lib/html-text.js", + "node_modules/micromark-core-commonmark/lib/label-end.js", + "node_modules/micromark-core-commonmark/lib/label-start-image.js", + "node_modules/micromark-core-commonmark/lib/label-start-link.js", + "node_modules/micromark-core-commonmark/lib/line-ending.js", + "node_modules/micromark-core-commonmark/lib/thematic-break.js", + "node_modules/micromark-core-commonmark/lib/list.js", + "node_modules/micromark-core-commonmark/lib/setext-underline.js", + "node_modules/micromark/lib/initialize/flow.js", + "node_modules/micromark/lib/initialize/text.js", + "node_modules/micromark/lib/constructs.js", + "node_modules/micromark/lib/create-tokenizer.js", + "node_modules/micromark/lib/parse.js", + "node_modules/micromark/lib/postprocess.js", + "node_modules/micromark/lib/preprocess.js", + "node_modules/micromark-util-decode-string/index.js", + "node_modules/mdast-util-from-markdown/lib/index.js", + "node_modules/remark-parse/lib/index.js", + "node_modules/mdast-util-to-hast/lib/handlers/blockquote.js", + "node_modules/mdast-util-to-hast/lib/handlers/break.js", + "node_modules/mdast-util-to-hast/lib/handlers/code.js", + "node_modules/mdast-util-to-hast/lib/handlers/delete.js", + "node_modules/mdast-util-to-hast/lib/handlers/emphasis.js", + "node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js", + "node_modules/mdast-util-to-hast/lib/handlers/heading.js", + "node_modules/mdast-util-to-hast/lib/handlers/html.js", + "node_modules/mdast-util-to-hast/lib/revert.js", + "node_modules/mdast-util-to-hast/lib/handlers/image-reference.js", + "node_modules/mdast-util-to-hast/lib/handlers/image.js", + "node_modules/mdast-util-to-hast/lib/handlers/inline-code.js", + "node_modules/mdast-util-to-hast/lib/handlers/link-reference.js", + "node_modules/mdast-util-to-hast/lib/handlers/link.js", + "node_modules/mdast-util-to-hast/lib/handlers/list-item.js", + "node_modules/mdast-util-to-hast/lib/handlers/list.js", + "node_modules/mdast-util-to-hast/lib/handlers/paragraph.js", + "node_modules/mdast-util-to-hast/lib/handlers/root.js", + "node_modules/mdast-util-to-hast/lib/handlers/strong.js", + "node_modules/mdast-util-to-hast/lib/handlers/table.js", + "node_modules/mdast-util-to-hast/lib/handlers/table-row.js", + "node_modules/mdast-util-to-hast/lib/handlers/table-cell.js", + "node_modules/trim-lines/index.js", + "node_modules/mdast-util-to-hast/lib/handlers/text.js", + "node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js", + "node_modules/mdast-util-to-hast/lib/handlers/index.js", + "node_modules/@ungap/structured-clone/esm/types.js", + "node_modules/@ungap/structured-clone/esm/deserialize.js", + "node_modules/@ungap/structured-clone/esm/serialize.js", + "node_modules/@ungap/structured-clone/esm/index.js", + "node_modules/mdast-util-to-hast/lib/footer.js", + "node_modules/unist-util-is/lib/index.js", + "node_modules/unist-util-visit-parents/lib/color.js", + "node_modules/unist-util-visit-parents/lib/index.js", + "node_modules/unist-util-visit/lib/index.js", + "node_modules/mdast-util-to-hast/lib/state.js", + "node_modules/mdast-util-to-hast/lib/index.js", + "node_modules/remark-rehype/lib/index.js", + "node_modules/bail/index.js", + "node_modules/extend/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/extend/index.js?commonjs-es-import", + "node_modules/is-plain-obj/index.js", + "node_modules/trough/lib/index.js", + "node_modules/vfile/lib/minpath.browser.js", + "node_modules/vfile/lib/minproc.browser.js", + "node_modules/vfile/lib/minurl.shared.js", + "node_modules/vfile/lib/minurl.browser.js", + "node_modules/vfile/lib/index.js", + "node_modules/unified/lib/callable-instance.js", + "node_modules/unified/lib/index.js", + "node_modules/react-markdown/lib/index.js", + "src/components/ui/markdown.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_markdown-D7H1fUC4.js" + }, + { + "file": "assets/ModelSelector-DslLRZjt.js", + "bytes": 2513, + "gzipBytes": 1082, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/badge--S7rRRa_.js", + "assets/use-subscription-C0XrPVqO.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/cpu.js", + "src/components/ModelSelector.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_ModelSelector-DslLRZjt.js" + }, + { + "file": "assets/clock-3-DXL97kin.js", + "bytes": 178, + "gzipBytes": 169, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/clock-3.js" + ], + "staticMembership": [], + "dynamicEntry": "_clock-3-DXL97kin.js" + }, + { + "file": "assets/send-BdjSbyuU.js", + "bytes": 287, + "gzipBytes": 225, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/send.js" + ], + "staticMembership": [], + "dynamicEntry": "_send-BdjSbyuU.js" + }, + { + "file": "assets/client-BTq6F-PU.js", + "bytes": 39898, + "gzipBytes": 13788, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/url-I6ZuTOfd.js" + ], + "modules": [ + "node_modules/zod/v4/classic/coerce.js", + "src/lib/ai/schemas/generate.ts", + "src/lib/ai/providers/mock-provider.ts", + "src/lib/ai/schemas/attack.ts", + "src/lib/ai/schemas/factoids.ts", + "src/lib/ai/schemas/ask.ts", + "src/lib/validation/url.ts", + "src/lib/ai/client.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_client-BTq6F-PU.js" + }, + { + "file": "assets/url-I6ZuTOfd.js", + "bytes": 179, + "gzipBytes": 167, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "src/lib/ai/schemas/url.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_url-I6ZuTOfd.js" + }, + { + "file": "assets/file-text-DcHyYoya.js", + "bytes": 329, + "gzipBytes": 214, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/file-text.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack", + "/app/history" + ], + "dynamicEntry": "_file-text-DcHyYoya.js" + }, + { + "file": "assets/progress-BxcfcTfE.js", + "bytes": 2198, + "gzipBytes": 1095, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/@radix-ui/react-progress/dist/index.mjs", + "src/components/ui/progress.tsx" + ], + "staticMembership": [ + "/app/attack" + ], + "dynamicEntry": "_progress-BxcfcTfE.js" + }, + { + "file": "assets/FlowchartPage-DSdPyTg-.js", + "bytes": 50508, + "gzipBytes": 16778, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/card-D6eub4N8.js", + "assets/badge--S7rRRa_.js", + "assets/input-CnrYjqwN.js", + "assets/textarea-g0WOpBON.js", + "assets/alert-dialog-C83-hcvs.js", + "assets/index-D0At4Kou.js", + "assets/trash-2-DyFY_1qQ.js", + "assets/save-Dk4dYhHU.js", + "assets/plus-DRncpdwv.js", + "assets/download-Buou6_Ok.js", + "assets/target-DKppQCPt.js", + "assets/shield-1K71PF3Z.js", + "assets/triangle-alert-DSvIrkJI.js", + "assets/string-cKWu9XK9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/folder-open.js", + "node_modules/lucide-react/dist/esm/icons/layout-grid.js", + "node_modules/@reactflow/minimap/node_modules/zustand/esm/shallow.mjs", + "node_modules/@reactflow/minimap/dist/esm/index.mjs", + "node_modules/@reactflow/controls/node_modules/zustand/esm/shallow.mjs", + "node_modules/@reactflow/controls/dist/esm/index.mjs", + "node_modules/@reactflow/background/node_modules/zustand/esm/shallow.mjs", + "node_modules/@reactflow/background/dist/esm/index.mjs", + "node_modules/reactflow/dist/style.css", + "node_modules/html-to-image/es/util.js", + "node_modules/html-to-image/es/clone-pseudos.js", + "node_modules/html-to-image/es/mimes.js", + "node_modules/html-to-image/es/dataurl.js", + "node_modules/html-to-image/es/clone-node.js", + "node_modules/html-to-image/es/embed-resources.js", + "node_modules/html-to-image/es/embed-images.js", + "node_modules/html-to-image/es/apply-style.js", + "node_modules/html-to-image/es/embed-webfonts.js", + "node_modules/html-to-image/es/index.js", + "node_modules/date-fns/toDate.mjs", + "node_modules/date-fns/constructFrom.mjs", + "node_modules/date-fns/constants.mjs", + "node_modules/date-fns/_lib/defaultOptions.mjs", + "node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs", + "node_modules/date-fns/compareAsc.mjs", + "node_modules/date-fns/constructNow.mjs", + "node_modules/date-fns/differenceInCalendarMonths.mjs", + "node_modules/date-fns/_lib/getRoundingMethod.mjs", + "node_modules/date-fns/differenceInMilliseconds.mjs", + "node_modules/date-fns/endOfDay.mjs", + "node_modules/date-fns/endOfMonth.mjs", + "node_modules/date-fns/isLastDayOfMonth.mjs", + "node_modules/date-fns/differenceInMonths.mjs", + "node_modules/date-fns/differenceInSeconds.mjs", + "node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs", + "node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs", + "node_modules/date-fns/locale/en-US/_lib/formatLong.mjs", + "node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs", + "node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs", + "node_modules/date-fns/locale/en-US/_lib/localize.mjs", + "node_modules/date-fns/locale/_lib/buildMatchFn.mjs", + "node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs", + "node_modules/date-fns/locale/en-US/_lib/match.mjs", + "node_modules/date-fns/locale/en-US.mjs", + "node_modules/date-fns/formatDistance.mjs", + "node_modules/date-fns/formatDistanceToNow.mjs", + "src/pages/FlowchartPage.tsx" + ], + "staticMembership": [ + "/app/flowchart" + ], + "dynamicEntry": "src/pages/FlowchartPage.tsx" + }, + { + "file": "assets/index-D0At4Kou.js", + "bytes": 127878, + "gzipBytes": 41138, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/string-cKWu9XK9.js" + ], + "modules": [ + "node_modules/classcat/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/shim/with-selector.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/shim/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js?commonjs-exports", + "node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js", + "node_modules/use-sync-external-store/shim/index.js", + "node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js", + "node_modules/use-sync-external-store/shim/with-selector.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/use-sync-external-store/shim/with-selector.js?commonjs-es-import", + "node_modules/@reactflow/core/node_modules/zustand/esm/vanilla.mjs", + "node_modules/@reactflow/core/node_modules/zustand/esm/traditional.mjs", + "node_modules/@reactflow/core/node_modules/zustand/esm/shallow.mjs", + "node_modules/d3-dispatch/src/dispatch.js", + "node_modules/d3-selection/src/namespaces.js", + "node_modules/d3-selection/src/namespace.js", + "node_modules/d3-selection/src/creator.js", + "node_modules/d3-selection/src/selector.js", + "node_modules/d3-selection/src/selection/select.js", + "node_modules/d3-selection/src/array.js", + "node_modules/d3-selection/src/selectorAll.js", + "node_modules/d3-selection/src/selection/selectAll.js", + "node_modules/d3-selection/src/matcher.js", + "node_modules/d3-selection/src/selection/selectChild.js", + "node_modules/d3-selection/src/selection/selectChildren.js", + "node_modules/d3-selection/src/selection/filter.js", + "node_modules/d3-selection/src/selection/sparse.js", + "node_modules/d3-selection/src/selection/enter.js", + "node_modules/d3-selection/src/constant.js", + "node_modules/d3-selection/src/selection/data.js", + "node_modules/d3-selection/src/selection/exit.js", + "node_modules/d3-selection/src/selection/join.js", + "node_modules/d3-selection/src/selection/merge.js", + "node_modules/d3-selection/src/selection/order.js", + "node_modules/d3-selection/src/selection/sort.js", + "node_modules/d3-selection/src/selection/call.js", + "node_modules/d3-selection/src/selection/nodes.js", + "node_modules/d3-selection/src/selection/node.js", + "node_modules/d3-selection/src/selection/size.js", + "node_modules/d3-selection/src/selection/empty.js", + "node_modules/d3-selection/src/selection/each.js", + "node_modules/d3-selection/src/selection/attr.js", + "node_modules/d3-selection/src/window.js", + "node_modules/d3-selection/src/selection/style.js", + "node_modules/d3-selection/src/selection/property.js", + "node_modules/d3-selection/src/selection/classed.js", + "node_modules/d3-selection/src/selection/text.js", + "node_modules/d3-selection/src/selection/html.js", + "node_modules/d3-selection/src/selection/raise.js", + "node_modules/d3-selection/src/selection/lower.js", + "node_modules/d3-selection/src/selection/append.js", + "node_modules/d3-selection/src/selection/insert.js", + "node_modules/d3-selection/src/selection/remove.js", + "node_modules/d3-selection/src/selection/clone.js", + "node_modules/d3-selection/src/selection/datum.js", + "node_modules/d3-selection/src/selection/on.js", + "node_modules/d3-selection/src/selection/dispatch.js", + "node_modules/d3-selection/src/selection/iterator.js", + "node_modules/d3-selection/src/selection/index.js", + "node_modules/d3-selection/src/select.js", + "node_modules/d3-selection/src/sourceEvent.js", + "node_modules/d3-selection/src/pointer.js", + "node_modules/d3-drag/src/noevent.js", + "node_modules/d3-drag/src/nodrag.js", + "node_modules/d3-drag/src/constant.js", + "node_modules/d3-drag/src/event.js", + "node_modules/d3-drag/src/drag.js", + "node_modules/d3-interpolate/src/transform/decompose.js", + "node_modules/d3-interpolate/src/transform/parse.js", + "node_modules/d3-interpolate/src/transform/index.js", + "node_modules/d3-interpolate/src/zoom.js", + "node_modules/d3-timer/src/timer.js", + "node_modules/d3-timer/src/timeout.js", + "node_modules/d3-transition/src/transition/schedule.js", + "node_modules/d3-transition/src/interrupt.js", + "node_modules/d3-transition/src/selection/interrupt.js", + "node_modules/d3-transition/src/transition/tween.js", + "node_modules/d3-transition/src/transition/interpolate.js", + "node_modules/d3-transition/src/transition/attr.js", + "node_modules/d3-transition/src/transition/attrTween.js", + "node_modules/d3-transition/src/transition/delay.js", + "node_modules/d3-transition/src/transition/duration.js", + "node_modules/d3-transition/src/transition/ease.js", + "node_modules/d3-transition/src/transition/easeVarying.js", + "node_modules/d3-transition/src/transition/filter.js", + "node_modules/d3-transition/src/transition/merge.js", + "node_modules/d3-transition/src/transition/on.js", + "node_modules/d3-transition/src/transition/remove.js", + "node_modules/d3-transition/src/transition/select.js", + "node_modules/d3-transition/src/transition/selectAll.js", + "node_modules/d3-transition/src/transition/selection.js", + "node_modules/d3-transition/src/transition/style.js", + "node_modules/d3-transition/src/transition/styleTween.js", + "node_modules/d3-transition/src/transition/text.js", + "node_modules/d3-transition/src/transition/textTween.js", + "node_modules/d3-transition/src/transition/transition.js", + "node_modules/d3-transition/src/transition/end.js", + "node_modules/d3-transition/src/transition/index.js", + "node_modules/d3-ease/src/cubic.js", + "node_modules/d3-transition/src/selection/transition.js", + "node_modules/d3-transition/src/selection/index.js", + "node_modules/d3-zoom/src/constant.js", + "node_modules/d3-zoom/src/event.js", + "node_modules/d3-zoom/src/transform.js", + "node_modules/d3-zoom/src/noevent.js", + "node_modules/d3-zoom/src/zoom.js", + "node_modules/@reactflow/core/dist/esm/index.mjs" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart" + ], + "dynamicEntry": "_index-D0At4Kou.js" + }, + { + "file": "assets/triangle-alert-DSvIrkJI.js", + "bytes": 261, + "gzipBytes": 209, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/triangle-alert.js" + ], + "staticMembership": [ + "/app/generate", + "/app/attack", + "/app/flowchart" + ], + "dynamicEntry": "_triangle-alert-DSvIrkJI.js" + }, + { + "file": "assets/plus-DRncpdwv.js", + "bytes": 150, + "gzipBytes": 147, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/plus.js" + ], + "staticMembership": [ + "/app/flowchart" + ], + "dynamicEntry": "_plus-DRncpdwv.js" + }, + { + "file": "assets/save-Dk4dYhHU.js", + "bytes": 324, + "gzipBytes": 223, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/save.js" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart" + ], + "dynamicEntry": "_save-Dk4dYhHU.js" + }, + { + "file": "assets/download-Buou6_Ok.js", + "bytes": 259, + "gzipBytes": 215, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/download.js" + ], + "staticMembership": [ + "/app/flowchart" + ], + "dynamicEntry": "_download-Buou6_Ok.js" + }, + { + "file": "assets/target-DKppQCPt.js", + "bytes": 218, + "gzipBytes": 157, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/target.js" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart" + ], + "dynamicEntry": "_target-DKppQCPt.js" + }, + { + "file": "assets/SettingsPage-Du1uLT74.js", + "bytes": 16455, + "gzipBytes": 5488, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/card-D6eub4N8.js", + "assets/badge--S7rRRa_.js", + "assets/use-subscription-C0XrPVqO.js", + "assets/PricingModal-CEXuD9Wb.js", + "assets/date-format-CfassM9h.js", + "assets/input-CnrYjqwN.js", + "assets/crown-D4N948KJ.js", + "assets/credit-card-vZ_cZe0e.js", + "assets/zap-EoS37zre.js", + "assets/shield-1K71PF3Z.js", + "assets/trash-2-DyFY_1qQ.js", + "assets/edge-function-error-dlcwXP30.js" + ], + "modules": [ + "node_modules/@tanstack/query-core/build/modern/queryObserver.js", + "node_modules/@tanstack/react-query/build/modern/IsRestoringProvider.js", + "node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js", + "node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js", + "node_modules/@tanstack/react-query/build/modern/suspense.js", + "node_modules/@tanstack/react-query/build/modern/useBaseQuery.js", + "node_modules/@tanstack/react-query/build/modern/useQuery.js", + "src/pages/SettingsPage.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/SettingsPage.tsx" + }, + { + "file": "assets/PricingModal-CEXuD9Wb.js", + "bytes": 5547, + "gzipBytes": 1893, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/input-CnrYjqwN.js", + "assets/badge--S7rRRa_.js", + "assets/edge-function-error-dlcwXP30.js", + "assets/crown-D4N948KJ.js", + "assets/zap-EoS37zre.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/lock.js", + "src/lib/stripe.ts", + "src/components/features/subscription/PricingModal.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_PricingModal-CEXuD9Wb.js" + }, + { + "file": "assets/crown-D4N948KJ.js", + "bytes": 359, + "gzipBytes": 253, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/crown.js" + ], + "staticMembership": [ + "/", + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_crown-D4N948KJ.js" + }, + { + "file": "assets/zap-EoS37zre.js", + "bytes": 259, + "gzipBytes": 207, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/zap.js" + ], + "staticMembership": [ + "/", + "/app/generate", + "/app/attack", + "/app/history" + ], + "dynamicEntry": "_zap-EoS37zre.js" + }, + { + "file": "assets/edge-function-error-dlcwXP30.js", + "bytes": 694, + "gzipBytes": 378, + "imports": [], + "modules": [ + "src/lib/supabase/edge-function-error.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_edge-function-error-dlcwXP30.js" + }, + { + "file": "assets/use-subscription-C0XrPVqO.js", + "bytes": 2232, + "gzipBytes": 1002, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "src/hooks/use-subscription.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/attack" + ], + "dynamicEntry": "_use-subscription-C0XrPVqO.js" + }, + { + "file": "assets/AdminPage-B43vuwcQ.js", + "bytes": 77428, + "gzipBytes": 20327, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/card-D6eub4N8.js", + "assets/input-CnrYjqwN.js", + "assets/badge--S7rRRa_.js", + "assets/tabs-mlEhuh6x.js", + "assets/scroll-area-BR8Yasj-.js", + "assets/date-format-CfassM9h.js", + "assets/checkbox-_MXGNjmt.js", + "assets/textarea-g0WOpBON.js", + "assets/alert-dialog-C83-hcvs.js", + "assets/search-BZV0xrgm.js", + "assets/trash-2-DyFY_1qQ.js", + "assets/shield-1K71PF3Z.js", + "assets/circle-alert-Chv9CSFv.js", + "assets/users-Dw3Op9EO.js", + "assets/credit-card-vZ_cZe0e.js", + "assets/generateCategoricalChart-CN74Z58N.js", + "assets/copy-DjMDGCvS.js", + "assets/rotate-ccw-BuOm1Tl2.js", + "assets/string-cKWu9XK9.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/activity.js", + "node_modules/lucide-react/dist/esm/icons/ban.js", + "node_modules/lucide-react/dist/esm/icons/dollar-sign.js", + "node_modules/lucide-react/dist/esm/icons/gift.js", + "node_modules/lucide-react/dist/esm/icons/key-round.js", + "node_modules/lucide-react/dist/esm/icons/settings-2.js", + "node_modules/lucide-react/dist/esm/icons/ticket.js", + "node_modules/lucide-react/dist/esm/icons/user-check.js", + "node_modules/recharts/es6/polar/Pie.js", + "node_modules/recharts/es6/util/getEveryNthWithCondition.js", + "node_modules/recharts/es6/util/TickUtils.js", + "node_modules/recharts/es6/cartesian/getEquidistantTicks.js", + "node_modules/recharts/es6/cartesian/getTicks.js", + "node_modules/recharts/es6/cartesian/CartesianAxis.js", + "node_modules/recharts/es6/cartesian/CartesianGrid.js", + "node_modules/recharts/es6/cartesian/XAxis.js", + "node_modules/recharts/es6/cartesian/YAxis.js", + "node_modules/recharts/es6/chart/BarChart.js", + "node_modules/recharts/es6/chart/PieChart.js", + "src/components/admin/AdminAnnouncements.tsx", + "src/pages/AdminPage.tsx" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "src/pages/AdminPage.tsx" + }, + { + "file": "assets/users-Dw3Op9EO.js", + "bytes": 301, + "gzipBytes": 223, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/users.js" + ], + "staticMembership": [ + "/", + "/app/admin" + ], + "dynamicEntry": "_users-Dw3Op9EO.js" + }, + { + "file": "assets/checkbox-_MXGNjmt.js", + "bytes": 4320, + "gzipBytes": 1874, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/@radix-ui/react-checkbox/dist/index.mjs", + "src/components/ui/checkbox.tsx" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_checkbox-_MXGNjmt.js" + }, + { + "file": "assets/tabs-mlEhuh6x.js", + "bytes": 7560, + "gzipBytes": 2988, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/@radix-ui/react-use-is-hydrated/dist/index.mjs", + "node_modules/@radix-ui/react-roving-focus/dist/index.mjs", + "node_modules/@radix-ui/react-tabs/dist/index.mjs", + "src/components/ui/tabs.tsx" + ], + "staticMembership": [ + "/login", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_tabs-mlEhuh6x.js" + }, + { + "file": "assets/scroll-area-BR8Yasj-.js", + "bytes": 13530, + "gzipBytes": 4251, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/@radix-ui/react-scroll-area/dist/index.mjs", + "src/components/ui/scroll-area.tsx" + ], + "staticMembership": [ + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_scroll-area-BR8Yasj-.js" + }, + { + "file": "assets/copy-DjMDGCvS.js", + "bytes": 228, + "gzipBytes": 204, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/copy.js" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_copy-DjMDGCvS.js" + }, + { + "file": "assets/search-BZV0xrgm.js", + "bytes": 164, + "gzipBytes": 164, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/search.js" + ], + "staticMembership": [ + "/", + "/app/attack", + "/app/admin" + ], + "dynamicEntry": "_search-BZV0xrgm.js" + }, + { + "file": "assets/generateCategoricalChart-CN74Z58N.js", + "bytes": 364541, + "gzipBytes": 99154, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/string-cKWu9XK9.js" + ], + "modules": [ + "node_modules/d3-interpolate/src/numberArray.js", + "node_modules/d3-interpolate/src/array.js", + "node_modules/d3-interpolate/src/date.js", + "node_modules/d3-interpolate/src/object.js", + "node_modules/d3-interpolate/src/value.js", + "node_modules/d3-interpolate/src/round.js", + "node_modules/d3-interpolate/src/piecewise.js", + "node_modules/lodash/isArray.js", + "node_modules/lodash/_freeGlobal.js", + "node_modules/lodash/_root.js", + "node_modules/lodash/_Symbol.js", + "node_modules/lodash/_getRawTag.js", + "node_modules/lodash/_objectToString.js", + "node_modules/lodash/_baseGetTag.js", + "node_modules/lodash/isObjectLike.js", + "node_modules/lodash/isSymbol.js", + "node_modules/lodash/_isKey.js", + "node_modules/lodash/isObject.js", + "node_modules/lodash/isFunction.js", + "node_modules/lodash/_coreJsData.js", + "node_modules/lodash/_isMasked.js", + "node_modules/lodash/_toSource.js", + "node_modules/lodash/_baseIsNative.js", + "node_modules/lodash/_getValue.js", + "node_modules/lodash/_getNative.js", + "node_modules/lodash/_nativeCreate.js", + "node_modules/lodash/_hashClear.js", + "node_modules/lodash/_hashDelete.js", + "node_modules/lodash/_hashGet.js", + "node_modules/lodash/_hashHas.js", + "node_modules/lodash/_hashSet.js", + "node_modules/lodash/_Hash.js", + "node_modules/lodash/_listCacheClear.js", + "node_modules/lodash/eq.js", + "node_modules/lodash/_assocIndexOf.js", + "node_modules/lodash/_listCacheDelete.js", + "node_modules/lodash/_listCacheGet.js", + "node_modules/lodash/_listCacheHas.js", + "node_modules/lodash/_listCacheSet.js", + "node_modules/lodash/_ListCache.js", + "node_modules/lodash/_Map.js", + "node_modules/lodash/_mapCacheClear.js", + "node_modules/lodash/_isKeyable.js", + "node_modules/lodash/_getMapData.js", + "node_modules/lodash/_mapCacheDelete.js", + "node_modules/lodash/_mapCacheGet.js", + "node_modules/lodash/_mapCacheHas.js", + "node_modules/lodash/_mapCacheSet.js", + "node_modules/lodash/_MapCache.js", + "node_modules/lodash/memoize.js", + "node_modules/lodash/_memoizeCapped.js", + "node_modules/lodash/_stringToPath.js", + "node_modules/lodash/_arrayMap.js", + "node_modules/lodash/_baseToString.js", + "node_modules/lodash/toString.js", + "node_modules/lodash/_castPath.js", + "node_modules/lodash/_toKey.js", + "node_modules/lodash/_baseGet.js", + "node_modules/lodash/get.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/get.js?commonjs-es-import", + "node_modules/lodash/isNil.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isNil.js?commonjs-es-import", + "node_modules/lodash/isString.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isString.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isFunction.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isObject.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/recharts/node_modules/react-is/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/recharts/node_modules/react-is/cjs/react-is.production.min.js?commonjs-exports", + "node_modules/recharts/node_modules/react-is/cjs/react-is.production.min.js", + "node_modules/recharts/node_modules/react-is/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/recharts/node_modules/react-is/index.js?commonjs-es-import", + "node_modules/lodash/isNumber.js", + "node_modules/lodash/isNaN.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isNaN.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isNumber.js?commonjs-es-import", + "node_modules/recharts/es6/util/DataUtils.js", + "node_modules/recharts/es6/util/ShallowEqual.js", + "node_modules/recharts/es6/util/types.js", + "node_modules/recharts/es6/util/ReactUtils.js", + "node_modules/recharts/es6/container/Surface.js", + "node_modules/recharts/es6/container/Layer.js", + "node_modules/recharts/es6/util/LogUtils.js", + "node_modules/lodash/_baseSlice.js", + "node_modules/lodash/_castSlice.js", + "node_modules/lodash/_hasUnicode.js", + "node_modules/lodash/_asciiToArray.js", + "node_modules/lodash/_unicodeToArray.js", + "node_modules/lodash/_stringToArray.js", + "node_modules/lodash/_createCaseFirst.js", + "node_modules/lodash/upperFirst.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/upperFirst.js?commonjs-es-import", + "node_modules/d3-shape/src/constant.js", + "node_modules/d3-shape/src/math.js", + "node_modules/d3-path/src/path.js", + "node_modules/d3-shape/src/path.js", + "node_modules/d3-shape/src/array.js", + "node_modules/d3-shape/src/curve/linear.js", + "node_modules/d3-shape/src/point.js", + "node_modules/d3-shape/src/line.js", + "node_modules/d3-shape/src/area.js", + "node_modules/d3-shape/src/curve/bump.js", + "node_modules/d3-shape/src/symbol/circle.js", + "node_modules/d3-shape/src/symbol/cross.js", + "node_modules/d3-shape/src/symbol/diamond.js", + "node_modules/d3-shape/src/symbol/square.js", + "node_modules/d3-shape/src/symbol/star.js", + "node_modules/d3-shape/src/symbol/triangle.js", + "node_modules/d3-shape/src/symbol/wye.js", + "node_modules/d3-shape/src/symbol.js", + "node_modules/d3-shape/src/noop.js", + "node_modules/d3-shape/src/curve/basis.js", + "node_modules/d3-shape/src/curve/basisClosed.js", + "node_modules/d3-shape/src/curve/basisOpen.js", + "node_modules/d3-shape/src/curve/linearClosed.js", + "node_modules/d3-shape/src/curve/monotone.js", + "node_modules/d3-shape/src/curve/natural.js", + "node_modules/d3-shape/src/curve/step.js", + "node_modules/d3-shape/src/offset/none.js", + "node_modules/d3-shape/src/order/none.js", + "node_modules/d3-shape/src/stack.js", + "node_modules/d3-shape/src/offset/expand.js", + "node_modules/d3-shape/src/offset/silhouette.js", + "node_modules/d3-shape/src/offset/wiggle.js", + "node_modules/recharts/es6/shape/Symbols.js", + "node_modules/recharts/es6/component/DefaultLegendContent.js", + "node_modules/lodash/_stackClear.js", + "node_modules/lodash/_stackDelete.js", + "node_modules/lodash/_stackGet.js", + "node_modules/lodash/_stackHas.js", + "node_modules/lodash/_stackSet.js", + "node_modules/lodash/_Stack.js", + "node_modules/lodash/_setCacheAdd.js", + "node_modules/lodash/_setCacheHas.js", + "node_modules/lodash/_SetCache.js", + "node_modules/lodash/_arraySome.js", + "node_modules/lodash/_cacheHas.js", + "node_modules/lodash/_equalArrays.js", + "node_modules/lodash/_Uint8Array.js", + "node_modules/lodash/_mapToArray.js", + "node_modules/lodash/_setToArray.js", + "node_modules/lodash/_equalByTag.js", + "node_modules/lodash/_arrayPush.js", + "node_modules/lodash/_baseGetAllKeys.js", + "node_modules/lodash/_arrayFilter.js", + "node_modules/lodash/stubArray.js", + "node_modules/lodash/_getSymbols.js", + "node_modules/lodash/_baseTimes.js", + "node_modules/lodash/_baseIsArguments.js", + "node_modules/lodash/isArguments.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isBuffer.js?commonjs-module", + "node_modules/lodash/stubFalse.js", + "node_modules/lodash/isBuffer.js", + "node_modules/lodash/_isIndex.js", + "node_modules/lodash/isLength.js", + "node_modules/lodash/_baseIsTypedArray.js", + "node_modules/lodash/_baseUnary.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/_nodeUtil.js?commonjs-module", + "node_modules/lodash/_nodeUtil.js", + "node_modules/lodash/isTypedArray.js", + "node_modules/lodash/_arrayLikeKeys.js", + "node_modules/lodash/_isPrototype.js", + "node_modules/lodash/_overArg.js", + "node_modules/lodash/_nativeKeys.js", + "node_modules/lodash/_baseKeys.js", + "node_modules/lodash/isArrayLike.js", + "node_modules/lodash/keys.js", + "node_modules/lodash/_getAllKeys.js", + "node_modules/lodash/_equalObjects.js", + "node_modules/lodash/_DataView.js", + "node_modules/lodash/_Promise.js", + "node_modules/lodash/_Set.js", + "node_modules/lodash/_WeakMap.js", + "node_modules/lodash/_getTag.js", + "node_modules/lodash/_baseIsEqualDeep.js", + "node_modules/lodash/_baseIsEqual.js", + "node_modules/lodash/_baseIsMatch.js", + "node_modules/lodash/_isStrictComparable.js", + "node_modules/lodash/_getMatchData.js", + "node_modules/lodash/_matchesStrictComparable.js", + "node_modules/lodash/_baseMatches.js", + "node_modules/lodash/_baseHasIn.js", + "node_modules/lodash/_hasPath.js", + "node_modules/lodash/hasIn.js", + "node_modules/lodash/_baseMatchesProperty.js", + "node_modules/lodash/identity.js", + "node_modules/lodash/_baseProperty.js", + "node_modules/lodash/_basePropertyDeep.js", + "node_modules/lodash/property.js", + "node_modules/lodash/_baseIteratee.js", + "node_modules/lodash/_baseFindIndex.js", + "node_modules/lodash/_baseIsNaN.js", + "node_modules/lodash/_strictIndexOf.js", + "node_modules/lodash/_baseIndexOf.js", + "node_modules/lodash/_arrayIncludes.js", + "node_modules/lodash/_arrayIncludesWith.js", + "node_modules/lodash/noop.js", + "node_modules/lodash/_createSet.js", + "node_modules/lodash/_baseUniq.js", + "node_modules/lodash/uniqBy.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/uniqBy.js?commonjs-es-import", + "node_modules/recharts/es6/util/payload/getUniqPayload.js", + "node_modules/recharts/es6/component/Legend.js", + "node_modules/lodash/_isFlattenable.js", + "node_modules/lodash/_baseFlatten.js", + "node_modules/lodash/_createBaseFor.js", + "node_modules/lodash/_baseFor.js", + "node_modules/lodash/_baseForOwn.js", + "node_modules/lodash/_createBaseEach.js", + "node_modules/lodash/_baseEach.js", + "node_modules/lodash/_baseMap.js", + "node_modules/lodash/_baseSortBy.js", + "node_modules/lodash/_compareAscending.js", + "node_modules/lodash/_compareMultiple.js", + "node_modules/lodash/_baseOrderBy.js", + "node_modules/lodash/_apply.js", + "node_modules/lodash/_overRest.js", + "node_modules/lodash/constant.js", + "node_modules/lodash/_defineProperty.js", + "node_modules/lodash/_baseSetToString.js", + "node_modules/lodash/_shortOut.js", + "node_modules/lodash/_setToString.js", + "node_modules/lodash/_baseRest.js", + "node_modules/lodash/_isIterateeCall.js", + "node_modules/lodash/sortBy.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/sortBy.js?commonjs-es-import", + "node_modules/recharts/es6/component/DefaultTooltipContent.js", + "node_modules/recharts/es6/util/tooltip/translate.js", + "node_modules/recharts/es6/component/TooltipBoundingBox.js", + "node_modules/recharts/es6/util/Global.js", + "node_modules/recharts/es6/component/Tooltip.js", + "node_modules/lodash/now.js", + "node_modules/lodash/_trimmedEndIndex.js", + "node_modules/lodash/_baseTrim.js", + "node_modules/lodash/toNumber.js", + "node_modules/lodash/debounce.js", + "node_modules/lodash/throttle.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/throttle.js?commonjs-es-import", + "node_modules/recharts/es6/component/ResponsiveContainer.js", + "node_modules/recharts/es6/component/Cell.js", + "node_modules/recharts/es6/util/DOMUtils.js", + "node_modules/recharts/es6/util/ReduceCSSCalc.js", + "node_modules/recharts/es6/component/Text.js", + "node_modules/d3-array/src/ascending.js", + "node_modules/d3-array/src/descending.js", + "node_modules/d3-array/src/bisector.js", + "node_modules/d3-array/src/number.js", + "node_modules/d3-array/src/bisect.js", + "node_modules/internmap/src/index.js", + "node_modules/d3-array/src/sort.js", + "node_modules/d3-array/src/ticks.js", + "node_modules/d3-array/src/max.js", + "node_modules/d3-array/src/min.js", + "node_modules/d3-array/src/quickselect.js", + "node_modules/d3-array/src/quantile.js", + "node_modules/d3-array/src/range.js", + "node_modules/d3-scale/src/init.js", + "node_modules/d3-scale/src/ordinal.js", + "node_modules/d3-scale/src/band.js", + "node_modules/d3-scale/src/constant.js", + "node_modules/d3-scale/src/number.js", + "node_modules/d3-scale/src/continuous.js", + "node_modules/d3-format/src/formatDecimal.js", + "node_modules/d3-format/src/exponent.js", + "node_modules/d3-format/src/formatGroup.js", + "node_modules/d3-format/src/formatNumerals.js", + "node_modules/d3-format/src/formatSpecifier.js", + "node_modules/d3-format/src/formatTrim.js", + "node_modules/d3-format/src/formatPrefixAuto.js", + "node_modules/d3-format/src/formatRounded.js", + "node_modules/d3-format/src/formatTypes.js", + "node_modules/d3-format/src/identity.js", + "node_modules/d3-format/src/locale.js", + "node_modules/d3-format/src/defaultLocale.js", + "node_modules/d3-format/src/precisionFixed.js", + "node_modules/d3-format/src/precisionPrefix.js", + "node_modules/d3-format/src/precisionRound.js", + "node_modules/d3-scale/src/tickFormat.js", + "node_modules/d3-scale/src/linear.js", + "node_modules/d3-scale/src/identity.js", + "node_modules/d3-scale/src/nice.js", + "node_modules/d3-scale/src/log.js", + "node_modules/d3-scale/src/symlog.js", + "node_modules/d3-scale/src/pow.js", + "node_modules/d3-scale/src/radial.js", + "node_modules/d3-scale/src/quantile.js", + "node_modules/d3-scale/src/quantize.js", + "node_modules/d3-scale/src/threshold.js", + "node_modules/d3-time/src/interval.js", + "node_modules/d3-time/src/millisecond.js", + "node_modules/d3-time/src/duration.js", + "node_modules/d3-time/src/second.js", + "node_modules/d3-time/src/minute.js", + "node_modules/d3-time/src/hour.js", + "node_modules/d3-time/src/day.js", + "node_modules/d3-time/src/week.js", + "node_modules/d3-time/src/month.js", + "node_modules/d3-time/src/year.js", + "node_modules/d3-time/src/ticks.js", + "node_modules/d3-time-format/src/locale.js", + "node_modules/d3-time-format/src/defaultLocale.js", + "node_modules/d3-scale/src/time.js", + "node_modules/d3-scale/src/utcTime.js", + "node_modules/d3-scale/src/sequential.js", + "node_modules/d3-scale/src/sequentialQuantile.js", + "node_modules/d3-scale/src/diverging.js", + "node_modules/victory-vendor/es/d3-scale.js", + "node_modules/lodash/_baseExtremum.js", + "node_modules/lodash/_baseGt.js", + "node_modules/lodash/max.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/max.js?commonjs-es-import", + "node_modules/lodash/_baseLt.js", + "node_modules/lodash/min.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/min.js?commonjs-es-import", + "node_modules/lodash/map.js", + "node_modules/lodash/flatMap.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/flatMap.js?commonjs-es-import", + "node_modules/lodash/isEqual.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isEqual.js?commonjs-es-import", + "node_modules/decimal.js-light/decimal.mjs", + "node_modules/recharts-scale/es6/util/utils.js", + "node_modules/recharts-scale/es6/util/arithmetic.js", + "node_modules/recharts-scale/es6/getNiceTickValues.js", + "node_modules/tiny-invariant/dist/esm/tiny-invariant.js", + "node_modules/recharts/es6/cartesian/ErrorBar.js", + "node_modules/recharts/es6/util/getLegendProps.js", + "node_modules/recharts/es6/util/ChartUtils.js", + "node_modules/recharts/es6/util/PolarUtils.js", + "node_modules/recharts/es6/component/Label.js", + "node_modules/lodash/last.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/last.js?commonjs-es-import", + "node_modules/recharts/es6/component/LabelList.js", + "node_modules/recharts/es6/shape/Sector.js", + "node_modules/recharts/es6/shape/Curve.js", + "node_modules/fast-equals/dist/es/index.mjs", + "node_modules/react-smooth/es6/setRafTimeout.js", + "node_modules/react-smooth/es6/AnimateManager.js", + "node_modules/react-smooth/es6/util.js", + "node_modules/react-smooth/es6/easing.js", + "node_modules/react-smooth/es6/configUpdate.js", + "node_modules/react-smooth/es6/Animate.js", + "node_modules/recharts/es6/shape/Rectangle.js", + "node_modules/recharts/es6/shape/Polygon.js", + "node_modules/recharts/es6/shape/Dot.js", + "node_modules/recharts/es6/shape/Cross.js", + "node_modules/lodash/maxBy.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/maxBy.js?commonjs-es-import", + "node_modules/lodash/minBy.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/minBy.js?commonjs-es-import", + "node_modules/recharts/es6/polar/PolarRadiusAxis.js", + "node_modules/recharts/es6/polar/PolarAngleAxis.js", + "node_modules/lodash/_getPrototype.js", + "node_modules/lodash/isPlainObject.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isPlainObject.js?commonjs-es-import", + "node_modules/lodash/isBoolean.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/isBoolean.js?commonjs-es-import", + "node_modules/recharts/es6/shape/Trapezoid.js", + "node_modules/recharts/es6/util/ActiveShapeUtils.js", + "node_modules/lodash/_baseRange.js", + "node_modules/lodash/toFinite.js", + "node_modules/lodash/_createRange.js", + "node_modules/lodash/range.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/range.js?commonjs-es-import", + "node_modules/recharts/es6/util/CssPrefixUtils.js", + "node_modules/recharts/es6/cartesian/Brush.js", + "node_modules/lodash/_baseSome.js", + "node_modules/lodash/some.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/some.js?commonjs-es-import", + "node_modules/recharts/es6/util/IfOverflowMatches.js", + "node_modules/lodash/_baseAssignValue.js", + "node_modules/lodash/mapValues.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/mapValues.js?commonjs-es-import", + "node_modules/lodash/_arrayEvery.js", + "node_modules/lodash/_baseEvery.js", + "node_modules/lodash/every.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/every.js?commonjs-es-import", + "node_modules/recharts/es6/util/BarUtils.js", + "node_modules/recharts/es6/cartesian/Bar.js", + "node_modules/recharts/es6/util/CartesianUtils.js", + "node_modules/lodash/_createFind.js", + "node_modules/lodash/toInteger.js", + "node_modules/lodash/findIndex.js", + "node_modules/lodash/find.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/find.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lodash/memoize.js?commonjs-es-import", + "node_modules/recharts/es6/util/calculateViewBox.js", + "node_modules/recharts/es6/context/chartLayoutContext.js", + "node_modules/recharts/es6/cartesian/ReferenceLine.js", + "node_modules/recharts/es6/cartesian/ReferenceDot.js", + "node_modules/recharts/es6/cartesian/ReferenceArea.js", + "node_modules/recharts/es6/util/DetectReferenceElementsDomain.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/eventemitter3/index.js?commonjs-module", + "node_modules/eventemitter3/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/eventemitter3/index.js?commonjs-es-import", + "node_modules/recharts/es6/util/Events.js", + "node_modules/recharts/es6/chart/AccessibilityManager.js", + "node_modules/recharts/es6/util/isDomainSpecifiedByUser.js", + "node_modules/recharts/es6/util/cursor/getCursorRectangle.js", + "node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js", + "node_modules/recharts/es6/util/cursor/getCursorPoints.js", + "node_modules/recharts/es6/component/Cursor.js", + "node_modules/recharts/es6/chart/generateCategoricalChart.js" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_generateCategoricalChart-CN74Z58N.js" + }, + { + "file": "assets/circle-alert-Chv9CSFv.js", + "bytes": 246, + "gzipBytes": 185, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/circle-alert.js" + ], + "staticMembership": [ + "/app/attack", + "/app/admin" + ], + "dynamicEntry": "_circle-alert-Chv9CSFv.js" + }, + { + "file": "assets/rotate-ccw-BuOm1Tl2.js", + "bytes": 196, + "gzipBytes": 181, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/rotate-ccw.js" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_rotate-ccw-BuOm1Tl2.js" + }, + { + "file": "assets/alert-dialog-C83-hcvs.js", + "bytes": 3698, + "gzipBytes": 1235, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/@radix-ui/react-alert-dialog/dist/index.mjs", + "src/components/ui/alert-dialog.tsx" + ], + "staticMembership": [ + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_alert-dialog-C83-hcvs.js" + }, + { + "file": "assets/string-cKWu9XK9.js", + "bytes": 8378, + "gzipBytes": 3585, + "imports": [], + "modules": [ + "node_modules/d3-color/src/define.js", + "node_modules/d3-color/src/color.js", + "node_modules/d3-interpolate/src/constant.js", + "node_modules/d3-interpolate/src/color.js", + "node_modules/d3-interpolate/src/rgb.js", + "node_modules/d3-interpolate/src/number.js", + "node_modules/d3-interpolate/src/string.js" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart", + "/app/admin" + ], + "dynamicEntry": "_string-cKWu9XK9.js" + }, + { + "file": "assets/textarea-g0WOpBON.js", + "bytes": 508, + "gzipBytes": 334, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "src/components/ui/textarea.tsx" + ], + "staticMembership": [ + "/app/attack", + "/app/flowchart", + "/app/admin" + ], + "dynamicEntry": "_textarea-g0WOpBON.js" + }, + { + "file": "assets/credit-card-vZ_cZe0e.js", + "bytes": 203, + "gzipBytes": 184, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/credit-card.js" + ], + "staticMembership": [ + "/app/admin" + ], + "dynamicEntry": "_credit-card-vZ_cZe0e.js" + }, + { + "file": "assets/shield-1K71PF3Z.js", + "bytes": 269, + "gzipBytes": 222, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/shield.js" + ], + "staticMembership": [ + "/app/generate", + "/app/flowchart", + "/app/admin" + ], + "dynamicEntry": "_shield-1K71PF3Z.js" + }, + { + "file": "assets/input-CnrYjqwN.js", + "bytes": 593, + "gzipBytes": 362, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "src/components/ui/input.tsx" + ], + "staticMembership": [ + "/login", + "/app/generate", + "/app/attack", + "/app/flowchart", + "/app/admin" + ], + "dynamicEntry": "_input-CnrYjqwN.js" + }, + { + "file": "assets/trash-2-DyFY_1qQ.js", + "bytes": 354, + "gzipBytes": 244, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/lucide-react/dist/esm/icons/trash-2.js" + ], + "staticMembership": [ + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_trash-2-DyFY_1qQ.js" + }, + { + "file": "assets/badge--S7rRRa_.js", + "bytes": 796, + "gzipBytes": 406, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "src/components/ui/badge.tsx" + ], + "staticMembership": [ + "/app/generate", + "/app/attack", + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_badge--S7rRRa_.js" + }, + { + "file": "assets/card-D6eub4N8.js", + "bytes": 1004, + "gzipBytes": 387, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "src/components/ui/card.tsx" + ], + "staticMembership": [ + "/login", + "/app", + "/app/generate", + "/app/attack", + "/app/flowchart", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_card-D6eub4N8.js" + }, + { + "file": "assets/NotFound-DbKaJf8M.js", + "bytes": 659, + "gzipBytes": 381, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "src/pages/NotFound.tsx" + ], + "staticMembership": [], + "dynamicEntry": "src/pages/NotFound.tsx" + }, + { + "file": "assets/web-DDWreN7n.js", + "bytes": 843, + "gzipBytes": 401, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/@capacitor/app/dist/esm/web.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@capacitor/app/dist/esm/web.js" + }, + { + "file": "assets/web-CxvXmWEI.js", + "bytes": 899, + "gzipBytes": 458, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/@capacitor/haptics/dist/esm/web.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@capacitor/haptics/dist/esm/web.js" + }, + { + "file": "assets/web-DlhCIZla.js", + "bytes": 380, + "gzipBytes": 254, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/@capacitor/browser/dist/esm/web.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/@capacitor/browser/dist/esm/web.js" + }, + { + "file": "assets/export-utils-dKtA7aoI.js", + "bytes": 17952, + "gzipBytes": 4364, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/date-format-CfassM9h.js" + ], + "modules": [ + "src/lib/export-utils.ts" + ], + "staticMembership": [], + "dynamicEntry": "src/lib/export-utils.ts" + }, + { + "file": "assets/pdf-export-utils-DYKMwf6W.js", + "bytes": 13432, + "gzipBytes": 4521, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/date-format-CfassM9h.js" + ], + "modules": [ + "src/lib/pdf-export-utils.ts" + ], + "staticMembership": [], + "dynamicEntry": "src/lib/pdf-export-utils.ts" + }, + { + "file": "assets/date-format-CfassM9h.js", + "bytes": 693, + "gzipBytes": 314, + "imports": [], + "modules": [ + "src/lib/date-format.ts" + ], + "staticMembership": [ + "/app/generate", + "/app/history", + "/app/admin" + ], + "dynamicEntry": "_date-format-CfassM9h.js" + }, + { + "file": "assets/index-DFp_HAie.js", + "bytes": 504096, + "gzipBytes": 131454, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/index.js?commonjs-exports", + "node_modules/underscore/modules/_setup.js", + "node_modules/underscore/modules/restArguments.js", + "node_modules/underscore/modules/isObject.js", + "node_modules/underscore/modules/isNull.js", + "node_modules/underscore/modules/isUndefined.js", + "node_modules/underscore/modules/isBoolean.js", + "node_modules/underscore/modules/isElement.js", + "node_modules/underscore/modules/_tagTester.js", + "node_modules/underscore/modules/isString.js", + "node_modules/underscore/modules/isNumber.js", + "node_modules/underscore/modules/isDate.js", + "node_modules/underscore/modules/isRegExp.js", + "node_modules/underscore/modules/isError.js", + "node_modules/underscore/modules/isSymbol.js", + "node_modules/underscore/modules/isArrayBuffer.js", + "node_modules/underscore/modules/isFunction.js", + "node_modules/underscore/modules/_hasObjectTag.js", + "node_modules/underscore/modules/_stringTagBug.js", + "node_modules/underscore/modules/isDataView.js", + "node_modules/underscore/modules/isArray.js", + "node_modules/underscore/modules/_has.js", + "node_modules/underscore/modules/isArguments.js", + "node_modules/underscore/modules/isFinite.js", + "node_modules/underscore/modules/isNaN.js", + "node_modules/underscore/modules/constant.js", + "node_modules/underscore/modules/_createSizePropertyCheck.js", + "node_modules/underscore/modules/_shallowProperty.js", + "node_modules/underscore/modules/_getByteLength.js", + "node_modules/underscore/modules/_isBufferLike.js", + "node_modules/underscore/modules/isTypedArray.js", + "node_modules/underscore/modules/_getLength.js", + "node_modules/underscore/modules/_collectNonEnumProps.js", + "node_modules/underscore/modules/keys.js", + "node_modules/underscore/modules/isEmpty.js", + "node_modules/underscore/modules/isMatch.js", + "node_modules/underscore/modules/underscore.js", + "node_modules/underscore/modules/_toBufferView.js", + "node_modules/underscore/modules/isEqual.js", + "node_modules/underscore/modules/allKeys.js", + "node_modules/underscore/modules/_methodFingerprint.js", + "node_modules/underscore/modules/isMap.js", + "node_modules/underscore/modules/isWeakMap.js", + "node_modules/underscore/modules/isSet.js", + "node_modules/underscore/modules/isWeakSet.js", + "node_modules/underscore/modules/values.js", + "node_modules/underscore/modules/pairs.js", + "node_modules/underscore/modules/invert.js", + "node_modules/underscore/modules/functions.js", + "node_modules/underscore/modules/_createAssigner.js", + "node_modules/underscore/modules/extend.js", + "node_modules/underscore/modules/extendOwn.js", + "node_modules/underscore/modules/defaults.js", + "node_modules/underscore/modules/_baseCreate.js", + "node_modules/underscore/modules/create.js", + "node_modules/underscore/modules/clone.js", + "node_modules/underscore/modules/tap.js", + "node_modules/underscore/modules/toPath.js", + "node_modules/underscore/modules/_toPath.js", + "node_modules/underscore/modules/_deepGet.js", + "node_modules/underscore/modules/get.js", + "node_modules/underscore/modules/has.js", + "node_modules/underscore/modules/identity.js", + "node_modules/underscore/modules/matcher.js", + "node_modules/underscore/modules/property.js", + "node_modules/underscore/modules/_optimizeCb.js", + "node_modules/underscore/modules/_baseIteratee.js", + "node_modules/underscore/modules/iteratee.js", + "node_modules/underscore/modules/_cb.js", + "node_modules/underscore/modules/mapObject.js", + "node_modules/underscore/modules/noop.js", + "node_modules/underscore/modules/propertyOf.js", + "node_modules/underscore/modules/times.js", + "node_modules/underscore/modules/random.js", + "node_modules/underscore/modules/now.js", + "node_modules/underscore/modules/_createEscaper.js", + "node_modules/underscore/modules/_escapeMap.js", + "node_modules/underscore/modules/escape.js", + "node_modules/underscore/modules/_unescapeMap.js", + "node_modules/underscore/modules/unescape.js", + "node_modules/underscore/modules/templateSettings.js", + "node_modules/underscore/modules/template.js", + "node_modules/underscore/modules/result.js", + "node_modules/underscore/modules/uniqueId.js", + "node_modules/underscore/modules/chain.js", + "node_modules/underscore/modules/_executeBound.js", + "node_modules/underscore/modules/partial.js", + "node_modules/underscore/modules/bind.js", + "node_modules/underscore/modules/_isArrayLike.js", + "node_modules/underscore/modules/_flatten.js", + "node_modules/underscore/modules/bindAll.js", + "node_modules/underscore/modules/memoize.js", + "node_modules/underscore/modules/delay.js", + "node_modules/underscore/modules/defer.js", + "node_modules/underscore/modules/throttle.js", + "node_modules/underscore/modules/debounce.js", + "node_modules/underscore/modules/wrap.js", + "node_modules/underscore/modules/negate.js", + "node_modules/underscore/modules/compose.js", + "node_modules/underscore/modules/after.js", + "node_modules/underscore/modules/before.js", + "node_modules/underscore/modules/once.js", + "node_modules/underscore/modules/findKey.js", + "node_modules/underscore/modules/_createPredicateIndexFinder.js", + "node_modules/underscore/modules/findIndex.js", + "node_modules/underscore/modules/findLastIndex.js", + "node_modules/underscore/modules/sortedIndex.js", + "node_modules/underscore/modules/_createIndexFinder.js", + "node_modules/underscore/modules/indexOf.js", + "node_modules/underscore/modules/lastIndexOf.js", + "node_modules/underscore/modules/find.js", + "node_modules/underscore/modules/findWhere.js", + "node_modules/underscore/modules/each.js", + "node_modules/underscore/modules/map.js", + "node_modules/underscore/modules/_createReduce.js", + "node_modules/underscore/modules/reduce.js", + "node_modules/underscore/modules/reduceRight.js", + "node_modules/underscore/modules/filter.js", + "node_modules/underscore/modules/reject.js", + "node_modules/underscore/modules/every.js", + "node_modules/underscore/modules/some.js", + "node_modules/underscore/modules/contains.js", + "node_modules/underscore/modules/invoke.js", + "node_modules/underscore/modules/pluck.js", + "node_modules/underscore/modules/where.js", + "node_modules/underscore/modules/max.js", + "node_modules/underscore/modules/min.js", + "node_modules/underscore/modules/toArray.js", + "node_modules/underscore/modules/sample.js", + "node_modules/underscore/modules/shuffle.js", + "node_modules/underscore/modules/sortBy.js", + "node_modules/underscore/modules/_group.js", + "node_modules/underscore/modules/groupBy.js", + "node_modules/underscore/modules/indexBy.js", + "node_modules/underscore/modules/countBy.js", + "node_modules/underscore/modules/partition.js", + "node_modules/underscore/modules/size.js", + "node_modules/underscore/modules/_keyInObj.js", + "node_modules/underscore/modules/pick.js", + "node_modules/underscore/modules/omit.js", + "node_modules/underscore/modules/initial.js", + "node_modules/underscore/modules/first.js", + "node_modules/underscore/modules/rest.js", + "node_modules/underscore/modules/last.js", + "node_modules/underscore/modules/compact.js", + "node_modules/underscore/modules/flatten.js", + "node_modules/underscore/modules/difference.js", + "node_modules/underscore/modules/without.js", + "node_modules/underscore/modules/uniq.js", + "node_modules/underscore/modules/union.js", + "node_modules/underscore/modules/intersection.js", + "node_modules/underscore/modules/unzip.js", + "node_modules/underscore/modules/zip.js", + "node_modules/underscore/modules/object.js", + "node_modules/underscore/modules/range.js", + "node_modules/underscore/modules/chunk.js", + "node_modules/underscore/modules/_chainResult.js", + "node_modules/underscore/modules/mixin.js", + "node_modules/underscore/modules/underscore-array-methods.js", + "node_modules/underscore/modules/index.js", + "node_modules/underscore/modules/index-default.js", + "node_modules/underscore/modules/index-all.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/underscore/modules/index-all.js?commonjs-proxy", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/docx-reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/promises.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/bluebird/js/release/promise.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/bluebird/js/release/es5.js?commonjs-module", + "node_modules/bluebird/js/release/es5.js", + "node_modules/bluebird/js/release/util.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/bluebird/js/release/async.js?commonjs-module", + "node_modules/bluebird/js/release/schedule.js", + "node_modules/bluebird/js/release/queue.js", + "node_modules/bluebird/js/release/async.js", + "node_modules/bluebird/js/release/errors.js", + "node_modules/bluebird/js/release/thenables.js", + "node_modules/bluebird/js/release/promise_array.js", + "node_modules/bluebird/js/release/context.js", + "node_modules/bluebird/js/release/debuggability.js", + "node_modules/bluebird/js/release/finally.js", + "node_modules/bluebird/js/release/catch_filter.js", + "node_modules/bluebird/js/release/nodeback.js", + "node_modules/bluebird/js/release/method.js", + "node_modules/bluebird/js/release/bind.js", + "node_modules/bluebird/js/release/cancel.js", + "node_modules/bluebird/js/release/direct_resolve.js", + "node_modules/bluebird/js/release/synchronous_inspection.js", + "node_modules/bluebird/js/release/join.js", + "node_modules/bluebird/js/release/map.js", + "node_modules/bluebird/js/release/call_get.js", + "node_modules/bluebird/js/release/using.js", + "node_modules/bluebird/js/release/timers.js", + "node_modules/bluebird/js/release/generators.js", + "node_modules/bluebird/js/release/nodeify.js", + "node_modules/bluebird/js/release/promisify.js", + "node_modules/bluebird/js/release/props.js", + "node_modules/bluebird/js/release/race.js", + "node_modules/bluebird/js/release/reduce.js", + "node_modules/bluebird/js/release/settle.js", + "node_modules/bluebird/js/release/some.js", + "node_modules/bluebird/js/release/filter.js", + "node_modules/bluebird/js/release/each.js", + "node_modules/bluebird/js/release/any.js", + "node_modules/bluebird/js/release/promise.js", + "node_modules/mammoth/lib/promises.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/documents.js?commonjs-exports", + "node_modules/mammoth/lib/documents.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/results.js?commonjs-exports", + "node_modules/mammoth/lib/results.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/zipfile.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/base64-js/index.js?commonjs-exports", + "node_modules/base64-js/index.js", + "\u0000commonjs-dynamic-modules", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/jszip/dist/jszip.min.js?commonjs-module", + "node_modules/jszip/dist/jszip.min.js", + "node_modules/mammoth/lib/zipfile.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/office-xml-reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/nodes.js?commonjs-exports", + "node_modules/mammoth/lib/xml/nodes.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/xmldom.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/dom.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/conventions.js?commonjs-exports", + "node_modules/@xmldom/xmldom/lib/conventions.js", + "node_modules/@xmldom/xmldom/lib/dom.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/dom-parser.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/entities.js?commonjs-exports", + "node_modules/@xmldom/xmldom/lib/entities.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/@xmldom/xmldom/lib/sax.js?commonjs-exports", + "node_modules/@xmldom/xmldom/lib/sax.js", + "node_modules/@xmldom/xmldom/lib/dom-parser.js", + "node_modules/@xmldom/xmldom/lib/index.js", + "node_modules/mammoth/lib/xml/xmldom.js", + "node_modules/mammoth/lib/xml/reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/xml/writer.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/Utility.js?commonjs-exports", + "node_modules/xmlbuilder/lib/Utility.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDocument.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLNode.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLElement.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLAttribute.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLAttribute.js", + "node_modules/xmlbuilder/lib/XMLElement.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLCData.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLCData.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLComment.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLComment.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDeclaration.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDeclaration.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDocType.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDTDAttList.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDTDAttList.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDTDEntity.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDTDEntity.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDTDElement.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDTDElement.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDTDNotation.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDTDNotation.js", + "node_modules/xmlbuilder/lib/XMLDocType.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLRaw.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLRaw.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLText.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLText.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLProcessingInstruction.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDummy.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDummy.js", + "node_modules/xmlbuilder/lib/XMLNode.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLStringifier.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLStringifier.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLStringWriter.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLWriterBase.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLWriterBase.js", + "node_modules/xmlbuilder/lib/XMLStringWriter.js", + "node_modules/xmlbuilder/lib/XMLDocument.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLDocumentCB.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLDocumentCB.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/xmlbuilder/lib/XMLStreamWriter.js?commonjs-module", + "node_modules/xmlbuilder/lib/XMLStreamWriter.js", + "node_modules/xmlbuilder/lib/index.js", + "node_modules/mammoth/lib/xml/writer.js", + "node_modules/mammoth/lib/xml/index.js", + "node_modules/mammoth/lib/docx/office-xml-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/body-reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/dingbat-to-unicode/dist/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/dingbat-to-unicode/dist/dingbats.js?commonjs-exports", + "node_modules/dingbat-to-unicode/dist/dingbats.js", + "node_modules/dingbat-to-unicode/dist/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/transforms.js?commonjs-exports", + "node_modules/mammoth/lib/transforms.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/uris.js?commonjs-exports", + "node_modules/mammoth/lib/docx/uris.js", + "node_modules/mammoth/lib/docx/body-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/document-xml-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/document-xml-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/relationships-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/relationships-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/content-types-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/content-types-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/numbering-xml.js?commonjs-exports", + "node_modules/mammoth/lib/docx/numbering-xml.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/styles-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/styles-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/notes-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/notes-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/comments-reader.js?commonjs-exports", + "node_modules/mammoth/lib/docx/comments-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/browser/docx/files.js?commonjs-exports", + "node_modules/mammoth/browser/docx/files.js", + "node_modules/mammoth/lib/docx/docx-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/docx/style-map.js?commonjs-exports", + "node_modules/mammoth/lib/docx/style-map.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/document-to-html.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/styles/html-paths.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/html/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/html/ast.js?commonjs-exports", + "node_modules/mammoth/lib/html/ast.js", + "node_modules/mammoth/lib/html/simplify.js", + "node_modules/mammoth/lib/html/index.js", + "node_modules/mammoth/lib/styles/html-paths.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/images.js?commonjs-exports", + "node_modules/mammoth/lib/images.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/writers/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/writers/html-writer.js?commonjs-exports", + "node_modules/mammoth/lib/writers/html-writer.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/writers/markdown-writer.js?commonjs-exports", + "node_modules/mammoth/lib/writers/markdown-writer.js", + "node_modules/mammoth/lib/writers/index.js", + "node_modules/mammoth/lib/document-to-html.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/raw-text.js?commonjs-exports", + "node_modules/mammoth/lib/raw-text.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/style-reader.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/index.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/parser.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/TokenIterator.js?commonjs-module", + "node_modules/lop/lib/TokenIterator.js", + "node_modules/lop/lib/parser.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/rules.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/option/index.js?commonjs-exports", + "node_modules/option/index.js", + "node_modules/lop/lib/parsing-results.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/errors.js?commonjs-exports", + "node_modules/lop/lib/errors.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/lazy-iterators.js?commonjs-exports", + "node_modules/lop/lib/lazy-iterators.js", + "node_modules/lop/lib/rules.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/StringSource.js?commonjs-module", + "node_modules/lop/lib/StringSource.js", + "node_modules/lop/lib/Token.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/bottom-up.js?commonjs-exports", + "node_modules/lop/lib/bottom-up.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/lop/lib/regex-tokeniser.js?commonjs-exports", + "node_modules/lop/lib/regex-tokeniser.js", + "node_modules/lop/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/styles/document-matchers.js?commonjs-exports", + "node_modules/mammoth/lib/styles/document-matchers.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/styles/parser/tokeniser.js?commonjs-exports", + "node_modules/mammoth/lib/styles/parser/tokeniser.js", + "node_modules/mammoth/lib/style-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/options-reader.js?commonjs-exports", + "node_modules/mammoth/lib/options-reader.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/browser/unzip.js?commonjs-exports", + "node_modules/mammoth/browser/unzip.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/underline.js?commonjs-exports", + "node_modules/mammoth/lib/underline.js", + "node_modules/mammoth/lib/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/mammoth/lib/index.js?commonjs-es-import" + ], + "staticMembership": [], + "dynamicEntry": "_index-DFp_HAie.js" + }, + { + "file": "assets/pdf-ClZ_1Nv1.js", + "bytes": 495636, + "gzipBytes": 151463, + "imports": [], + "modules": [ + "node_modules/pdfjs-dist/legacy/build/pdf.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/pdfjs-dist/legacy/build/pdf.mjs" + }, + { + "file": "assets/index-BOF6v8rb.js", + "bytes": 410621, + "gzipBytes": 118834, + "imports": [], + "modules": [ + "node_modules/docx/dist/index.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/docx/dist/index.mjs" + }, + { + "file": "assets/FileSaver.min-DnytsR3g.js", + "bytes": 3037, + "gzipBytes": 1487, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/file-saver/dist/FileSaver.min.js?commonjs-module", + "node_modules/file-saver/dist/FileSaver.min.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/file-saver/dist/FileSaver.min.js?commonjs-es-import" + ], + "staticMembership": [], + "dynamicEntry": "_FileSaver.min-DnytsR3g.js" + }, + { + "file": "assets/jspdf.es.min-D0mWSedx.js", + "bytes": 386191, + "gzipBytes": 126393, + "imports": [ + "assets/index-D4jHDNYl.js" + ], + "modules": [ + "node_modules/@babel/runtime/helpers/esm/typeof.js", + "node_modules/fflate/esm/browser.js", + "node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js", + "node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js", + "node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js", + "node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js", + "node_modules/@babel/runtime/helpers/esm/nonIterableRest.js", + "node_modules/@babel/runtime/helpers/esm/slicedToArray.js", + "node_modules/iobuffer/lib-esm/text.js", + "node_modules/iobuffer/lib-esm/IOBuffer.js", + "node_modules/pako/dist/pako.esm.mjs", + "node_modules/fast-png/lib-esm/helpers/crc.js", + "node_modules/fast-png/lib-esm/helpers/unfilter.js", + "node_modules/fast-png/lib-esm/helpers/applyUnfilter.js", + "node_modules/fast-png/lib-esm/helpers/decodeInterlaceAdam7.js", + "node_modules/fast-png/lib-esm/helpers/decodeInterlaceNull.js", + "node_modules/fast-png/lib-esm/helpers/signature.js", + "node_modules/fast-png/lib-esm/helpers/text.js", + "node_modules/fast-png/lib-esm/internalTypes.js", + "node_modules/fast-png/lib-esm/PngDecoder.js", + "node_modules/fast-png/lib-esm/types.js", + "node_modules/fast-png/lib-esm/index.js", + "node_modules/jspdf/dist/jspdf.es.min.js" + ], + "staticMembership": [], + "dynamicEntry": "_jspdf.es.min-D0mWSedx.js" + }, + { + "file": "assets/jspdf.plugin.autotable-BBLUVd7n.js", + "bytes": 30934, + "gzipBytes": 9870, + "imports": [], + "modules": [ + "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.mjs" + }, + { + "file": "assets/html2canvas.esm-DXEQVQnt.js", + "bytes": 201041, + "gzipBytes": 47431, + "imports": [], + "modules": [ + "node_modules/html2canvas/dist/html2canvas.esm.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/html2canvas/dist/html2canvas.esm.js" + }, + { + "file": "assets/purify.es-4eNOHKSq.js", + "bytes": 28741, + "gzipBytes": 11017, + "imports": [], + "modules": [ + "node_modules/dompurify/dist/purify.es.mjs" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/dompurify/dist/purify.es.mjs" + }, + { + "file": "assets/index.es-_A4ItKWd.js", + "bytes": 158950, + "gzipBytes": 53058, + "imports": [ + "assets/index-D4jHDNYl.js", + "assets/jspdf.es.min-D0mWSedx.js" + ], + "modules": [ + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.constructor.js?commonjs-exports", + "node_modules/core-js/internals/global-this.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-get-own-property-descriptor.js?commonjs-exports", + "node_modules/core-js/internals/fails.js", + "node_modules/core-js/internals/descriptors.js", + "node_modules/core-js/internals/function-bind-native.js", + "node_modules/core-js/internals/function-call.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-property-is-enumerable.js?commonjs-exports", + "node_modules/core-js/internals/object-property-is-enumerable.js", + "node_modules/core-js/internals/create-property-descriptor.js", + "node_modules/core-js/internals/function-uncurry-this.js", + "node_modules/core-js/internals/classof-raw.js", + "node_modules/core-js/internals/indexed-object.js", + "node_modules/core-js/internals/is-null-or-undefined.js", + "node_modules/core-js/internals/require-object-coercible.js", + "node_modules/core-js/internals/to-indexed-object.js", + "node_modules/core-js/internals/is-callable.js", + "node_modules/core-js/internals/is-object.js", + "node_modules/core-js/internals/get-built-in.js", + "node_modules/core-js/internals/object-is-prototype-of.js", + "node_modules/core-js/internals/environment-user-agent.js", + "node_modules/core-js/internals/environment-v8-version.js", + "node_modules/core-js/internals/symbol-constructor-detection.js", + "node_modules/core-js/internals/use-symbol-as-uid.js", + "node_modules/core-js/internals/is-symbol.js", + "node_modules/core-js/internals/try-to-string.js", + "node_modules/core-js/internals/a-callable.js", + "node_modules/core-js/internals/get-method.js", + "node_modules/core-js/internals/ordinary-to-primitive.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/shared-store.js?commonjs-module", + "node_modules/core-js/internals/is-pure.js", + "node_modules/core-js/internals/define-global-property.js", + "node_modules/core-js/internals/shared-store.js", + "node_modules/core-js/internals/shared.js", + "node_modules/core-js/internals/to-object.js", + "node_modules/core-js/internals/has-own-property.js", + "node_modules/core-js/internals/uid.js", + "node_modules/core-js/internals/well-known-symbol.js", + "node_modules/core-js/internals/to-primitive.js", + "node_modules/core-js/internals/to-property-key.js", + "node_modules/core-js/internals/document-create-element.js", + "node_modules/core-js/internals/ie8-dom-define.js", + "node_modules/core-js/internals/object-get-own-property-descriptor.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-define-property.js?commonjs-exports", + "node_modules/core-js/internals/v8-prototype-define-bug.js", + "node_modules/core-js/internals/an-object.js", + "node_modules/core-js/internals/object-define-property.js", + "node_modules/core-js/internals/create-non-enumerable-property.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/make-built-in.js?commonjs-module", + "node_modules/core-js/internals/function-name.js", + "node_modules/core-js/internals/inspect-source.js", + "node_modules/core-js/internals/weak-map-basic-detection.js", + "node_modules/core-js/internals/shared-key.js", + "node_modules/core-js/internals/hidden-keys.js", + "node_modules/core-js/internals/internal-state.js", + "node_modules/core-js/internals/make-built-in.js", + "node_modules/core-js/internals/define-built-in.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-get-own-property-names.js?commonjs-exports", + "node_modules/core-js/internals/math-trunc.js", + "node_modules/core-js/internals/to-integer-or-infinity.js", + "node_modules/core-js/internals/to-absolute-index.js", + "node_modules/core-js/internals/to-length.js", + "node_modules/core-js/internals/length-of-array-like.js", + "node_modules/core-js/internals/array-includes.js", + "node_modules/core-js/internals/object-keys-internal.js", + "node_modules/core-js/internals/enum-bug-keys.js", + "node_modules/core-js/internals/object-get-own-property-names.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-get-own-property-symbols.js?commonjs-exports", + "node_modules/core-js/internals/object-get-own-property-symbols.js", + "node_modules/core-js/internals/own-keys.js", + "node_modules/core-js/internals/copy-constructor-properties.js", + "node_modules/core-js/internals/is-forced.js", + "node_modules/core-js/internals/export.js", + "node_modules/core-js/internals/environment.js", + "node_modules/core-js/internals/environment-is-node.js", + "node_modules/core-js/internals/path.js", + "node_modules/core-js/internals/function-uncurry-this-accessor.js", + "node_modules/core-js/internals/is-possible-prototype.js", + "node_modules/core-js/internals/a-possible-prototype.js", + "node_modules/core-js/internals/object-set-prototype-of.js", + "node_modules/core-js/internals/set-to-string-tag.js", + "node_modules/core-js/internals/define-built-in-accessor.js", + "node_modules/core-js/internals/set-species.js", + "node_modules/core-js/internals/an-instance.js", + "node_modules/core-js/internals/to-string-tag-support.js", + "node_modules/core-js/internals/classof.js", + "node_modules/core-js/internals/is-constructor.js", + "node_modules/core-js/internals/a-constructor.js", + "node_modules/core-js/internals/species-constructor.js", + "node_modules/core-js/internals/function-apply.js", + "node_modules/core-js/internals/function-uncurry-this-clause.js", + "node_modules/core-js/internals/function-bind-context.js", + "node_modules/core-js/internals/html.js", + "node_modules/core-js/internals/array-slice.js", + "node_modules/core-js/internals/validate-arguments-length.js", + "node_modules/core-js/internals/environment-is-ios.js", + "node_modules/core-js/internals/task.js", + "node_modules/core-js/internals/safe-get-built-in.js", + "node_modules/core-js/internals/queue.js", + "node_modules/core-js/internals/environment-is-ios-pebble.js", + "node_modules/core-js/internals/environment-is-webos-webkit.js", + "node_modules/core-js/internals/microtask.js", + "node_modules/core-js/internals/host-report-errors.js", + "node_modules/core-js/internals/perform.js", + "node_modules/core-js/internals/promise-native-constructor.js", + "node_modules/core-js/internals/promise-constructor-detection.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/new-promise-capability.js?commonjs-exports", + "node_modules/core-js/internals/new-promise-capability.js", + "node_modules/core-js/modules/es.promise.constructor.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.all.js?commonjs-exports", + "node_modules/core-js/internals/iterators.js", + "node_modules/core-js/internals/is-array-iterator-method.js", + "node_modules/core-js/internals/get-iterator-method-internal.js", + "node_modules/core-js/internals/get-iterator-internal.js", + "node_modules/core-js/internals/iterator-close.js", + "node_modules/core-js/internals/iterate.js", + "node_modules/core-js/internals/check-correctness-of-iteration.js", + "node_modules/core-js/internals/promise-statics-incorrect-iteration.js", + "node_modules/core-js/modules/es.promise.all.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.catch.js?commonjs-exports", + "node_modules/core-js/modules/es.promise.catch.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.race.js?commonjs-exports", + "node_modules/core-js/modules/es.promise.race.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.reject.js?commonjs-exports", + "node_modules/core-js/modules/es.promise.reject.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.resolve.js?commonjs-exports", + "node_modules/core-js/internals/promise-resolve.js", + "node_modules/core-js/modules/es.promise.resolve.js", + "node_modules/core-js/modules/es.promise.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.promise.js?commonjs-es-import", + "node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.match.js?commonjs-exports", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.regexp.exec.js?commonjs-exports", + "node_modules/core-js/internals/to-string.js", + "node_modules/core-js/internals/regexp-flags.js", + "node_modules/core-js/internals/regexp-sticky-helpers.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/internals/object-define-properties.js?commonjs-exports", + "node_modules/core-js/internals/object-keys.js", + "node_modules/core-js/internals/object-define-properties.js", + "node_modules/core-js/internals/object-create.js", + "node_modules/core-js/internals/regexp-unsupported-dot-all.js", + "node_modules/core-js/internals/regexp-unsupported-ncg.js", + "node_modules/core-js/internals/regexp-exec.js", + "node_modules/core-js/modules/es.regexp.exec.js", + "node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js", + "node_modules/core-js/internals/string-multibyte.js", + "node_modules/core-js/internals/advance-string-index.js", + "node_modules/core-js/internals/regexp-flags-detection.js", + "node_modules/core-js/internals/regexp-get-flags.js", + "node_modules/core-js/internals/regexp-exec-abstract.js", + "node_modules/core-js/modules/es.string.match.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.match.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.replace.js?commonjs-exports", + "node_modules/core-js/internals/get-substitution.js", + "node_modules/core-js/modules/es.string.replace.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.replace.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.starts-with.js?commonjs-exports", + "node_modules/core-js/internals/is-regexp.js", + "node_modules/core-js/internals/not-a-regexp.js", + "node_modules/core-js/internals/correct-is-regexp-logic.js", + "node_modules/core-js/modules/es.string.starts-with.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.starts-with.js?commonjs-es-import", + "node_modules/core-js/internals/add-to-unscopables.js", + "node_modules/core-js/internals/correct-prototype-getter.js", + "node_modules/core-js/internals/object-get-prototype-of.js", + "node_modules/core-js/internals/iterators-core.js", + "node_modules/core-js/internals/iterator-create-constructor.js", + "node_modules/core-js/internals/iterator-define.js", + "node_modules/core-js/internals/create-iter-result-object.js", + "node_modules/core-js/modules/es.array.iterator.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.iterator.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/web.dom-collections.iterator.js?commonjs-exports", + "node_modules/core-js/internals/dom-iterables.js", + "node_modules/core-js/internals/dom-token-list-prototype.js", + "node_modules/core-js/modules/web.dom-collections.iterator.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/web.dom-collections.iterator.js?commonjs-es-import", + "node_modules/@babel/runtime/helpers/esm/toPrimitive.js", + "node_modules/@babel/runtime/helpers/esm/toPropertyKey.js", + "node_modules/@babel/runtime/helpers/esm/defineProperty.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.reduce.js?commonjs-exports", + "node_modules/core-js/internals/array-reduce.js", + "node_modules/core-js/internals/array-method-is-strict.js", + "node_modules/core-js/modules/es.array.reduce.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.reduce.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.ends-with.js?commonjs-exports", + "node_modules/core-js/modules/es.string.ends-with.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.ends-with.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.split.js?commonjs-exports", + "node_modules/core-js/modules/es.string.split.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.split.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/raf/index.js?commonjs-module", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/performance-now/lib/performance-now.js?commonjs-module", + "node_modules/performance-now/lib/performance-now.js", + "node_modules/raf/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/raf/index.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.trim.js?commonjs-exports", + "node_modules/core-js/internals/whitespaces.js", + "node_modules/core-js/internals/string-trim.js", + "node_modules/core-js/internals/string-trim-forced.js", + "node_modules/core-js/modules/es.string.trim.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.trim.js?commonjs-es-import", + "node_modules/rgbcolor/index.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/rgbcolor/index.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.index-of.js?commonjs-exports", + "node_modules/core-js/modules/es.array.index-of.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.index-of.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.includes.js?commonjs-exports", + "node_modules/core-js/modules/es.string.includes.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.string.includes.js?commonjs-es-import", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.reverse.js?commonjs-exports", + "node_modules/core-js/internals/is-array.js", + "node_modules/core-js/modules/es.array.reverse.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.array.reverse.js?commonjs-es-import", + "node_modules/svg-pathdata/lib/SVGPathData.module.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.regexp.to-string.js?commonjs-exports", + "node_modules/core-js/modules/es.regexp.to-string.js", + "\u0000/home/codex/.t3/worktrees/DebateLab/t3code-bc808474/node_modules/core-js/modules/es.regexp.to-string.js?commonjs-es-import", + "node_modules/stackblur-canvas/dist/stackblur-es.js", + "node_modules/canvg/lib/index.es.js" + ], + "staticMembership": [], + "dynamicEntry": "node_modules/canvg/lib/index.es.js" + } + ] + } +} diff --git a/e2e/admin-announcements.spec.ts b/e2e/admin-announcements.spec.ts index 498e615e4..438c8f063 100644 --- a/e2e/admin-announcements.spec.ts +++ b/e2e/admin-announcements.spec.ts @@ -1,4 +1,4 @@ -import { expect, test } from '@playwright/test'; +import { expect, test, type Page } from '@playwright/test'; import { stubSupabaseSession } from './helpers/auth'; const ANNOUNCEMENT_ID = 'aaaaaaaa-bbbb-4ccc-8ddd-eeeeeeeeeeee'; @@ -14,6 +14,29 @@ test.beforeEach(async ({ page }) => { }); }); +async function openAppNav(page: Page, label: string) { + if ((page.viewportSize()?.width ?? 1280) < 1024) { + await page.getByRole('button', { name: 'Open menu' }).click(); + await page.getByRole('navigation', { name: 'Mobile navigation' }) + .getByRole('link', { name: new RegExp(`^${label}`) }) + .click(); + return; + } + + await page.getByRole('navigation', { name: 'Main navigation' }) + .getByRole('link', { name: label }) + .click(); +} + +function countAnnouncementListRequests(page: Page) { + let count = 0; + page.on('request', (request) => { + const url = new URL(request.url()); + if (request.method() === 'GET' && url.pathname.endsWith('/functions/v1/announcements')) count += 1; + }); + return () => count; +} + test('user sees and permanently dismisses an active announcement', async ({ page }) => { let dismissBody: Record | null = null; await page.route('**/functions/v1/announcements*', async (route) => { @@ -48,6 +71,59 @@ test('user sees and permanently dismisses an active announcement', async ({ page expect(dismissBody).toEqual({ announcementId: ANNOUNCEMENT_ID }); }); +test('keeps announcements stable across routes and refreshes on a full reload', async ({ page }) => { + // The auth session is a browser-only stub. This verifies client request sequencing, not backend auth. + const listRequestCount = countAnnouncementListRequests(page); + let listResponseCount = 0; + await page.route('**/functions/v1/announcements*', async (route) => { + if (route.request().method() !== 'GET') { + await route.fulfill({ json: { success: true } }); + return; + } + + listResponseCount += 1; + const current = listResponseCount === 1 + ? { + id: ANNOUNCEMENT_ID, + title: 'Scheduled maintenance', + body: 'DebateLab will be unavailable for ten minutes.', + starts_at: '2026-08-31T12:00:00.000Z', + expires_at: null, + created_at: '2026-08-31T11:00:00.000Z', + } + : { + id: 'bbbbbbbb-cccc-4ddd-8eee-ffffffffffff', + title: 'Current announcement', + body: 'This message is current after refresh.', + starts_at: '2026-08-31T12:00:00.000Z', + expires_at: null, + created_at: '2026-08-31T11:00:00.000Z', + }; + await route.fulfill({ json: { announcements: [current] } }); + }); + + await page.goto('/app/generate'); + await expect(page.getByRole('heading', { name: 'Generate', exact: true })).toBeVisible(); + await expect(page.getByRole('heading', { name: 'Scheduled maintenance' })).toBeVisible(); + expect(listRequestCount()).toBe(1); + + await page.getByRole('button', { name: 'Dismiss announcement: Scheduled maintenance' }).click(); + await expect(page.getByRole('heading', { name: 'Scheduled maintenance' })).toHaveCount(0); + + await openAppNav(page, 'Attack'); + await expect(page.getByRole('heading', { name: 'Attack', exact: true })).toBeVisible(); + await openAppNav(page, 'Home'); + await expect(page.getByRole('main').getByRole('heading', { name: 'DebateLab', exact: true })).toBeVisible(); + expect(listRequestCount()).toBe(1); + expect(listResponseCount).toBe(1); + await expect(page.getByRole('heading', { name: 'Scheduled maintenance' })).toHaveCount(0); + + await page.reload(); + await expect(page.getByRole('heading', { name: 'Current announcement' })).toBeVisible(); + await expect.poll(() => listRequestCount()).toBe(2); + expect(listResponseCount).toBe(2); +}); + test('admin can deactivate without losing history, then explicitly delete', async ({ page }) => { let createBody: Record | null = null; let deactivateBody: Record | null = null; diff --git a/e2e/animation-polish.spec.ts b/e2e/animation-polish.spec.ts index 763d47b62..6a3a9505e 100644 --- a/e2e/animation-polish.spec.ts +++ b/e2e/animation-polish.spec.ts @@ -85,6 +85,42 @@ test('removes non-essential route and state movement for reduced motion', async await page.screenshot({ path: testInfo.outputPath('reduced-result.png'), fullPage: true }); }); +test('keeps a delayed route skeleton static under reduced motion', async ({ page }, testInfo) => { + await prepareMotionFixture(page, 'reduce'); + await page.goto('/app/generate', { waitUntil: 'domcontentloaded' }); + await expect(page.getByRole('heading', { name: 'Generate', exact: true })).toBeVisible({ timeout: STATE_TIMEOUT_MS }); + await page.screenshot({ path: testInfo.outputPath('reduced-route-before.png'), fullPage: true }); + + let destinationRequested = false; + await page.route('**/src/pages/AttackPage.tsx*', async (route) => { + destinationRequested = true; + await new Promise((resolve) => setTimeout(resolve, 1500)); + await route.continue(); + }); + + const attackLink = (page.viewportSize()?.width ?? 1280) < 1024 + ? await (async () => { + await page.getByRole('button', { name: 'Open menu' }).click(); + return page.getByRole('navigation', { name: 'Mobile navigation' }).getByRole('link', { name: /^Attack/ }); + })() + : page.getByRole('navigation', { name: 'Main navigation' }).getByRole('link', { name: 'Attack' }); + await attackLink.click(); + await expect.poll(() => destinationRequested).toBe(true); + + const pendingStatus = page.getByRole('status', { name: 'Opening Attack', exact: true }); + const pendingSkeleton = page.locator('[data-route-skeleton="tool-form"][aria-busy="true"]'); + await expect(pendingStatus).toHaveCount(1); + await expect(pendingStatus).toHaveAttribute('aria-live', 'polite'); + await expect(pendingStatus).toHaveText('Opening Attack'); + await expect(pendingSkeleton).toBeVisible(); + await expect(page.locator('.motion-loading-shell')).toHaveCount(0); + await expect.poll(() => page.evaluate(() => document.getAnimations().filter((animation) => animation.playState === 'running').length)).toBe(0); + await page.screenshot({ path: testInfo.outputPath('reduced-route-pending.png'), fullPage: true }); + + await expect(page.getByRole('heading', { name: 'Attack', exact: true })).toBeVisible({ timeout: STATE_TIMEOUT_MS }); + await page.screenshot({ path: testInfo.outputPath('reduced-route-ready.png'), fullPage: true }); +}); + test('audits applicable empty, loading, result, and option states across feature routes', async ({ page }, testInfo) => { test.setTimeout(90_000); await prepareMotionFixture(page, 'no-preference'); diff --git a/e2e/home-navigation.spec.ts b/e2e/home-navigation.spec.ts index f7a7e7d3b..d7708fd49 100644 --- a/e2e/home-navigation.spec.ts +++ b/e2e/home-navigation.spec.ts @@ -58,6 +58,65 @@ test('onboarding follows visible home targets when secondary navigation is close await page.locator('[data-test-id="button-skip"]').click(); }); +test('onboarding keeps its original start schedule after a delayed lazy chunk', async ({ page }) => { + await page.addInitScript(() => { + const originalSetItem = Storage.prototype.setItem; + Storage.prototype.setItem = function setItem(key, value) { + if (key === 'debate-trainer-onboarding') { + try { + if (JSON.parse(value).state?.isTourRunning === true) { + originalSetItem.call(this, '__onboarding-tour-started-at', String(Date.now())); + } + } catch { + // Ignore malformed test-only storage writes. + } + } + originalSetItem.call(this, key, value); + }; + window.localStorage.setItem('debate-trainer-onboarding', JSON.stringify({ + state: { hasCompletedOnboarding: false, isTourRunning: false }, + version: 0, + })); + }); + await page.route('**/src/components/features/onboarding/OnboardingTour.tsx*', async (route) => { + const response = await route.fetch(); + const body = `${await response.text()}\nwindow.localStorage.setItem('__onboarding-module-evaluated-at', String(Date.now()));`; + await new Promise((resolve) => setTimeout(resolve, 750)); + await route.fulfill({ response, body }); + }); + await page.route('**/node_modules/.vite/deps/react-joyride.js*', async (route) => { + const response = await route.fetch(); + const body = await response.body(); + await route.fulfill({ response, body }); + }); + + await page.goto('/app', { waitUntil: 'domcontentloaded' }); + + await expect.poll(async () => Number(await page.evaluate(() => window.localStorage.getItem('__onboarding-module-evaluated-at') ?? 0)), { timeout: 15_000 }).toBeGreaterThan(0); + await expect.poll(async () => Number(await page.evaluate(() => window.localStorage.getItem('__onboarding-tour-started-at') ?? 0)), { timeout: 15_000 }).toBeGreaterThan(0); + const moduleEvaluatedAt = await page.evaluate(() => Number(window.localStorage.getItem('__onboarding-module-evaluated-at'))); + const startedAt = await page.evaluate(() => Number(window.localStorage.getItem('__onboarding-tour-started-at'))); + expect(startedAt - moduleEvaluatedAt).toBeLessThan(450); + await expect(page.locator('.react-joyride__tooltip')).toBeVisible({ timeout: 15_000 }); +}); + +test('onboarding starts a fresh delay when a protected route reaches home', async ({ page }) => { + await page.addInitScript(() => { + window.localStorage.setItem('debate-trainer-onboarding', JSON.stringify({ + state: { hasCompletedOnboarding: false, isTourRunning: false }, + version: 0, + })); + }); + await page.goto('/app/generate', { waitUntil: 'domcontentloaded' }); + await expect(page.getByRole('heading', { name: 'Ready to Generate' })).toBeVisible({ timeout: 15_000 }); + await page.waitForTimeout(650); + + await page.locator('header a[href="/app"]').first().click(); + await expect(page).toHaveURL(/\/app$/); + await expect(page.locator('.react-joyride__tooltip')).toHaveCount(0, { timeout: 100 }); + await expect(page.locator('.react-joyride__tooltip')).toBeVisible({ timeout: 15_000 }); +}); + test('header keeps the brand and controls inside a 320px viewport', async ({ page }) => { await page.setViewportSize({ width: 320, height: 844 }); await page.goto('/app', { waitUntil: 'domcontentloaded' }); diff --git a/e2e/navigation-performance.spec.ts b/e2e/navigation-performance.spec.ts new file mode 100644 index 000000000..c2099938d --- /dev/null +++ b/e2e/navigation-performance.spec.ts @@ -0,0 +1,378 @@ +import { expect, test, type Page } from '@playwright/test'; +import { setLocale, stubSupabaseSession } from './helpers/auth'; + +declare global { + interface Window { + __baselineAppLayout?: Element | null; + __baselineShell?: Element | null; + __baselineClickAt?: number | null; + __genericLoaderObserver?: MutationObserver; + __genericLoaderSeen?: boolean; + } +} + +type ContentMarker = { + selector: string; + text?: string; +}; + +const publicRoutes = [ + ['/', 'h1'], + ['/login', 'button'], +] as const; + +const privateRoutes = [ + ['/app', { selector: 'main h1', text: 'DebateLab' }], + ['/app/generate', { selector: 'main h1', text: 'Generate' }], + ['/app/attack', { selector: 'main h1', text: 'Attack' }], + ['/app/flowchart', { selector: 'main h3', text: 'Argument Flowchart' }], + ['/app/history', { selector: 'main h1', text: 'History' }], + ['/app/admin', { selector: 'main h3', text: 'Access Denied' }], +] as const; + +const attackContent: ContentMarker = { selector: 'main h1', text: 'Attack' }; +const attackChunk = /\/src\/pages\/AttackPage\.tsx(?:[?#]|$)/i; +const INTENT_OBSERVATION_MS = 250; + +async function waitForContent(page: Page, marker: string | ContentMarker) { + const locator = typeof marker === 'string' + ? page.locator(marker).first() + : page.locator(marker.selector).filter({ hasText: marker.text ?? '' }).first(); + await expect(locator).toBeVisible({ timeout: 15_000 }); +} + +async function openAppNav(page: Page, label: string) { + if ((page.viewportSize()?.width ?? 1280) < 1024) { + await page.getByRole('button', { name: 'Open menu' }).click(); + await page.getByRole('navigation', { name: 'Mobile navigation' }).getByRole('link', { name: new RegExp(`^${label}`) }).click(); + return; + } + + if (['Flowchart', 'History'].includes(label)) { + await page.locator('summary[aria-label="More"]').click(); + await page.locator('details').getByRole('link', { name: label }).click(); + return; + } + + await page.getByRole('navigation', { name: 'Main navigation' }).getByRole('link', { name: label }).click(); +} + +test('cold routes expose real content on both browser profiles', async ({ page }) => { + await setLocale(page, 'en'); + for (const [path, selector] of publicRoutes) { + await page.goto(path, { waitUntil: 'domcontentloaded' }); + await waitForContent(page, selector); + } + + const appPage = await page.context().newPage(); + await setLocale(appPage, 'en'); + await stubSupabaseSession(appPage); + await appPage.route('**/functions/v1/admin*', (route) => route.fulfill({ + status: 403, + contentType: 'application/json', + body: JSON.stringify({ error: 'Admin access required' }), + })); + for (const [path, selector] of privateRoutes) { + await appPage.goto(path, { waitUntil: 'domcontentloaded' }); + await waitForContent(appPage, selector); + } + await appPage.close(); +}); + +test('a delayed public route keeps the main landmark', async ({ page }) => { + await setLocale(page, 'en'); + let releaseTerms: (() => void) | undefined; + const termsReleased = new Promise((resolve) => { releaseTerms = resolve; }); + await page.route('**/src/pages/TermsPage.tsx*', async (route) => { + await termsReleased; + await route.continue(); + }); + + await page.goto('/terms', { waitUntil: 'domcontentloaded' }); + const fallback = page.getByRole('main').filter({ has: page.locator('[data-route-skeleton-shape]') }); + await expect(fallback).toHaveAttribute('data-route-skeleton', 'public'); + releaseTerms?.(); + await expect(page.getByRole('main').getByRole('heading', { name: 'Terms of Service' })).toBeVisible(); +}); + +test('a delayed destination chunk exposes the route fallback without replacing the shell', async ({ page }) => { + await setLocale(page, 'en'); + await stubSupabaseSession(page); + await page.goto('/app/generate', { waitUntil: 'domcontentloaded' }); + await waitForContent(page, { selector: 'main h1', text: 'Generate' }); + + await page.evaluate(() => { + window.__baselineAppLayout = document.querySelector('header')?.parentElement; + window.__baselineShell = document.querySelector('header'); + window.__baselineClickAt = null; + document.addEventListener('click', (event) => { + const anchor = event.target instanceof Element ? event.target.closest('a[href]') : null; + if (anchor && new URL(anchor.href, window.location.href).pathname === '/app/attack') { + window.__baselineClickAt = performance.now(); + } + }, true); + }); + let destinationRequested = false; + await page.route('**/src/pages/AttackPage.tsx*', async (route) => { + destinationRequested = true; + await new Promise((resolve) => setTimeout(resolve, 1500)); + await route.continue(); + }); + + await startGenericLoaderObservation(page); + await openAppNav(page, 'Attack'); + await expect.poll(() => destinationRequested).toBe(true); + const pendingStatus = page.locator('main').getByRole('status', { name: 'Opening Attack', exact: true }); + await expect(pendingStatus).toHaveCount(1); + await expect(pendingStatus).toHaveAttribute('aria-live', 'polite'); + await expect(pendingStatus).not.toHaveAttribute('aria-busy'); + const pendingSkeleton = page.locator('[data-route-skeleton="tool-form"][aria-busy="true"]'); + await expect(pendingSkeleton).toHaveCount(1); + await expect(pendingSkeleton).toBeVisible(); + expect(await pendingStatus.evaluate((status) => status.nextElementSibling?.matches('[data-route-skeleton="tool-form"][aria-busy="true"]'))).toBe(true); + await expect(page.locator('[data-route-skeleton-shape]').first()).toBeVisible(); + const pendingGeometry = await pendingSkeleton.evaluate((region) => { + const shape = region.querySelector('[data-route-skeleton-shape]'); + const regionRect = region.getBoundingClientRect(); + const shapeRect = shape?.getBoundingClientRect(); + return { + regionHeight: regionRect.height, + shapeWidth: shapeRect?.width ?? 0, + shapeHeight: shapeRect?.height ?? 0, + shapeBackground: shape ? getComputedStyle(shape).backgroundColor : '', + }; + }); + expect(pendingGeometry.regionHeight).toBeGreaterThan(0); + expect(pendingGeometry.shapeWidth).toBeGreaterThan(0); + expect(pendingGeometry.shapeHeight).toBeGreaterThan(0); + expect(pendingGeometry.shapeBackground).not.toBe('rgba(0, 0, 0, 0)'); + await expect(page.locator('.motion-loading-shell')).toHaveCount(0); + expect(await page.evaluate(() => ({ + appLayout: document.querySelector('header')?.parentElement === window.__baselineAppLayout, + header: document.querySelector('header') === window.__baselineShell, + }))).toEqual({ appLayout: true, header: true }); + await waitForContent(page, attackContent); + expect(await stopGenericLoaderObservation(page)).toBe(false); + expect(await page.evaluate(() => ({ + appLayout: document.querySelector('header')?.parentElement === window.__baselineAppLayout, + header: document.querySelector('header') === window.__baselineShell, + }))).toEqual({ appLayout: true, header: true }); + + const transitionMetrics = await page.evaluate(() => ({ + clickTime: window.__baselineClickAt ?? null, + route: location.pathname, + shellDomIdentitySurvived: document.querySelector('header') === window.__baselineShell, + allRequestCount: performance.getEntriesByType('resource').length, + measuredRequestCount: performance.getEntriesByType('resource') + .filter((entry) => window.__baselineClickAt !== null && entry.startTime >= window.__baselineClickAt).length, + sourceRequestCount: performance.getEntriesByType('resource') + .filter((entry) => window.__baselineClickAt !== null && entry.startTime < window.__baselineClickAt).length, + allLongTaskCount: performance.getEntriesByType('longtask').length, + measuredLongTaskCount: performance.getEntriesByType('longtask') + .filter((entry) => window.__baselineClickAt !== null && entry.startTime >= window.__baselineClickAt).length, + })); + expect(transitionMetrics.clickTime).not.toBeNull(); + expect(transitionMetrics.route).toBe('/app/attack'); + expect(transitionMetrics.shellDomIdentitySurvived).toBe(true); + expect(transitionMetrics.sourceRequestCount).toBeGreaterThan(0); + expect(transitionMetrics.measuredRequestCount).toBeGreaterThan(0); + expect(transitionMetrics.measuredRequestCount).toBeLessThan(transitionMetrics.allRequestCount); + expect(transitionMetrics.measuredLongTaskCount).toBeLessThanOrEqual(transitionMetrics.allLongTaskCount); +}); + +test('a failed route chunk recovers after the offered reload', async ({ page }) => { + await setLocale(page, 'en'); + await stubSupabaseSession(page); + let attempts = 0; + await page.route('**/src/pages/AttackPage.tsx*', async (route) => { + attempts += 1; + if (attempts === 1) { + await route.fulfill({ status: 503, contentType: 'text/plain', body: 'chunk unavailable' }); + return; + } + await route.continue(); + }); + + await page.goto('/app/generate', { waitUntil: 'domcontentloaded' }); + await waitForContent(page, { selector: 'main h1', text: 'Generate' }); + await openAppNav(page, 'Attack'); + + await expect(page.getByRole('heading', { name: 'Unable to load this page' })).toBeVisible(); + await page.getByRole('button', { name: 'Reload' }).click(); + await expect.poll(() => attempts).toBe(2); + await waitForContent(page, attackContent); + await expect(page.locator('header')).toBeVisible(); +}); + +for (const [locale, attackLabel, menuLabel, openingLabel] of [ + ['es', 'Atacar', 'Abrir menú', 'Abriendo Atacar'], + ['hu', 'Támadás', 'Menü megnyitása', 'Támadás megnyitása'], +] as const) { + test(`${locale} delayed route announces the localized destination`, async ({ page }) => { + await setLocale(page, locale); + await stubSupabaseSession(page); + await page.goto('/app/generate', { waitUntil: 'domcontentloaded' }); + await expect(page.locator('header')).toBeVisible(); + + let destinationRequested = false; + await page.route('**/src/pages/AttackPage.tsx*', async (route) => { + destinationRequested = true; + await new Promise((resolve) => setTimeout(resolve, 1500)); + await route.continue(); + }); + + if ((page.viewportSize()?.width ?? 1280) < 1024) { + await page.getByRole('button', { name: menuLabel }).click(); + await page.getByRole('navigation', { name: 'Mobile navigation' }).getByRole('link', { name: new RegExp(`^${attackLabel}`) }).click(); + } else { + await page.getByRole('navigation', { name: 'Main navigation' }).getByRole('link', { name: attackLabel }).click(); + } + + await expect.poll(() => destinationRequested).toBe(true); + const status = page.getByRole('status', { name: openingLabel, exact: true }); + await expect(status).toHaveCount(1); + await expect(status).toHaveText(openingLabel); + await expect(status).not.toHaveText('Opening Attack'); + await expect(page.locator('[data-route-skeleton="tool-form"][aria-busy="true"]')).toBeVisible(); + }); +} + +async function gotoGenerate(page: Page) { + await setLocale(page, 'en'); + await stubSupabaseSession(page); + await page.goto('/app/generate', { waitUntil: 'domcontentloaded' }); + await waitForContent(page, { selector: 'main h1', text: 'Generate' }); +} + +async function attackLink(page: Page) { + if ((page.viewportSize()?.width ?? 1280) < 1024) { + await page.getByRole('button', { name: 'Open menu' }).click(); + return page.getByRole('navigation', { name: 'Mobile navigation' }).getByRole('link', { name: /^Attack/ }); + } + return page.getByRole('navigation', { name: 'Main navigation' }).getByRole('link', { name: 'Attack' }); +} + +async function startGenericLoaderObservation(page: Page) { + await page.evaluate(() => { + window.__genericLoaderSeen = document.querySelector('.motion-loading-shell') !== null; + const observer = new MutationObserver(() => { + if (document.querySelector('.motion-loading-shell')) window.__genericLoaderSeen = true; + }); + observer.observe(document.documentElement, { childList: true, subtree: true }); + window.__genericLoaderObserver = observer; + }); +} + +async function stopGenericLoaderObservation(page: Page) { + return page.evaluate(() => { + window.__genericLoaderObserver?.disconnect(); + const seen = Boolean(window.__genericLoaderSeen || document.querySelector('.motion-loading-shell')); + delete window.__genericLoaderObserver; + delete window.__genericLoaderSeen; + return seen; + }); +} + +async function setConnection(page: Page, connection: { saveData?: boolean; effectiveType?: string }) { + await page.addInitScript((value) => { + Object.defineProperty(navigator, 'connection', { + configurable: true, + value, + }); + }, connection); +} + +function countAttackRequests(page: Page) { + let count = 0; + page.on('request', (request) => { + if (attackChunk.test(request.url())) count += 1; + }); + return () => count; +} + +async function signalAllowedIntent(page: Page, link: Awaited>) { + if ((page.viewportSize()?.width ?? 1280) < 1024) { + await link.dispatchEvent('pointerdown', { pointerType: 'touch' }); + return; + } + await link.hover(); +} + +test('hover intent fetches one destination chunk before click and keeps navigation in-document', async ({ page }) => { + const requestCount = countAttackRequests(page); + await gotoGenerate(page); + const link = await attackLink(page); + expect(requestCount()).toBe(0); + + await link.hover(); + await page.waitForTimeout(INTENT_OBSERVATION_MS); + expect(requestCount()).toBe(1); + + const navigationEntriesBeforeClick = await page.evaluate(() => performance.getEntriesByType('navigation').length); + await startGenericLoaderObservation(page); + await link.click(); + await waitForContent(page, attackContent); + expect(await stopGenericLoaderObservation(page)).toBe(false); + expect(requestCount()).toBe(1); + expect(await page.evaluate(() => performance.getEntriesByType('navigation').length)).toBe(navigationEntriesBeforeClick); + await expect(page.locator('.motion-loading-shell')).toHaveCount(0); +}); + +test('keyboard focus fetches one destination chunk before click', async ({ page }) => { + const requestCount = countAttackRequests(page); + await gotoGenerate(page); + const link = await attackLink(page); + expect(requestCount()).toBe(0); + + await link.focus(); + await expect(link).toBeFocused(); + await page.waitForTimeout(INTENT_OBSERVATION_MS); + expect(requestCount()).toBe(1); + + await startGenericLoaderObservation(page); + await link.click(); + await waitForContent(page, attackContent); + expect(await stopGenericLoaderObservation(page)).toBe(false); + expect(requestCount()).toBe(1); + await expect(page.locator('.motion-loading-shell')).toHaveCount(0); +}); + +test('touch intent fetches one destination chunk before click', async ({ page }) => { + const requestCount = countAttackRequests(page); + await gotoGenerate(page); + const link = await attackLink(page); + expect(requestCount()).toBe(0); + + await link.dispatchEvent('pointerdown', { pointerType: 'touch' }); + await page.waitForTimeout(INTENT_OBSERVATION_MS); + expect(requestCount()).toBe(1); + + await startGenericLoaderObservation(page); + await link.click(); + await waitForContent(page, attackContent); + expect(await stopGenericLoaderObservation(page)).toBe(false); + expect(requestCount()).toBe(1); + await expect(page.locator('.motion-loading-shell')).toHaveCount(0); +}); + +for (const [label, connection] of [ + ['Save-Data', { saveData: true }], + ['slow-2g connection', { effectiveType: 'slow-2g' }], + ['2g connection', { effectiveType: '2g' }], +] as const) { + test(`${label} skips speculative route requests for the same intent`, async ({ page }) => { + await setConnection(page, connection); + const requestCount = countAttackRequests(page); + await gotoGenerate(page); + const link = await attackLink(page); + expect(requestCount()).toBe(0); + + await signalAllowedIntent(page, link); + await page.waitForTimeout(INTENT_OBSERVATION_MS); + expect(requestCount()).toBe(0); + + await link.click(); + await waitForContent(page, attackContent); + expect(requestCount()).toBe(1); + }); +} diff --git a/scripts/check-build-boundaries.mjs b/scripts/check-build-boundaries.mjs index ec30cedbd..72c296cb3 100644 --- a/scripts/check-build-boundaries.mjs +++ b/scripts/check-build-boundaries.mjs @@ -1,7 +1,8 @@ import { readFileSync } from 'node:fs'; -import { resolve } from 'node:path'; +import { relative, resolve, sep } from 'node:path'; -const distDir = resolve(process.cwd(), 'dist'); +const projectRoot = resolve(process.cwd()); +const distDir = resolve(projectRoot, 'dist'); const manifest = JSON.parse(readFileSync(resolve(distDir, '.vite/manifest.json'), 'utf8')); const bundleGraph = JSON.parse(readFileSync(resolve(distDir, '.vite/bundle-graph.json'), 'utf8')); const entryKey = Object.keys(manifest).find((key) => manifest[key].isEntry && manifest[key].src === 'index.html'); @@ -22,21 +23,88 @@ function staticGraphFrom(file) { const forbiddenFeature = /(?:\/src\/pages\/AdminPage\.tsx$|\/src\/lib\/(?:pdf-export-utils|export-utils)\.ts$|\/node_modules\/(?:jspdf|jspdf-autotable|docx|recharts|reactflow)\/)/i; const initialRoutes = [ - entryKey, - 'src/pages/LandingPage.tsx', - 'src/pages/LoginPage.tsx', - 'src/pages/HomePage.tsx', - 'src/pages/GeneratePage.tsx', - 'src/pages/AttackPage.tsx', + { key: entryKey, pageModules: new Set() }, + ...[ + 'src/pages/LandingPage.tsx', + 'src/pages/LoginPage.tsx', + 'src/pages/HomePage.tsx', + 'src/pages/GeneratePage.tsx', + 'src/pages/AttackPage.tsx', + ].map((key) => ({ key, pageModules: new Set([key]) })), ]; -const violations = initialRoutes.flatMap((routeKey) => { + +function canonicalModuleId(moduleId) { + const sourceId = moduleId.split(/[?#]/, 1)[0]; + if (!sourceId.startsWith('/')) return sourceId.replaceAll('\\', '/'); + const relativeId = relative(projectRoot, sourceId); + if (relativeId.startsWith('..') || relativeId.includes(':')) return null; + return relativeId.split(sep).join('/'); +} + +function pageModulesFrom(routeFile) { + return new Set([...staticGraphFrom(routeFile)].flatMap((file) => bundleGraph[file]?.modules ?? []) + .map(canonicalModuleId) + .filter((moduleId) => moduleId?.startsWith('src/pages/') && moduleId.endsWith('.tsx'))); +} + +const onboardingModules = new Set([ + 'src/components/features/onboarding/OnboardingTour.tsx', + 'node_modules/react-joyride/dist/index.mjs', +]); + +const onboardingInitialRoutes = [ + { key: entryKey }, + ...Object.entries(manifest) + .filter(([, entry]) => entry.isDynamicEntry && entry.src?.startsWith('src/pages/') && entry.src.endsWith('.tsx')) + .map(([key]) => ({ key })), +]; + +function modulesFromFiles(files) { + return new Set([...files].flatMap((file) => bundleGraph[file]?.modules ?? []) + .map(canonicalModuleId) + .filter(Boolean)); +} + +const onboardingInitialGraphViolations = onboardingInitialRoutes.flatMap(({ key: routeKey }) => { + const routeFile = manifest[routeKey]?.file; + if (!routeFile) return []; + return [...modulesFromFiles(staticGraphFrom(routeFile))] + .filter((moduleId) => onboardingModules.has(moduleId)) + .map((moduleId) => `${routeKey} -> ${routeFile} -> onboarding module ${moduleId}`); +}); + +const onboardingDynamicChunks = Object.entries(manifest) + .filter(([, entry]) => entry.isDynamicEntry) + .map(([key, entry]) => ({ key, file: entry.file })) + .filter(({ file }) => { + const modules = modulesFromFiles(staticGraphFrom(file)); + return [...onboardingModules].every((moduleId) => modules.has(moduleId)); + }); + +const onboardingDynamicGraphViolations = onboardingDynamicChunks.length === 0 + ? ['OnboardingTour and react-joyride are not present together in any dynamic chunk.'] + : []; + +const violations = initialRoutes.flatMap(({ key: routeKey, pageModules: expectedPageModules }) => { const routeFile = manifest[routeKey]?.file; if (!routeFile) throw new Error(`Vite manifest has no emitted chunk for ${routeKey}.`); - return [...staticGraphFrom(routeFile)].flatMap((file) => (bundleGraph[file]?.modules ?? []) + const actualPageModules = pageModulesFrom(routeFile); + const pageViolations = [ + ...[...actualPageModules] + .filter((moduleId) => !expectedPageModules.has(moduleId)) + .map((moduleId) => `${routeKey} -> ${routeFile} -> unexpected page module ${moduleId}`), + ...[...expectedPageModules] + .filter((moduleId) => !actualPageModules.has(moduleId)) + .map((moduleId) => `${routeKey} -> ${routeFile} -> missing page module ${moduleId}`), + ]; + const featureViolations = [...staticGraphFrom(routeFile)].flatMap((file) => (bundleGraph[file]?.modules ?? []) .filter((moduleId) => forbiddenFeature.test(moduleId)) .map((moduleId) => `${routeKey} -> ${file} -> ${moduleId}`)); + return [...pageViolations, ...featureViolations]; }); +violations.push(...onboardingInitialGraphViolations, ...onboardingDynamicGraphViolations); + if (violations.length > 0) { throw new Error(`Feature-only modules entered the static application graph:\n${violations.join('\n')}`); } diff --git a/scripts/measure-navigation-performance.mjs b/scripts/measure-navigation-performance.mjs new file mode 100644 index 000000000..b4cc368d3 --- /dev/null +++ b/scripts/measure-navigation-performance.mjs @@ -0,0 +1,806 @@ +import { createRequire } from 'node:module'; +import { execFileSync, spawn, spawnSync } from 'node:child_process'; +import { createWriteStream } from 'node:fs'; +import { createServer } from 'node:net'; +import { gzipSync } from 'node:zlib'; +import { + copyFile, + mkdtemp, + mkdir, + readFile, + readdir, + rm, + stat, + writeFile, +} from 'node:fs/promises'; +import { existsSync } from 'node:fs'; +import { tmpdir } from 'node:os'; +import { join, relative, resolve } from 'node:path'; +import { chromium, devices } from '@playwright/test'; + +const require = createRequire(import.meta.url); +const ROOT = process.cwd(); +const OUTPUT_DIR = resolve(ROOT, 'docs/performance/smooth-navigation-baseline'); +const DIST_DIR = resolve(ROOT, 'dist'); +const RUN_LABEL = process.env.BASELINE_RUN || `run-${new Date().toISOString().replaceAll(':', '-')}`; +const DELAY_MS = 750; +const SERVER_TIMEOUT_MS = 45_000; +const CONTENT_TIMEOUT_MS = 45_000; + +const ROUTES = [ + { path: '/', marker: { selector: 'h1', text: 'Prep Faster' }, module: 'LandingPage' }, + { path: '/login', marker: { selector: 'button', text: 'Continue with Google' }, module: 'LoginPage' }, + { path: '/app', marker: { selector: 'main h1', text: 'DebateLab' }, module: 'HomePage', authenticated: true }, + { path: '/app/generate', marker: { selector: 'main h1', text: 'Generate' }, module: 'GeneratePage', authenticated: true }, + { path: '/app/attack', marker: { selector: 'main h1', text: 'Attack' }, module: 'AttackPage', authenticated: true }, + { path: '/app/flowchart', marker: { selector: 'main h3', text: 'Argument Flowchart' }, module: 'FlowchartPage', authenticated: true }, + { path: '/app/history', marker: { selector: 'main h1', text: 'History' }, module: 'HistoryPage', authenticated: true }, + { path: '/app/admin', marker: { selector: 'main h1, main h2, main h3', text: 'Admin Dashboard|Access Denied' }, module: 'AdminPage', authenticated: true }, +]; + +const TRANSITIONS = [ + { from: '/', to: '/app', label: 'Landing CTA -> /app', module: 'HomePage', authenticated: true }, + { from: '/app', to: '/app/generate', label: 'Home -> Generate', module: 'GeneratePage', authenticated: true }, + { from: '/app/generate', to: '/app/attack', label: 'Generate -> Attack', module: 'AttackPage', authenticated: true }, + { from: '/app', to: '/app/flowchart', label: 'Home -> Flowchart', module: 'FlowchartPage', authenticated: true }, + { from: '/app', to: '/app/history', label: 'Home -> History', module: 'HistoryPage', authenticated: true }, +]; + +const PROFILES = [ + { + name: 'desktop', + viewport: { width: 1280, height: 800 }, + device: { viewport: { width: 1280, height: 800 }, deviceScaleFactor: 1 }, + networkProfile: 'unthrottled loopback', + cpuProfile: 'Chromium default CPU, no emulation', + }, + { + name: 'pixel-5', + device: devices['Pixel 5'], + networkProfile: 'unthrottled loopback', + cpuProfile: 'Chromium default CPU, no emulation', + }, +]; + +function git(command) { + return execFileSync('git', command, { cwd: ROOT, encoding: 'utf8' }).trim(); +} + +function sleep(ms) { + return new Promise((resolvePromise) => setTimeout(resolvePromise, ms)); +} + +async function freePort() { + const server = createServer(); + await new Promise((resolvePromise, reject) => { + server.once('error', reject); + server.listen(0, '127.0.0.1', resolvePromise); + }); + const address = server.address(); + const port = typeof address === 'object' && address ? address.port : 0; + await new Promise((resolvePromise) => server.close(resolvePromise)); + if (!port) throw new Error('Could not allocate a free loopback port.'); + return port; +} + +async function waitForServer(url) { + const started = Date.now(); + while (Date.now() - started < SERVER_TIMEOUT_MS) { + try { + const response = await fetch(url, { signal: AbortSignal.timeout(2_000) }); + if (response.ok) return; + } catch { + // The Vite process is still starting. + } + await sleep(150); + } + throw new Error(`Vite did not answer ${url} within ${SERVER_TIMEOUT_MS}ms.`); +} + +async function startServer(port) { + const logDir = await mkdtemp(join(tmpdir(), 'debatelab-vite-')); + const stdoutPath = join(logDir, 'stdout.log'); + const stderrPath = join(logDir, 'stderr.log'); + const child = spawn('npm', ['run', 'dev', '--', '--host', '127.0.0.1', '--port', String(port)], { + cwd: ROOT, + env: { ...process.env, FORCE_COLOR: '0', PORT: String(port) }, + detached: true, + stdio: ['ignore', 'pipe', 'pipe'], + }); + child.stdout.pipe(createWriteStream(stdoutPath)); + child.stderr.pipe(createWriteStream(stderrPath)); + const baseURL = `http://127.0.0.1:${port}`; + try { + await waitForServer(baseURL); + } catch (error) { + await stopServer(child); + throw new Error(`${error.message}\n${await readFile(stderrPath, 'utf8')}`); + } + return { child, baseURL, logDir }; +} + +async function stopServer(child) { + const signalGroup = (signal) => { + if (!child.pid) return; + try { + process.kill(-child.pid, signal); + } catch (error) { + if (error.code !== 'ESRCH') throw error; + } + }; + if (child.exitCode !== null) { + signalGroup('SIGTERM'); + return; + } + signalGroup('SIGTERM'); + await Promise.race([ + new Promise((resolvePromise) => child.once('exit', resolvePromise)), + sleep(5_000).then(() => signalGroup('SIGKILL')), + ]); + signalGroup('SIGKILL'); +} + +async function cleanupResources({ browser, server, stopServerFn = stopServer, removeLogDirectory = rm }) { + const errors = []; + if (browser) { + try { + await browser.close(); + } catch (error) { + errors.push(new Error(`browser.close failed: ${error instanceof Error ? error.message : String(error)}`)); + } + } + if (server?.child) { + try { + await stopServerFn(server.child); + } catch (error) { + errors.push(new Error(`Vite cleanup failed: ${error instanceof Error ? error.message : String(error)}`)); + } + } + if (server?.logDir) { + try { + await removeLogDirectory(server.logDir, { recursive: true, force: true }); + } catch (error) { + errors.push(new Error(`Vite log cleanup failed: ${error instanceof Error ? error.message : String(error)}`)); + } + } + return errors.length ? new AggregateError(errors, 'Resource cleanup failed.') : null; +} + +function authSession() { + const expiresAt = Math.floor(Date.now() / 1000) + 3_600; + return { + access_token: 'stub-access', + refresh_token: 'stub-refresh', + expires_in: 3_600, + expires_at: expiresAt, + token_type: 'bearer', + user: { + id: '00000000-0000-0000-0000-000000000001', + aud: 'authenticated', + role: 'authenticated', + email: 'e2e@example.com', + app_metadata: { provider: 'google' }, + user_metadata: { full_name: 'E2E Tester' }, + created_at: new Date().toISOString(), + }, + }; +} + +const INIT_INSTRUMENTATION = ({ markers }) => { + const baseline = { + initial: { + target: window.location.pathname, + firstSkeletonFrame: null, + firstRealContentFrame: null, + }, + transition: null, + longTasks: [], + layoutShifts: [], + }; + + const visible = (element) => { + if (!element) return false; + const style = window.getComputedStyle(element); + const rect = element.getBoundingClientRect(); + return style.display !== 'none' && style.visibility !== 'hidden' && rect.width > 0 && rect.height > 0; + }; + + const realContent = (path) => { + const marker = markers[path] || { selector: 'main h1, main h2, main h3', text: '' }; + const element = document.querySelector(marker.selector); + return visible(element) && (!marker.text || marker.text.split('|').some((text) => element.textContent?.includes(text))); + }; + const skeleton = () => visible(document.querySelector('[data-route-skeleton]')); + + const normalizePath = (value) => { + const path = value.replace(/\/+$/, ''); + return path || '/'; + }; + + document.addEventListener('click', (event) => { + if (!baseline.transition || baseline.transition.clickTime !== null) return; + const element = event.target instanceof Element ? event.target.closest('a[href]') : null; + if (!element) return; + const destination = new URL(element.href, window.location.href); + if (normalizePath(destination.pathname) !== normalizePath(baseline.transition.target)) return; + const clickTime = performance.now(); + baseline.transition.clickTime = clickTime; + }, true); + + const sample = () => { + const now = performance.now(); + const path = window.location.pathname; + if (path === baseline.initial.target) { + if (baseline.initial.firstSkeletonFrame === null && skeleton()) baseline.initial.firstSkeletonFrame = now; + if (baseline.initial.firstRealContentFrame === null && realContent(path)) baseline.initial.firstRealContentFrame = now; + } + if (baseline.transition?.target === path) { + if (baseline.transition.firstSkeletonFrame === null && skeleton()) baseline.transition.firstSkeletonFrame = now; + if (baseline.transition.firstRealContentFrame === null && realContent(path)) baseline.transition.firstRealContentFrame = now; + } + window.requestAnimationFrame(sample); + }; + + if (PerformanceObserver.supportedEntryTypes.includes('longtask')) { + new PerformanceObserver((list) => { + for (const entry of list.getEntries()) baseline.longTasks.push({ startTime: entry.startTime, duration: entry.duration }); + }).observe({ type: 'longtask', buffered: true }); + } + if (PerformanceObserver.supportedEntryTypes.includes('layout-shift')) { + new PerformanceObserver((list) => { + for (const entry of list.getEntries()) { + if (!entry.hadRecentInput) baseline.layoutShifts.push({ startTime: entry.startTime, value: entry.value }); + } + }).observe({ type: 'layout-shift', buffered: true }); + } + + window.__navigationBaseline = { + startTransition(target) { + const resourceBoundary = performance.now(); + baseline.transition = { + target, + clickTime: null, + resourceBoundary, + firstSkeletonFrame: null, + firstRealContentFrame: null, + shellBefore: document.querySelector('header'), + }; + }, + snapshot() { + return { + initial: baseline.initial, + transition: baseline.transition ? { + target: baseline.transition.target, + clickTime: baseline.transition.clickTime, + resourceBoundary: baseline.transition.resourceBoundary, + firstSkeletonFrame: baseline.transition.firstSkeletonFrame, + firstRealContentFrame: baseline.transition.firstRealContentFrame, + shellDomIdentitySurvived: baseline.transition.shellBefore + ? document.querySelector('header') === baseline.transition.shellBefore + : null, + } : null, + longTasks: baseline.longTasks, + layoutShifts: baseline.layoutShifts, + }; + }, + }; + sample(); +}; + +async function createContext(browser, profile, { authenticated = false, cacheDisabled = false, videoDir, baseURL } = {}) { + const context = await browser.newContext({ + ...profile.device, + serviceWorkers: 'block', + ...(videoDir ? { recordVideo: { dir: videoDir, size: profile.device.viewport } } : {}), + }); + const markerMap = Object.fromEntries(ROUTES.map(({ path, marker }) => [path, marker])); + await context.addInitScript(INIT_INSTRUMENTATION, { markers: markerMap }); + await context.addInitScript((locale) => { + window.localStorage.setItem('debate-trainer-settings', JSON.stringify({ + state: { language: locale, outputLanguage: locale, theme: 'system' }, + version: 0, + })); + }, 'en'); + if (authenticated) { + await context.addInitScript((session) => { + window.localStorage.setItem('debate-auth-production', JSON.stringify(session)); + window.localStorage.setItem('debate-trainer-onboarding', JSON.stringify({ + state: { hasCompletedOnboarding: true, isTourRunning: false }, + version: 0, + })); + }, authSession()); + } + const page = await context.newPage(); + const origin = new URL(baseURL).origin; + await page.route('**/*', (route) => { + const url = new URL(route.request().url()); + if (url.origin !== origin && url.protocol !== 'data:') return route.abort(); + return route.continue(); + }); + if (cacheDisabled) { + const client = await context.newCDPSession(page); + await client.send('Network.enable'); + await client.send('Network.setCacheDisabled', { cacheDisabled: true }); + } + return { context, page }; +} + +async function waitForContent(page, path) { + const route = ROUTES.find((item) => item.path === path); + if (!route) throw new Error(`No route definition for ${path}.`); + await page.waitForFunction((marker) => { + const element = document.querySelector(marker.selector); + if (!element) return false; + const rect = element.getBoundingClientRect(); + const style = getComputedStyle(element); + return rect.width > 0 && rect.height > 0 && style.visibility !== 'hidden' && style.display !== 'none' + && marker.text.split('|').some((text) => element.textContent?.includes(text)); + }, route.marker, { timeout: CONTENT_TIMEOUT_MS }); +} + +function routeChunkPattern(module) { + return new RegExp(`/src/pages/${module}\\.tsx(?:[?#]|$)`, 'i'); +} + +async function collectMetrics(page, { path, kind, profile, cacheState, routeModule, label }) { + const metricsHandle = await page.waitForFunction(({ target, chunkPattern }) => { + const resources = performance.getEntriesByType('resource').map((entry) => ({ + name: entry.name, + sameOrigin: new URL(entry.name, location.href).origin === location.origin, + startTime: entry.startTime, + duration: entry.duration, + responseEnd: entry.responseEnd, + transferSize: entry.transferSize, + encodedBodySize: entry.encodedBodySize, + decodedBodySize: entry.decodedBodySize, + })); + const navigation = performance.getEntriesByType('navigation')[0]; + const state = window.__navigationBaseline?.snapshot() || { + initial: { firstSkeletonFrame: null, firstRealContentFrame: null }, + transition: null, + longTasks: [], + layoutShifts: [], + }; + const transition = state.transition; + const boundary = transition?.resourceBoundary ?? null; + const measuredResources = boundary === null + ? resources + : resources.filter((entry) => entry.startTime >= boundary); + const appResources = measuredResources.filter((entry) => entry.sameOrigin); + const measuredLongTasks = boundary === null + ? state.longTasks + : state.longTasks.filter((entry) => entry.startTime >= boundary); + const measuredLayoutShifts = boundary === null + ? state.layoutShifts + : state.layoutShifts.filter((entry) => entry.startTime >= boundary); + const routeChunks = appResources.filter((entry) => new RegExp(chunkPattern, 'i').test(entry.name)); + const relative = (value, start) => value === null || start === null ? null : Math.max(0, value - start); + return { + path: target, + clickTime: transition?.clickTime ?? null, + measurementBoundary: boundary, + firstSkeletonFrameMs: transition + ? relative(transition.firstSkeletonFrame, transition.clickTime) + : state.initial.firstSkeletonFrame, + firstRealContentFrameMs: transition + ? relative(transition.firstRealContentFrame, transition.clickTime) + : state.initial.firstRealContentFrame, + routeChunkRequests: routeChunks.map((entry) => ({ + url: entry.name, + startTime: entry.startTime, + endTime: entry.responseEnd, + duration: entry.duration, + transferSize: entry.transferSize, + decodedBodySize: entry.decodedBodySize, + })), + longTasks: measuredLongTasks, + cls: measuredLayoutShifts.reduce((sum, entry) => sum + entry.value, 0), + layoutShifts: measuredLayoutShifts, + requestCount: appResources.length, + browserRequestCount: measuredResources.length, + externalRequestCount: measuredResources.length - appResources.length, + transferredBytes: appResources.reduce((sum, entry) => sum + (entry.transferSize || 0), 0), + encodedBytes: appResources.reduce((sum, entry) => sum + (entry.encodedBodySize || 0), 0), + decodedBytes: appResources.reduce((sum, entry) => sum + (entry.decodedBodySize || 0), 0), + sourceWorkExcluded: boundary === null ? null : { + requestCount: resources.filter((entry) => entry.sameOrigin && entry.startTime < boundary).length, + longTaskCount: state.longTasks.length - measuredLongTasks.length, + layoutShiftCount: state.layoutShifts.length - measuredLayoutShifts.length, + }, + navigationTiming: navigation ? { + domContentLoaded: navigation.domContentLoadedEventEnd, + loadEventEnd: navigation.loadEventEnd, + responseEnd: navigation.responseEnd, + } : null, + shellDomIdentitySurvived: transition?.shellDomIdentitySurvived ?? null, + }; + }, { target: path, chunkPattern: routeChunkPattern(routeModule).source }, { timeout: CONTENT_TIMEOUT_MS, polling: 'raf' }); + const metrics = await metricsHandle.jsonValue(); + return { + ...metrics, + kind, + label, + profile, + cacheState, + routeModule, + }; +} + +async function gotoAndMeasure(page, path, options) { + await page.goto(`${options.baseURL}${path}`, { waitUntil: 'commit', timeout: CONTENT_TIMEOUT_MS }); + await waitForContent(page, path); + await sleep(150); + return collectMetrics(page, { ...options, path }); +} + +async function measureColdRoute(browser, profile, route, baseURL) { + const { context, page } = await createContext(browser, profile, { + authenticated: route.authenticated, + cacheDisabled: true, + baseURL, + }); + try { + return await gotoAndMeasure(page, route.path, { + baseURL, + kind: 'cold-refresh', + profile: profile.name, + cacheState: 'new context, HTTP cache disabled, service workers blocked', + routeModule: route.module, + label: `Cold ${route.path}`, + }); + } finally { + await context.close(); + } +} + +async function clickRoute(page, from, to) { + if (from === '/' && to === '/app') { + await page.getByRole('link', { name: 'Start Trial' }).first().click(); + return; + } + if (to === '/app') { + await page.locator('header a[href="/app"]').first().click(); + return; + } + if (from === '/app') { + const homeLink = page.locator(`main a[href="${to}"]`).first(); + if (await homeLink.count()) { + await homeLink.click(); + return; + } + } + const label = to.split('/').pop().replace(/^[a-z]/, (letter) => letter.toUpperCase()); + if ((page.viewportSize()?.width ?? 1280) < 1024) { + await page.getByRole('button', { name: 'Open menu' }).click(); + await page.getByRole('navigation', { name: 'Mobile navigation' }).getByRole('link', { name: new RegExp(`^${label}`) }).click(); + return; + } + if (['Flowchart', 'History'].includes(label)) { + await page.locator('summary[aria-label="More"]').click(); + await page.locator('details').getByRole('link', { name: label }).click(); + return; + } + await page.getByRole('navigation', { name: 'Main navigation' }).getByRole('link', { name: label }).click(); +} + +async function clickDestination(page, transition, { measure = true } = {}) { + if (measure) await page.evaluate((target) => window.__navigationBaseline?.startTransition(target), transition.to); + await clickRoute(page, transition.from, transition.to); + await page.waitForFunction((target) => window.location.pathname === target, transition.to, { timeout: CONTENT_TIMEOUT_MS }); + await waitForContent(page, transition.to); + if (measure) { + await page.waitForFunction(() => window.__navigationBaseline?.snapshot().clickTime !== null, undefined, { timeout: CONTENT_TIMEOUT_MS }); + } + await page.waitForLoadState('domcontentloaded', { timeout: CONTENT_TIMEOUT_MS }).catch(() => undefined); + await sleep(150); +} + +async function measureTransition(browser, profile, transition, baseURL, warm) { + const { context, page } = await createContext(browser, profile, { authenticated: transition.authenticated, baseURL }); + try { + await page.goto(`${baseURL}${transition.from}`, { waitUntil: 'commit', timeout: CONTENT_TIMEOUT_MS }); + await waitForContent(page, transition.from); + let warmCacheProof = null; + if (warm) { + await clickDestination(page, transition, { measure: false }); + warmCacheProof = await page.evaluate((module) => { + const entry = performance.getEntriesByType('resource') + .filter((resource) => new RegExp(`/src/pages/${module}\\.tsx(?:[?#]|$)`, 'i').test(resource.name)) + .at(-1); + return entry ? { + url: entry.name, + startTime: entry.startTime, + responseEnd: entry.responseEnd, + transferSize: entry.transferSize, + encodedBodySize: entry.encodedBodySize, + decodedBodySize: entry.decodedBodySize, + } : null; + }, transition.module); + if (transition.from === '/') { + await page.goBack({ waitUntil: 'commit', timeout: CONTENT_TIMEOUT_MS }).catch(() => undefined); + } else { + await clickRoute(page, transition.to, transition.from); + } + await page.waitForFunction((target) => window.location.pathname === target, transition.from, { timeout: CONTENT_TIMEOUT_MS }); + await waitForContent(page, transition.from); + } + await clickDestination(page, transition); + const metrics = await collectMetrics(page, { + path: transition.to, + kind: warm ? 'warm-click' : 'first-visit-click', + profile: profile.name, + cacheState: warm ? 'same-document destination visit, same-document return, module cache warm' : 'new context, browser cache empty', + routeModule: transition.module, + label: transition.label, + }); + return warm ? { + ...metrics, + warmCacheProof: { + sameDocumentNavigation: true, + destinationWarmRequest: warmCacheProof, + measuredDestinationRequestCount: metrics.routeChunkRequests.length, + semantics: metrics.routeChunkRequests.length === 0 + ? 'destination module remained resolved across same-document return; measured click issued no destination request' + : 'destination request remained observable after same-document warm visit', + }, + } : metrics; + } finally { + await context.close(); + } +} + +async function captureDelayedTransition(browser, profile, baseURL, outputDir) { + const tempRoot = await mkdtemp(join(tmpdir(), `debatelab-delay-${profile.name}-`)); + const frameDir = join(tempRoot, 'frames'); + const videoDir = join(tempRoot, 'video'); + await mkdir(frameDir, { recursive: true }); + await mkdir(videoDir, { recursive: true }); + const { context, page } = await createContext(browser, profile, { + authenticated: true, + cacheDisabled: true, + videoDir, + baseURL, + }); + let requestedAt = null; + await page.route('**/src/pages/AttackPage.tsx*', async (route) => { + requestedAt = Date.now(); + await sleep(DELAY_MS); + await route.continue(); + }); + const transition = { from: '/app/generate', to: '/app/attack', module: 'AttackPage', label: 'Delayed Generate -> Attack' }; + const frameStates = []; + let metrics; + try { + await page.goto(`${baseURL}${transition.from}`, { waitUntil: 'commit', timeout: CONTENT_TIMEOUT_MS }); + await waitForContent(page, transition.from); + const clickPromise = clickDestination(page, transition); + for (let index = 0; index < 8; index += 1) { + await sleep(index === 0 ? 50 : 100); + frameStates.push(await page.evaluate(() => ({ + route: window.location.pathname, + fallbackVisible: Boolean(document.querySelector('[data-route-skeleton]')), + shellVisible: Boolean(document.querySelector('header')), + }))); + await page.screenshot({ path: join(frameDir, `frame-${String(index).padStart(2, '0')}.png`) }); + } + await clickPromise; + await page.waitForFunction((target) => window.location.pathname === target, transition.to, { timeout: CONTENT_TIMEOUT_MS }); + await waitForContent(page, transition.to); + await sleep(150); + metrics = await collectMetrics(page, { + path: transition.to, + kind: 'delayed-click', + profile: profile.name, + cacheState: 'new context, HTTP cache disabled, service workers blocked', + routeModule: transition.module, + label: transition.label, + }); + metrics.delayMs = DELAY_MS; + metrics.delayRequestObserved = requestedAt !== null; + metrics.frameStates = frameStates; + } finally { + await context.close(); + } + const videos = (await readdir(videoDir)).filter((file) => file.endsWith('.webm')); + if (videos.length !== 1) throw new Error(`Expected one ${profile.name} video, found ${videos.length}.`); + const videoPath = join(outputDir, `${profile.name}-delayed.webm`); + const filmstripPath = join(outputDir, `${profile.name}-delayed-filmstrip.png`); + await copyFile(join(videoDir, videos[0]), videoPath); + const ffmpeg = spawnSync('ffmpeg', [ + '-hide_banner', '-loglevel', 'error', '-y', + '-pattern_type', 'glob', '-i', join(frameDir, 'frame-*.png'), + '-vf', 'scale=320:200:force_original_aspect_ratio=decrease,pad=320:200:(ow-iw)/2:(oh-ih)/2:black,tile=4x2:padding=8:margin=8', + '-frames:v', '1', filmstripPath, + ], { encoding: 'utf8' }); + if (ffmpeg.status !== 0) throw new Error(`ffmpeg filmstrip failed: ${ffmpeg.stderr}`); + await rm(tempRoot, { recursive: true, force: true }); + if (!metrics) throw new Error(`Delayed ${profile.name} run produced no metrics.`); + return { ...metrics, video: relative(ROOT, videoPath), filmstrip: relative(ROOT, filmstripPath) }; +} + +function normalizeModule(moduleId) { + const absoluteRoot = `${ROOT}/`; + return moduleId.startsWith(absoluteRoot) ? moduleId.slice(absoluteRoot.length) : moduleId; +} + +async function captureBundleGraph() { + const manifestPath = join(DIST_DIR, '.vite/manifest.json'); + const graphPath = join(DIST_DIR, '.vite/bundle-graph.json'); + if (!existsSync(manifestPath) || !existsSync(graphPath)) { + throw new Error('dist/.vite/manifest.json and bundle-graph.json are required. Run npm run build first.'); + } + const manifest = JSON.parse(await readFile(manifestPath, 'utf8')); + const graph = JSON.parse(await readFile(graphPath, 'utf8')); + const routeEntries = ROUTES.map((route) => { + const key = route.path === '/' ? 'src/pages/LandingPage.tsx' : `src/pages/${route.module}.tsx`; + const entry = manifest[key]; + if (!entry) throw new Error(`Manifest is missing ${key}.`); + return { route: route.path, module: key, ...entry }; + }); + const entryKey = Object.keys(manifest).find((key) => manifest[key].isEntry && manifest[key].src === 'index.html'); + if (!entryKey) throw new Error('Manifest is missing the index.html entry.'); + routeEntries.unshift({ route: 'index.html', module: entryKey, ...manifest[entryKey] }); + + const staticGraph = (file) => { + const result = new Set(); + const pending = [file]; + while (pending.length) { + const current = pending.pop(); + if (!current || result.has(current)) continue; + result.add(current); + pending.push(...(graph[current]?.imports || [])); + } + return result; + }; + const membership = new Map(); + for (const entry of routeEntries) { + for (const file of staticGraph(entry.file)) { + if (!membership.has(file)) membership.set(file, []); + membership.get(file).push(entry.route); + } + } + const chunks = []; + for (const [file, item] of Object.entries(graph)) { + const filePath = join(DIST_DIR, file); + const bytes = (await stat(filePath)).size; + chunks.push({ + file, + bytes, + gzipBytes: gzipSync(await readFile(filePath)).length, + imports: item.imports, + modules: item.modules.map(normalizeModule), + staticMembership: membership.get(file) || [], + dynamicEntry: Object.entries(manifest).find(([, value]) => value.file === file)?.[0] || null, + }); + } + return { + manifestEntries: Object.entries(manifest).map(([key, value]) => ({ key, ...value })), + routeStaticGraphs: routeEntries.map((entry) => ({ route: entry.route, file: entry.file, files: [...staticGraph(entry.file)] })), + chunks, + }; +} + +function summarize(results) { + const byKind = {}; + for (const item of results) { + byKind[item.kind] = (byKind[item.kind] || 0) + 1; + } + return { + measurements: results.length, + byKind, + delayedFilmstrips: results.filter((item) => item.kind === 'delayed-click').map((item) => item.profile), + }; +} + +async function runCleanupSelfTest() { + const calls = []; + const fakeServer = { child: {}, logDir: '/tmp/fake-vite-log' }; + const stopServerFn = async () => { calls.push('server'); }; + const removeLogDirectory = async () => { calls.push('logs'); }; + + const launchFailureCleanup = await cleanupResources({ + browser: null, + server: fakeServer, + stopServerFn, + removeLogDirectory, + }); + if (launchFailureCleanup || calls.join(',') !== 'server,logs') { + throw new Error(`Launch-failure cleanup self-test failed: ${calls.join(',')}`); + } + + calls.length = 0; + const browserCloseFailureCleanup = await cleanupResources({ + browser: { close: async () => { calls.push('browser'); throw new Error('simulated close failure'); } }, + server: fakeServer, + stopServerFn, + removeLogDirectory, + }); + if (!browserCloseFailureCleanup || calls.join(',') !== 'browser,server,logs') { + throw new Error(`Browser-close cleanup self-test failed: ${calls.join(',')}`); + } + console.log('cleanup self-test passed: launch failure and browser.close failure both clean Vite and logs'); +} + +async function main() { + await mkdir(OUTPUT_DIR, { recursive: true }); + const port = await freePort(); + const server = await startServer(port); + let browser = null; + let browserInfo = null; + const results = []; + const delayed = []; + let operationError = null; + try { + browser = await chromium.launch({ headless: true }); + browserInfo = { + name: 'Chromium', + version: browser.version(), + executablePath: chromium.executablePath(), + playwrightVersion: require('@playwright/test/package.json').version, + }; + for (const profile of PROFILES) { + for (const route of ROUTES) { + console.error(`[baseline] ${profile.name} cold ${route.path}`); + results.push(await measureColdRoute(browser, profile, route, server.baseURL)); + } + for (const transition of TRANSITIONS) { + console.error(`[baseline] ${profile.name} first ${transition.label}`); + results.push(await measureTransition(browser, profile, transition, server.baseURL, false)); + console.error(`[baseline] ${profile.name} warm ${transition.label}`); + results.push(await measureTransition(browser, profile, transition, server.baseURL, true)); + } + console.error(`[baseline] ${profile.name} delayed Generate -> Attack`); + const delayedMetrics = await captureDelayedTransition(browser, profile, server.baseURL, OUTPUT_DIR); + delayed.push(delayedMetrics); + } + } catch (error) { + operationError = error; + throw error; + } finally { + const cleanupError = await cleanupResources({ browser, server }); + if (cleanupError) { + if (operationError) { + console.error(cleanupError.stack); + } else { + throw cleanupError; + } + } + } + const bundleGraph = await captureBundleGraph(); + const metadata = { + runLabel: RUN_LABEL, + capturedAt: new Date().toISOString(), + sourceCommit: git(['rev-parse', 'origin/main']), + harnessCommit: git(['rev-parse', 'HEAD']), + nodeVersion: process.version, + npmVersion: execFileSync('npm', ['--version'], { encoding: 'utf8' }).trim(), + browser: browserInfo, + vite: { + serverMode: 'development', + productionGraphMode: 'production', + version: require('vite/package.json').version, + port, + cacheState: 'cold routes disable HTTP cache through CDP and block service workers; clicks use a fresh or warmed browser cache', + }, + profiles: PROFILES.map((profile) => ({ + name: profile.name, + viewport: profile.device.viewport, + deviceScaleFactor: profile.device.deviceScaleFactor, + isMobile: profile.device.isMobile || false, + hasTouch: profile.device.hasTouch || false, + userAgent: profile.device.userAgent || null, + networkProfile: profile.networkProfile, + cpuProfile: profile.cpuProfile, + })), + }; + const output = { metadata, summary: summarize([...results, ...delayed]), results, delayed, bundleGraph }; + const outputPath = join(OUTPUT_DIR, `${RUN_LABEL}.json`); + await writeFile(outputPath, `${JSON.stringify(output, null, 2)}\n`); + console.log(JSON.stringify({ output: relative(ROOT, outputPath), ...output.summary, port, sourceCommit: metadata.sourceCommit, harnessCommit: metadata.harnessCommit })); +} + +const run = process.argv.includes('--self-test-cleanup') ? runCleanupSelfTest : main; +run().catch((error) => { + console.error(error instanceof Error ? error.stack : error); + process.exitCode = 1; +}); diff --git a/src/App.tsx b/src/App.tsx index 0a185fd74..a4c1880c7 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,5 @@ // src/App.tsx -import { Component, Suspense, lazy, useEffect, type ErrorInfo, type ReactNode } from "react"; +import { Component, Suspense, lazy, useEffect, useState, type ErrorInfo, type ReactNode } from "react"; import { Toaster } from "@/components/ui/toaster"; import { Toaster as Sonner } from "@/components/ui/sonner"; import { TooltipProvider } from "@/components/ui/tooltip"; @@ -9,35 +9,39 @@ import { MotionConfig } from "framer-motion"; import { AppLayout } from "@/components/layout/AppLayout"; import { AuthProvider } from "@/lib/supabase/AuthProvider"; import { RequireAuth } from "@/components/auth/RequireAuth"; -import { OnboardingTour } from "@/components/features/onboarding/OnboardingTour"; import { ThemeProvider } from "@/components/ThemeProvider"; import { useSessionStorageSync } from "@/hooks/use-session-storage-sync"; -import { Loader2 } from "lucide-react"; +import { useOnboardingStore } from "@/hooks/use-onboarding"; import { OfflineIndicator } from "@/components/OfflineIndicator"; import { captureException, captureProductEvent } from "@/lib/observability"; +import { routeLoaders } from "@/lib/route-modules"; +import { RouteSkeleton, type RouteSkeletonVariant } from "@/components/loading/RouteSkeleton"; +import { useTranslation } from "react-i18next"; // Lazy load all pages for code splitting -const LandingPage = lazy(() => import("./pages/LandingPage")); -const TermsPage = lazy(() => import("./pages/TermsPage")); -const PrivacyPage = lazy(() => import("./pages/PrivacyPage")); -const HomePage = lazy(() => import("./pages/HomePage")); -const GeneratePage = lazy(() => import("./pages/GeneratePage")); -const AttackPage = lazy(() => import("./pages/AttackPage")); -const BrainstormPage = lazy(() => import("./pages/BrainstormPage")); -const FactoidsPage = lazy(() => import("./pages/FactoidsPage")); -const AskPage = lazy(() => import("./pages/AskPage")); -const CrossfirePage = lazy(() => import("./pages/CrossfirePage")); -const SettingsPage = lazy(() => import("./pages/SettingsPage")); -const HistoryPage = lazy(() => import("./pages/HistoryPage")); -const LibraryPage = lazy(() => import("./pages/LibraryPage")); -const TimerPage = lazy(() => import("./pages/TimerPage")); -const SparringPage = lazy(() => import("./pages/SparringPage")); -const AdminPage = lazy(() => import("./pages/AdminPage")); -const SharedPage = lazy(() => import("./pages/SharedPage")); -const FlowchartPage = lazy(() => import("./pages/FlowchartPage")); -const LoginPage = lazy(() => import("./pages/LoginPage")); -const SourcesPage = lazy(() => import("./pages/SourcesPage")); -const NotFound = lazy(() => import("./pages/NotFound")); +const LandingPage = lazy(routeLoaders["/"]); +const TermsPage = lazy(routeLoaders["/terms"]); +const PrivacyPage = lazy(routeLoaders["/privacy"]); +const HomePage = lazy(routeLoaders["/app"]); +const GeneratePage = lazy(routeLoaders["/app/generate"]); +const AttackPage = lazy(routeLoaders["/app/attack"]); +const BrainstormPage = lazy(routeLoaders["/app/brainstorm"]); +const FactoidsPage = lazy(routeLoaders["/app/factoids"]); +const AskPage = lazy(routeLoaders["/app/ask"]); +const CrossfirePage = lazy(routeLoaders["/app/crossfire"]); +const SettingsPage = lazy(routeLoaders["/app/settings"]); +const HistoryPage = lazy(routeLoaders["/app/history"]); +const LibraryPage = lazy(routeLoaders["/app/library"]); +const TimerPage = lazy(routeLoaders["/app/timer"]); +const SparringPage = lazy(routeLoaders["/app/sparring"]); +const AdminPage = lazy(routeLoaders["/app/admin"]); +const SharedPage = lazy(routeLoaders["/share/:code"]); +const FlowchartPage = lazy(routeLoaders["/app/flowchart"]); +const LoginPage = lazy(routeLoaders["/login"]); +const SourcesPage = lazy(routeLoaders["/expocit/sources"]); +const NotFound = lazy(routeLoaders["*"]); +const OnboardingTour = lazy(() => import("@/components/features/onboarding/OnboardingTour") + .then(({ OnboardingTour: Tour }) => ({ default: Tour }))); const queryClient = new QueryClient(); @@ -71,24 +75,51 @@ const TOOL_BY_ROUTE = new Map([ ]); function getToolForPathname(pathname: string): ToolName | undefined { - const normalizedPathname = pathname.length > 1 ? pathname.replace(/\/+$/, "") : pathname; - return TOOL_BY_ROUTE.get(normalizedPathname); + return TOOL_BY_ROUTE.get(normalizePathname(pathname)); } -// Loading fallback component -const PageLoader = () => ( -
-
-
- - -
-
-
-
-
-
-); +export type RouteFallback = { + variant: RouteSkeletonVariant; + label: string; + labelKey?: string; +}; + +const DEFAULT_ROUTE_FALLBACK: RouteFallback = { variant: "public", label: "Page", labelKey: "common.page" }; + +const ROUTE_FALLBACKS: Record = { + "/": { variant: "public", label: "DebateLab" }, + "/terms": { variant: "public", label: "Terms", labelKey: "footer.terms" }, + "/privacy": { variant: "public", label: "Privacy", labelKey: "footer.privacy" }, + "/expocit/sources": { variant: "public", label: "Sources", labelKey: "crossfire.sources" }, + "/login": { variant: "public", label: "Sign in", labelKey: "login.title" }, + "/app": { variant: "home-grid", label: "Home", labelKey: "nav.home" }, + "/app/generate": { variant: "tool-form", label: "Generate", labelKey: "nav.generate" }, + "/app/attack": { variant: "tool-form", label: "Attack", labelKey: "nav.attack" }, + "/app/brainstorm": { variant: "tool-form", label: "Brainstorm", labelKey: "nav.brainstorm" }, + "/app/factoids": { variant: "tool-form", label: "Factoids", labelKey: "nav.factoids" }, + "/app/crossfire": { variant: "tool-form", label: "Crossfire", labelKey: "nav.crossfire" }, + "/app/timer": { variant: "tool-form", label: "Timer", labelKey: "nav.timer" }, + "/app/flowchart": { variant: "tool-form", label: "Flowchart", labelKey: "nav.flowchart" }, + "/app/ask": { variant: "chat", label: "Ask", labelKey: "nav.ask" }, + "/app/sparring": { variant: "chat", label: "Sparring", labelKey: "nav.sparring" }, + "/app/history": { variant: "settings/list", label: "History", labelKey: "nav.history" }, + "/app/library": { variant: "settings/list", label: "Library", labelKey: "nav.library" }, + "/app/settings": { variant: "settings/list", label: "Settings", labelKey: "nav.settings" }, + "/app/admin": { variant: "admin/table", label: "Admin", labelKey: "settings.admin" }, +}; + +function normalizePathname(pathname: string): string { + return pathname.length > 1 ? pathname.replace(/\/+$/, "") : pathname; +} + +// eslint-disable-next-line react-refresh/only-export-components +export function getRouteFallback(pathname: string): RouteFallback { + const normalizedPathname = normalizePathname(pathname); + if (/^\/share\/[^/]+$/.test(normalizedPathname)) { + return { variant: "public", label: "Shared debate", labelKey: "sharedPage.title" }; + } + return ROUTE_FALLBACKS[normalizedPathname] ?? DEFAULT_ROUTE_FALLBACK; +} export class RouteErrorBoundary extends Component<{ children: ReactNode }, { failed: boolean }> { state = { failed: false }; @@ -130,16 +161,41 @@ export function ToolRouteAnalytics(): null { function RouteContent({ children }: { children: ReactNode }) { const location = useLocation(); + const { t } = useTranslation(); + const fallback = getRouteFallback(location.pathname); + const label = fallback.labelKey ? t(fallback.labelKey, fallback.label) : fallback.label; + const statusText = t("common.openingPage", { page: label }); return ( - }> + }> {children} ); } +function OptionalOnboardingTour() { + const location = useLocation(); + const hasCompletedOnboarding = useOnboardingStore((state) => state.hasCompletedOnboarding); + const isTourRunning = useOnboardingStore((state) => state.isTourRunning); + const shouldLoadTour = isTourRunning || (location.pathname === "/app" && !hasCompletedOnboarding); + + if (!shouldLoadTour) return null; + + return ; +} + +function TimedOnboardingTour() { + const [eligibleAt] = useState(() => typeof performance === "undefined" ? 0 : performance.now()); + + return ( + + + + ); +} + function AppRoutes() { useSessionStorageSync(); @@ -158,7 +214,7 @@ function AppRoutes() { element={ - + } @@ -192,7 +248,7 @@ const App = () => ( - + diff --git a/src/components/NavLink.tsx b/src/components/NavLink.tsx index a561a95f4..28adddf39 100644 --- a/src/components/NavLink.tsx +++ b/src/components/NavLink.tsx @@ -1,6 +1,7 @@ -import { NavLink as RouterNavLink, NavLinkProps } from "react-router-dom"; -import { forwardRef } from "react"; +import { NavLink as RouterNavLink, type NavLinkProps } from "react-router-dom"; +import { forwardRef, type FocusEvent, type PointerEvent, type TouchEvent } from "react"; import { cn } from "@/lib/utils"; +import { useRoutePrefetch } from "@/hooks/use-route-prefetch"; interface NavLinkCompatProps extends Omit { className?: string; @@ -9,7 +10,21 @@ interface NavLinkCompatProps extends Omit { } const NavLink = forwardRef( - ({ className, activeClassName, pendingClassName, to, ...props }, ref) => { + ({ + className, + activeClassName, + pendingClassName, + to, + onPointerEnter, + onPointerLeave, + onFocus, + onBlur, + onPointerDown, + onTouchStart, + ...props + }, ref) => { + const intentHandlers = useRoutePrefetch(to); + return ( ( cn(className, isActive && activeClassName, isPending && pendingClassName) } {...props} + onPointerEnter={(event: PointerEvent) => { + onPointerEnter?.(event); + if (!event.defaultPrevented) intentHandlers.onPointerEnter(event); + }} + onPointerLeave={(event: PointerEvent) => { + onPointerLeave?.(event); + intentHandlers.onPointerLeave(event); + }} + onFocus={(event: FocusEvent) => { + onFocus?.(event); + if (!event.defaultPrevented) intentHandlers.onFocus(event); + }} + onBlur={(event: FocusEvent) => { + onBlur?.(event); + intentHandlers.onBlur(event); + }} + onPointerDown={(event: PointerEvent) => { + onPointerDown?.(event); + if (!event.defaultPrevented) intentHandlers.onPointerDown(event); + }} + onTouchStart={(event: TouchEvent) => { + onTouchStart?.(event); + if (!event.defaultPrevented) intentHandlers.onTouchStart(event); + }} /> ); }, diff --git a/src/components/features/onboarding/OnboardingTour.tsx b/src/components/features/onboarding/OnboardingTour.tsx index 4ffcf978e..bce4174a5 100644 --- a/src/components/features/onboarding/OnboardingTour.tsx +++ b/src/components/features/onboarding/OnboardingTour.tsx @@ -5,7 +5,7 @@ import Joyride, { CallBackProps, STATUS, Step } from 'react-joyride'; import { useLocation } from 'react-router-dom'; import { useOnboardingStore } from '@/hooks/use-onboarding'; -export function OnboardingTour() { +export function OnboardingTour({ eligibleAt }: { eligibleAt?: number } = {}) { const { t } = useTranslation(); const { isTourRunning, hasCompletedOnboarding, setOnboardingComplete, startTour, stopTour } = useOnboardingStore(); const location = useLocation(); @@ -146,12 +146,15 @@ export function OnboardingTour() { if (hasCompletedOnboarding || location.pathname !== '/app') return; // Small delay to ensure DOM is ready on the mode overview. + const autoStartDelay = typeof performance === 'undefined' || eligibleAt === undefined + ? 500 + : Math.max(0, 500 - (performance.now() - eligibleAt)); const timer = setTimeout(() => { setTourSteps(resolveTourSteps()); startTour(); - }, 500); + }, autoStartDelay); return () => clearTimeout(timer); - }, [hasCompletedOnboarding, location.pathname, resolveTourSteps, startTour]); + }, [eligibleAt, hasCompletedOnboarding, location.pathname, resolveTourSteps, startTour]); useEffect(() => { if (isTourRunning) setTourSteps(resolveTourSteps()); diff --git a/src/components/landing/FinalCTA.tsx b/src/components/landing/FinalCTA.tsx index 7aa5bb4d4..f174cd9d1 100644 --- a/src/components/landing/FinalCTA.tsx +++ b/src/components/landing/FinalCTA.tsx @@ -2,9 +2,11 @@ import { useTranslation } from "react-i18next"; import { motion } from "framer-motion"; import { ArrowRight, Sparkles } from "lucide-react"; import { Link } from "react-router-dom"; +import { useRoutePrefetch } from "@/hooks/use-route-prefetch"; const FinalCTA = () => { const { t } = useTranslation(); + const appPrefetch = useRoutePrefetch("/app"); return (
@@ -40,7 +42,7 @@ const FinalCTA = () => { whileTap={{ scale: 0.98 }} className="mt-10 inline-flex" > - + {t('finalCta.cta')} diff --git a/src/components/landing/Hero.tsx b/src/components/landing/Hero.tsx index a5620977d..b44d483d2 100644 --- a/src/components/landing/Hero.tsx +++ b/src/components/landing/Hero.tsx @@ -3,9 +3,11 @@ import { useTranslation } from "react-i18next"; import { motion } from "framer-motion"; import { ArrowRight, CheckCircle2, Sparkles } from "lucide-react"; import { Link } from "react-router-dom"; +import { useRoutePrefetch } from "@/hooks/use-route-prefetch"; const Hero = () => { const { t } = useTranslation(); + const appPrefetch = useRoutePrefetch("/app"); const planHighlights = [ { label: t('hero.trialBadge'), value: t('hero.trialBadgeValue') }, @@ -68,6 +70,7 @@ const Hero = () => { > {t('hero.cta')} diff --git a/src/components/landing/Navbar.tsx b/src/components/landing/Navbar.tsx index 4d7219ce5..7c5760e87 100644 --- a/src/components/landing/Navbar.tsx +++ b/src/components/landing/Navbar.tsx @@ -4,11 +4,13 @@ import { motion, AnimatePresence, useReducedMotion } from "framer-motion"; import { Menu, X, ArrowRight } from "lucide-react"; import { Link } from "react-router-dom"; import { LanguageSwitcher } from "@/components/LanguageSwitcher"; +import { useRoutePrefetch } from "@/hooks/use-route-prefetch"; const Navbar = () => { const { t } = useTranslation(); const [isOpen, setIsOpen] = useState(false); const shouldReduceMotion = useReducedMotion(); + const appPrefetch = useRoutePrefetch("/app"); const navLinks = [ { href: "#features", label: t('nav.features') }, @@ -49,7 +51,7 @@ const Navbar = () => {
- + {t('nav.startTrial')} @@ -88,6 +90,7 @@ const Navbar = () => { ))} setIsOpen(false)} className="btn-primary-gradient shimmer mt-2 inline-flex items-center justify-center gap-2" > diff --git a/src/components/landing/Pricing.tsx b/src/components/landing/Pricing.tsx index 004798953..53e5e822b 100644 --- a/src/components/landing/Pricing.tsx +++ b/src/components/landing/Pricing.tsx @@ -2,9 +2,11 @@ import { useTranslation } from "react-i18next"; import { motion } from "framer-motion"; import { Check, Crown, Sparkles, Zap } from "lucide-react"; import { Link } from "react-router-dom"; +import { useRoutePrefetch } from "@/hooks/use-route-prefetch"; const Pricing = () => { const { t } = useTranslation(); + const appPrefetch = useRoutePrefetch("/app"); const TRIAL_FEATURES = [ t('pricing.trialFeature1'), @@ -70,7 +72,7 @@ const Pricing = () => { ))} - + {t('pricing.startTrial')} @@ -108,7 +110,7 @@ const Pricing = () => { ))} - + {t('pricing.subscribe')} diff --git a/src/components/layout/AppLayout.tsx b/src/components/layout/AppLayout.tsx index 4cbc5d6b2..88e25b5cf 100644 --- a/src/components/layout/AppLayout.tsx +++ b/src/components/layout/AppLayout.tsx @@ -1,5 +1,5 @@ // src/components/layout/AppLayout.tsx -import { useEffect, useRef, useState } from 'react'; +import { useCallback, useEffect, useRef, useState } from 'react'; import { Link, Outlet, useLocation } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import { @@ -26,6 +26,8 @@ import { cn } from '@/lib/utils'; import { ThemeToggle } from '@/components/ThemeToggle'; import { LanguageSwitcher } from '@/components/LanguageSwitcher'; import { AnnouncementBanner } from '@/components/layout/AnnouncementBanner'; +import { useRoutePrefetch } from '@/hooks/use-route-prefetch'; +import { useAuth } from '@/lib/supabase/AuthProvider'; import { dismissAnnouncement, listActiveAnnouncements, @@ -52,44 +54,104 @@ const primaryNavItems = navItems.filter((item) => ); const moreNavItems = navItems.filter((item) => !primaryNavItems.includes(item)); +const ANNOUNCEMENTS_STALE_MS = 60_000; + +function filterVisibleAnnouncements(announcements: UserAnnouncement[], now: number) { + return announcements.filter((announcement) => { + const startsAt = new Date(announcement.startsAt).getTime(); + const expiresAt = announcement.expiresAt ? new Date(announcement.expiresAt).getTime() : Infinity; + return startsAt <= now && expiresAt > now; + }); +} export function AppLayout() { const [mobileMenuOpen, setMobileMenuOpen] = useState(false); const [announcements, setAnnouncements] = useState([]); + const [announcementsUserId, setAnnouncementsUserId] = useState(null); const [dismissingId, setDismissingId] = useState(null); const [dismissError, setDismissError] = useState<{ announcementId: string; message: string } | null>(null); const dismissedAnnouncementIds = useRef(new Set()); const moreMenuRef = useRef(null); const mobileMenuTriggerRef = useRef(null); + const activeRequestRef = useRef(null); + const lastRequestAtRef = useRef(null); + const activeUserIdRef = useRef(null); const { t } = useTranslation(); + const { user } = useAuth(); + const userId = user?.id ?? null; const location = useLocation(); + const homePrefetch = useRoutePrefetch('/app'); + const termsPrefetch = useRoutePrefetch('/terms'); + const privacyPrefetch = useRoutePrefetch('/privacy'); - useEffect(() => { + const loadAnnouncements = useCallback(async (force = false) => { + if (!userId) return; + + const requestedAt = Date.now(); + const lastRequestedAt = lastRequestAtRef.current; + if (!force && lastRequestedAt !== null && requestedAt - lastRequestedAt < ANNOUNCEMENTS_STALE_MS) { + setAnnouncements((current) => filterVisibleAnnouncements(current, requestedAt)); + return; + } + + activeRequestRef.current?.abort(); const controller = new AbortController(); - const loadAnnouncements = async () => { - try { - const active = await listActiveAnnouncements(controller.signal); - if (!controller.signal.aborted) { - setAnnouncements(active.filter( - (announcement) => !dismissedAnnouncementIds.current.has(announcement.id), - )); - } - } catch (error) { - if (!controller.signal.aborted) { - console.warn('[Announcements] Unable to load', error instanceof Error ? error.message : 'Unknown error'); - setAnnouncements([]); - } + activeRequestRef.current = controller; + lastRequestAtRef.current = requestedAt; + + try { + const active = await listActiveAnnouncements(controller.signal); + if (controller.signal.aborted || activeUserIdRef.current !== userId) return; + setAnnouncementsUserId(userId); + setAnnouncements(filterVisibleAnnouncements( + active.filter((announcement) => !dismissedAnnouncementIds.current.has(announcement.id)), + Date.now(), + )); + } catch (error) { + if (!controller.signal.aborted && activeUserIdRef.current === userId && activeRequestRef.current === controller) { + lastRequestAtRef.current = null; + console.warn('[Announcements] Unable to load', error instanceof Error ? error.message : 'Unknown error'); + setAnnouncements([]); } - }; + } finally { + if (activeRequestRef.current === controller) activeRequestRef.current = null; + } + }, [userId]); + + useEffect(() => { + activeUserIdRef.current = userId; + activeRequestRef.current?.abort(); + activeRequestRef.current = null; + lastRequestAtRef.current = null; + dismissedAnnouncementIds.current.clear(); + setAnnouncementsUserId(userId); + setAnnouncements([]); + setDismissingId(null); setDismissError(null); - void loadAnnouncements(); - return () => controller.abort(); - }, [location.pathname]); + if (userId) void loadAnnouncements(true); + + return () => activeRequestRef.current?.abort(); + }, [loadAnnouncements, userId]); useEffect(() => { setMobileMenuOpen(false); moreMenuRef.current?.removeAttribute('open'); - }, [location.pathname]); + setDismissError(null); + setAnnouncements((current) => filterVisibleAnnouncements(current, Date.now())); + void loadAnnouncements(); + }, [loadAnnouncements, location.pathname]); + + useEffect(() => { + if (announcementsUserId !== userId) return; + const nextExpiry = Math.min(...announcements + .map((announcement) => announcement.expiresAt ? new Date(announcement.expiresAt).getTime() : Infinity)); + if (!Number.isFinite(nextExpiry)) return; + + const timer = window.setTimeout(() => { + setAnnouncements((current) => filterVisibleAnnouncements(current, Date.now())); + }, Math.min(Math.max(0, nextExpiry - Date.now()), 2_147_483_647)); + return () => window.clearTimeout(timer); + }, [announcements, announcementsUserId, userId]); useEffect(() => { const closeMenus = (event: KeyboardEvent) => { @@ -106,19 +168,22 @@ export function AppLayout() { }, [mobileMenuOpen]); const handleDismissAnnouncement = async (announcementId: string) => { + const requestUserId = userId; try { setDismissingId(announcementId); setDismissError(null); await dismissAnnouncement(announcementId); + if (activeUserIdRef.current !== requestUserId) return; dismissedAnnouncementIds.current.add(announcementId); setAnnouncements((current) => current.filter((announcement) => announcement.id !== announcementId)); } catch (error) { + if (activeUserIdRef.current !== requestUserId) return; setDismissError({ announcementId, message: error instanceof Error ? error.message : t('announcements.dismissError'), }); } finally { - setDismissingId(null); + if (activeUserIdRef.current === requestUserId) setDismissingId(null); } }; @@ -127,7 +192,7 @@ export function AppLayout() { {/* Header */}
- setMobileMenuOpen(false)} className="flex items-center gap-3 shrink-0"> + setMobileMenuOpen(false)} className="flex items-center gap-3 shrink-0">
DebateLab
@@ -242,7 +307,7 @@ export function AppLayout() { )}
- {announcements[0] && ( + {announcementsUserId === userId && announcements[0] && (

DebateLab

- {t('footer.terms')} - {t('footer.privacy')} + {t('footer.terms')} + {t('footer.privacy')}
diff --git a/src/components/loading/RouteSkeleton.tsx b/src/components/loading/RouteSkeleton.tsx new file mode 100644 index 000000000..c49ff8355 --- /dev/null +++ b/src/components/loading/RouteSkeleton.tsx @@ -0,0 +1,216 @@ +import type { ReactNode } from "react"; + +export type RouteSkeletonVariant = + | "public" + | "home-grid" + | "tool-form" + | "chat" + | "settings/list" + | "admin/table"; + +type ShapeProps = { + className: string; +}; + +const Shape = ({ className }: ShapeProps) => ( +
diff --git a/src/test/app-route-analytics-error-boundary.test.tsx b/src/test/app-route-analytics-error-boundary.test.tsx index ee253b9be..b4de9068e 100644 --- a/src/test/app-route-analytics-error-boundary.test.tsx +++ b/src/test/app-route-analytics-error-boundary.test.tsx @@ -2,7 +2,7 @@ import { fireEvent, render, screen, waitFor } from "@testing-library/react"; import type { ReactNode } from "react"; import { MemoryRouter, Route, Routes, useNavigate } from "react-router-dom"; import { beforeEach, describe, expect, it, vi } from "vitest"; -import { RouteErrorBoundary, ToolRouteAnalytics } from "@/App"; +import { getRouteFallback, RouteErrorBoundary, ToolRouteAnalytics } from "@/App"; import { RequireAuth } from "@/components/auth/RequireAuth"; import { filterObservabilityBreadcrumb } from "@/lib/observability"; @@ -43,6 +43,28 @@ const toolRoutes = [ ["/app/settings", "settings"], ] as const; +const routeFallbacks = [ + ["/", "public", "DebateLab"], + ["/app", "home-grid", "Home"], + ["/app/attack", "tool-form", "Attack"], + ["/app/ask", "chat", "Ask"], + ["/app/settings", "settings/list", "Settings"], + ["/app/admin", "admin/table", "Admin"], + ["/share/demo-code", "public", "Shared debate"], + ["/share/demo-code/", "public", "Shared debate"], + ["/share/demo-code//", "public", "Shared debate"], + ["/share/demo-code/extra", "public", "Page"], + ["/share/", "public", "Page"], + ["/share", "public", "Page"], + ["/missing", "public", "Page"], +] as const; + +describe("route fallback selection", () => { + it.each(routeFallbacks)("maps %s to the %s skeleton with %s label", (pathname, variant, label) => { + expect(getRouteFallback(pathname)).toMatchObject({ variant, label }); + }); +}); + describe("App route observability", () => { beforeEach(() => { vi.clearAllMocks(); diff --git a/src/test/components/AppLayout.test.tsx b/src/test/components/AppLayout.test.tsx index 112194341..484ab6c65 100644 --- a/src/test/components/AppLayout.test.tsx +++ b/src/test/components/AppLayout.test.tsx @@ -1,14 +1,19 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { act, fireEvent, render, screen, waitFor, within } from '@testing-library/react'; import { Link, MemoryRouter, Route, Routes } from 'react-router-dom'; import { AppLayout } from '@/components/layout/AppLayout'; import type { UserAnnouncement } from '@/lib/announcements'; -const { mockDismissAnnouncement, mockListActiveAnnouncements } = vi.hoisted(() => ({ +const { mockAuth, mockDismissAnnouncement, mockListActiveAnnouncements } = vi.hoisted(() => ({ + mockAuth: { user: { id: 'user-a' } }, mockDismissAnnouncement: vi.fn(), mockListActiveAnnouncements: vi.fn(), })); +vi.mock('@/lib/supabase/AuthProvider', () => ({ + useAuth: () => mockAuth, +})); + vi.mock('@/lib/announcements', async (importOriginal) => { const actual = await importOriginal(); return { @@ -27,8 +32,8 @@ const announcement: UserAnnouncement = { createdAt: '2026-08-31T11:00:00.000Z', }; -function renderLayout() { - return render( +function layout() { + return ( }> @@ -40,13 +45,22 @@ function renderLayout() { ); } +function renderLayout() { + return render(layout()); +} + describe('AppLayout announcements', () => { beforeEach(() => { - vi.clearAllMocks(); + vi.resetAllMocks(); + mockAuth.user = { id: 'user-a' }; mockListActiveAnnouncements.mockResolvedValue([announcement]); mockDismissAnnouncement.mockResolvedValue(undefined); }); + afterEach(() => { + vi.useRealTimers(); + }); + it('shows the active announcement and persists dismissal', async () => { renderLayout(); @@ -57,72 +71,189 @@ describe('AppLayout announcements', () => { expect(screen.queryByText('Scheduled maintenance')).not.toBeInTheDocument(); }); - it('refreshes announcements on the next page change', async () => { + it('keeps announcements stable across sibling routes', async () => { renderLayout(); await screen.findByText('Scheduled maintenance'); fireEvent.click(screen.getByRole('link', { name: 'Open next page' })); await screen.findByText('Next page'); - await waitFor(() => expect(mockListActiveAnnouncements).toHaveBeenCalledTimes(2)); + expect(mockListActiveAnnouncements).toHaveBeenCalledTimes(1); }); - it('does not show a stale dismissal error under the next announcement', async () => { - const nextAnnouncement: UserAnnouncement = { + it('retries announcements on navigation after an active load failure', async () => { + const recoveredAnnouncement = { ...announcement, title: 'Recovered announcement' }; + mockListActiveAnnouncements + .mockRejectedValueOnce(new Error('Network unavailable')) + .mockResolvedValueOnce([recoveredAnnouncement]); + + renderLayout(); + await act(async () => { + await Promise.resolve(); + }); + expect(mockListActiveAnnouncements).toHaveBeenCalledTimes(1); + + fireEvent.click(screen.getByRole('link', { name: 'Open next page' })); + + expect(await screen.findByText('Recovered announcement')).toBeInTheDocument(); + expect(mockListActiveAnnouncements).toHaveBeenCalledTimes(2); + }); + + it('keeps a dismissed announcement absent across sibling routes', async () => { + renderLayout(); + + await screen.findByText('Scheduled maintenance'); + fireEvent.click(screen.getByRole('button', { name: 'Dismiss announcement: Scheduled maintenance' })); + + await waitFor(() => expect(mockDismissAnnouncement).toHaveBeenCalledWith(announcement.id)); + fireEvent.click(screen.getByRole('link', { name: 'Open next page' })); + + await screen.findByText('Next page'); + expect(screen.queryByText('Scheduled maintenance')).not.toBeInTheDocument(); + expect(mockListActiveAnnouncements).toHaveBeenCalledTimes(1); + }); + + it('shows dismissal errors without dropping the announcement', async () => { + mockDismissAnnouncement.mockRejectedValue(new Error('Could not dismiss the announcement')); + + renderLayout(); + await screen.findByText('Scheduled maintenance'); + fireEvent.click(screen.getByRole('button', { name: 'Dismiss announcement: Scheduled maintenance' })); + + expect(await screen.findByText('Could not dismiss the announcement')).toBeInTheDocument(); + expect(screen.getByText('Scheduled maintenance')).toBeInTheDocument(); + }); + + it('loads current announcements again after a deliberate remount', async () => { + const currentAnnouncement: UserAnnouncement = { ...announcement, id: 'bbbbbbbb-cccc-4ddd-8eee-ffffffffffff', - title: 'New announcement', - body: 'This message replaced the previous one.', + title: 'Current announcement', + body: 'This message is current after refresh.', }; - let rejectDismissal: (reason: Error) => void = () => undefined; - const pendingDismissal = new Promise((_resolve, reject) => { - rejectDismissal = reject; - }); mockListActiveAnnouncements .mockResolvedValueOnce([announcement]) - .mockResolvedValueOnce([nextAnnouncement]); - mockDismissAnnouncement.mockReturnValue(pendingDismissal); + .mockResolvedValueOnce([currentAnnouncement]); - renderLayout(); + const firstRender = renderLayout(); await screen.findByText('Scheduled maintenance'); - fireEvent.click(screen.getByRole('button', { name: 'Dismiss announcement: Scheduled maintenance' })); - fireEvent.click(screen.getByRole('link', { name: 'Open next page' })); - await screen.findByText('New announcement'); + firstRender.unmount(); + renderLayout(); - rejectDismissal(new Error('Could not dismiss the old announcement')); + expect(await screen.findByText('Current announcement')).toBeInTheDocument(); + expect(mockListActiveAnnouncements).toHaveBeenCalledTimes(2); + }); + it('reloads announcements and clears dismissal state when the user changes', async () => { + const userAnnouncement = { ...announcement, title: 'User A announcement' }; + const nextUserAnnouncement = { ...announcement, title: 'User B announcement' }; + mockListActiveAnnouncements + .mockResolvedValueOnce([userAnnouncement]) + .mockResolvedValueOnce([nextUserAnnouncement]); + + const rendered = renderLayout(); + await screen.findByText('User A announcement'); + fireEvent.click(screen.getByRole('button', { name: 'Dismiss announcement: User A announcement' })); await waitFor(() => expect(mockDismissAnnouncement).toHaveBeenCalledWith(announcement.id)); - expect(screen.queryByText('Could not dismiss the old announcement')).not.toBeInTheDocument(); + + mockAuth.user = { id: 'user-b' }; + rendered.rerender(layout()); + + expect(await screen.findByText('User B announcement')).toBeInTheDocument(); + expect(mockListActiveAnnouncements).toHaveBeenCalledTimes(2); + }); + + it('ignores a late announcement response from the previous user', async () => { + let resolveUserA: (value: UserAnnouncement[]) => void = () => undefined; + const userAResponse = new Promise((resolve) => { + resolveUserA = resolve; + }); + const userBAnnouncement = { ...announcement, title: 'User B announcement' }; + mockListActiveAnnouncements + .mockReturnValueOnce(userAResponse) + .mockResolvedValueOnce([userBAnnouncement]); + + const rendered = renderLayout(); + mockAuth.user = { id: 'user-b' }; + rendered.rerender(layout()); + + expect(await screen.findByText('User B announcement')).toBeInTheDocument(); + await act(async () => { + resolveUserA([{ ...announcement, title: 'User A announcement' }]); + await userAResponse; + }); + + expect(screen.queryByText('User A announcement')).not.toBeInTheDocument(); + expect(screen.getByText('User B announcement')).toBeInTheDocument(); + expect(mockListActiveAnnouncements).toHaveBeenCalledTimes(2); + }); + + it('does not show the previous user announcement while the next user loads', async () => { + let resolveUserB: (value: UserAnnouncement[]) => void = () => undefined; + const userBResponse = new Promise((resolve) => { + resolveUserB = resolve; + }); + mockListActiveAnnouncements + .mockResolvedValueOnce([{ ...announcement, title: 'User A announcement' }]) + .mockReturnValueOnce(userBResponse); + + const rendered = renderLayout(); + await screen.findByText('User A announcement'); + mockAuth.user = { id: 'user-b' }; + rendered.rerender(layout()); + + expect(screen.queryByText('User A announcement')).not.toBeInTheDocument(); + await act(async () => { + resolveUserB([{ ...announcement, title: 'User B announcement' }]); + await userBResponse; + }); + expect(screen.getByText('User B announcement')).toBeInTheDocument(); }); - it('does not restore a dismissed announcement from a stale route load', async () => { - let resolveDismissal: () => void = () => undefined; - let resolveStaleLoad: (announcements: UserAnnouncement[]) => void = () => undefined; - const pendingDismissal = new Promise((resolve) => { - resolveDismissal = resolve; + it('hides an expired announcement while the user stays on the same route', async () => { + vi.useFakeTimers(); + vi.setSystemTime(new Date('2026-09-20T12:00:00.000Z')); + const expiringAnnouncement = { + ...announcement, + expiresAt: '2026-09-20T12:00:10.000Z', + }; + mockListActiveAnnouncements.mockResolvedValue([expiringAnnouncement]); + + renderLayout(); + await act(async () => { + await Promise.resolve(); }); - const staleLoad = new Promise((resolve) => { - resolveStaleLoad = resolve; + expect(screen.getByText('Scheduled maintenance')).toBeInTheDocument(); + + await act(async () => { + await vi.advanceTimersByTimeAsync(11_000); }); + + expect(screen.queryByText('Scheduled maintenance')).not.toBeInTheDocument(); + expect(mockListActiveAnnouncements).toHaveBeenCalledTimes(1); + }); + + it('refetches after the stale window and removes a deactivated announcement', async () => { + vi.useFakeTimers(); + vi.setSystemTime(new Date('2026-09-20T12:00:00.000Z')); mockListActiveAnnouncements .mockResolvedValueOnce([announcement]) - .mockReturnValueOnce(staleLoad); - mockDismissAnnouncement.mockReturnValue(pendingDismissal); + .mockResolvedValueOnce([]); renderLayout(); - await screen.findByText('Scheduled maintenance'); - fireEvent.click(screen.getByRole('button', { name: 'Dismiss announcement: Scheduled maintenance' })); - fireEvent.click(screen.getByRole('link', { name: 'Open next page' })); - await waitFor(() => expect(mockListActiveAnnouncements).toHaveBeenCalledTimes(2)); + await act(async () => { + await Promise.resolve(); + }); + expect(screen.getByText('Scheduled maintenance')).toBeInTheDocument(); - resolveDismissal(); - await waitFor(() => expect(screen.queryByText('Scheduled maintenance')).not.toBeInTheDocument()); + vi.setSystemTime(new Date('2026-09-20T12:01:01.000Z')); + fireEvent.click(screen.getByRole('link', { name: 'Open next page' })); await act(async () => { - resolveStaleLoad([announcement]); - await staleLoad; + await Promise.resolve(); }); expect(screen.queryByText('Scheduled maintenance')).not.toBeInTheDocument(); + expect(mockListActiveAnnouncements).toHaveBeenCalledTimes(2); }); it('keeps all tool destinations reachable across desktop and mobile navigation', async () => { diff --git a/src/test/performance-measurement-script.test.ts b/src/test/performance-measurement-script.test.ts new file mode 100644 index 000000000..c85bfaba4 --- /dev/null +++ b/src/test/performance-measurement-script.test.ts @@ -0,0 +1,12 @@ +import { readFileSync } from 'node:fs'; +import { resolve } from 'node:path'; +import { describe, expect, it } from 'vitest'; + +describe('navigation performance measurement', () => { + it('starts the resource boundary before pointer-down can prefetch a route', () => { + const source = readFileSync(resolve(process.cwd(), 'scripts/measure-navigation-performance.mjs'), 'utf8'); + + expect(source).toMatch(/startTransition\(target\) \{\s+const resourceBoundary = performance\.now\(\);/); + expect(source).not.toContain('baseline.transition.resourceBoundary = clickTime'); + }); +}); diff --git a/src/test/route-modules.test.ts b/src/test/route-modules.test.ts new file mode 100644 index 000000000..9a5112517 --- /dev/null +++ b/src/test/route-modules.test.ts @@ -0,0 +1,74 @@ +import { beforeEach, describe, expect, it, vi } from "vitest"; +import { preloadRoute, routeLoaders } from "@/lib/route-modules"; + +const rejectionState = vi.hoisted(() => ({ + failure: new Error("route import failed"), + attempts: 0, +})); + +describe("route module preloading", () => { + beforeEach(() => { + vi.restoreAllMocks(); + }); + + it("invokes a known route loader once", async () => { + const loader = vi.spyOn(routeLoaders, "/app/generate"); + + await preloadRoute("/app/generate"); + expect(loader).toHaveBeenCalledTimes(1); + }); + + it("returns the same promise for repeated calls", async () => { + const first = preloadRoute("/app/attack"); + const second = preloadRoute("/app/attack"); + + expect(second).toBe(first); + expect(routeLoaders["/app/attack"]()).toBe(first); + await first; + }); + + it("shares the preload promise when preload runs before the App loader", async () => { + const preload = preloadRoute("/app/flowchart"); + const lazyLoad = routeLoaders["/app/flowchart"](); + + expect(lazyLoad).toBe(preload); + await preload; + }); + + it("shares the preload promise when the App loader runs first", async () => { + const lazyLoad = routeLoaders["/app/settings"](); + const preload = preloadRoute("/app/settings"); + + expect(preload).toBe(lazyLoad); + await lazyLoad; + }); + + it("evicts a rejected shared import so the next call retries", async () => { + rejectionState.attempts = 0; + vi.doMock("@/pages/AdminPage", () => { + rejectionState.attempts += 1; + if (rejectionState.attempts === 1) throw rejectionState.failure; + return { default: (): null => null }; + }); + vi.resetModules(); + + try { + const isolated = await import("@/lib/route-modules"); + const first = isolated.routeLoaders["/app/admin"](); + await expect(first).rejects.toThrow(); + + const second = isolated.preloadRoute("/app/admin"); + expect(second).not.toBe(first); + await expect(second).resolves.toBeDefined(); + expect(rejectionState.attempts).toBe(2); + } finally { + vi.doUnmock("@/pages/AdminPage"); + vi.resetModules(); + } + }); + + it("returns undefined for unknown paths", () => { + expect(preloadRoute("/app/unknown")).toBeUndefined(); + expect(preloadRoute("toString")).toBeUndefined(); + }); +}); diff --git a/src/test/route-skeleton.test.tsx b/src/test/route-skeleton.test.tsx new file mode 100644 index 000000000..32122b46e --- /dev/null +++ b/src/test/route-skeleton.test.tsx @@ -0,0 +1,81 @@ +import { render, screen } from "@testing-library/react"; +import { describe, expect, it } from "vitest"; +import { RouteSkeleton, type RouteSkeletonVariant } from "@/components/loading/RouteSkeleton"; + +const variants: RouteSkeletonVariant[] = [ + "public", + "home-grid", + "tool-form", + "chat", + "settings/list", + "admin/table", +]; + +describe("RouteSkeleton", () => { + it.each(variants)("renders the %s route shape as one polite busy region", (variant) => { + const { container } = render(); + const status = screen.getByRole("status", { name: `Opening ${variant}` }); + const busyRegions = container.querySelectorAll("[data-route-skeleton]"); + const busyRegion = busyRegions[0]; + + expect(screen.getAllByRole("status")).toHaveLength(1); + expect(status).toHaveAttribute("aria-live", "polite"); + expect(status).toHaveClass("sr-only"); + expect(status).toHaveTextContent(`Opening ${variant}`); + expect(status).not.toHaveAttribute("aria-busy"); + expect(status.closest('[aria-busy="true"]')).toBeNull(); + expect(busyRegions).toHaveLength(1); + expect(busyRegion).toHaveAttribute("aria-busy", "true"); + expect(busyRegion).toHaveAttribute("data-route-skeleton", variant); + expect(busyRegion).not.toHaveAttribute("role", "status"); + expect(busyRegion).toHaveClass("min-h-[60vh]"); + expect(busyRegion).toHaveTextContent(/^$/); + expect(container.querySelectorAll("[data-route-skeleton-shape]").length).toBeGreaterThan(0); + }); + + it.each(variants)("keeps %s decorative shapes hidden and inert", (variant) => { + const { container } = render(); + + expect(container.querySelectorAll("a, button, input, select, textarea")).toHaveLength(0); + expect(container.querySelectorAll('[tabindex]:not([tabindex="-1"])')).toHaveLength(0); + + for (const shape of container.querySelectorAll("[data-route-skeleton-shape]")) { + expect(shape).toHaveAttribute("aria-hidden", "true"); + expect(shape).not.toHaveAttribute("tabindex"); + } + }); + + it("keeps the main landmark while a public route loads", () => { + render(); + + expect(screen.getByRole("main")).toHaveAttribute("data-route-skeleton", "public"); + }); + + it.each(variants)("keeps %s static without animation hooks", (variant) => { + const { container } = render(); + + expect(container.querySelector('[class*="animate-"]')).toBeNull(); + expect(container.querySelector('[class*="motion-"]')).toBeNull(); + expect(container.querySelector("[style*='animation']")).toBeNull(); + }); + + it("includes a destination label without adding visible fake text", () => { + const { container } = render(); + + const status = screen.getByRole("status", { name: "Opening Attack" }); + expect(status).toHaveTextContent("Opening Attack"); + expect(container.querySelector('[data-route-skeleton="tool-form"]')).toHaveTextContent(/^$/); + }); + + it.each([ + ["es", "Atacar", "Abriendo Atacar"], + ["hu", "Támadás", "Támadás megnyitása"], + ])("accepts the %s localized route announcement", (_locale, label, statusText) => { + render(); + + const status = screen.getByRole("status", { name: statusText }); + expect(status).toHaveTextContent(statusText); + expect(status).not.toHaveTextContent("Opening"); + expect(status).not.toHaveTextContent("Attack"); + }); +}); diff --git a/src/test/use-route-prefetch.test.tsx b/src/test/use-route-prefetch.test.tsx new file mode 100644 index 000000000..279c395c8 --- /dev/null +++ b/src/test/use-route-prefetch.test.tsx @@ -0,0 +1,239 @@ +import { act, fireEvent, render, screen } from '@testing-library/react'; +import type { ComponentProps } from 'react'; +import { MemoryRouter, Route, Routes } from 'react-router-dom'; +import type { To } from 'react-router-dom'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; +import { NavLink } from '@/components/NavLink'; +import { useRoutePrefetch } from '@/hooks/use-route-prefetch'; + +const { mockPreloadRoute } = vi.hoisted(() => ({ + mockPreloadRoute: vi.fn(), +})); + +vi.mock('@/lib/route-modules', () => ({ + preloadRoute: mockPreloadRoute, + routeLoaders: { + '/app/attack': vi.fn(), + }, +})); + +function IntentLink({ to }: { to: To }) { + const intentHandlers = useRoutePrefetch(to); + return ( + + Destination + + ); +} + +function TestLink({ to }: { to: To }) { + return ( + + + } /> + + + ); +} + +type TestNavLinkHandlers = Pick, 'onPointerDown' | 'onPointerLeave' | 'onBlur'>; + +function TestNavLink({ onPointerDown, onPointerLeave, onBlur }: TestNavLinkHandlers) { + return ( + + + + Destination + + )} + /> + + + ); +} + +function setConnection(connection: { saveData?: boolean; effectiveType?: string } | undefined) { + if (connection) { + Object.defineProperty(navigator, 'connection', { + configurable: true, + value: connection, + }); + return; + } + + Reflect.deleteProperty(navigator, 'connection'); +} + +describe('useRoutePrefetch', () => { + beforeEach(() => { + vi.useFakeTimers(); + mockPreloadRoute.mockReset(); + setConnection(undefined); + }); + + afterEach(() => { + setConnection(undefined); + vi.useRealTimers(); + }); + + it('waits briefly before prefetching on hover', () => { + render(); + + fireEvent.pointerEnter(screen.getByRole('link')); + expect(mockPreloadRoute).not.toHaveBeenCalled(); + + act(() => vi.advanceTimersByTime(99)); + expect(mockPreloadRoute).not.toHaveBeenCalled(); + + act(() => vi.advanceTimersByTime(1)); + expect(mockPreloadRoute).toHaveBeenCalledWith('/app/attack'); + }); + + it('cancels a hover prefetch when the pointer leaves first', () => { + render(); + const link = screen.getByRole('link'); + + fireEvent.pointerEnter(link); + fireEvent.pointerLeave(link); + act(() => vi.advanceTimersByTime(100)); + + expect(mockPreloadRoute).not.toHaveBeenCalled(); + }); + + it('waits briefly before prefetching on keyboard focus', () => { + render(); + + fireEvent.focus(screen.getByRole('link')); + act(() => vi.advanceTimersByTime(100)); + + expect(mockPreloadRoute).toHaveBeenCalledWith('/app/attack'); + }); + + it('prefetches immediately on pointer-down intent', () => { + render(); + + fireEvent.pointerDown(screen.getByRole('link'), { pointerType: 'touch' }); + + expect(mockPreloadRoute).toHaveBeenCalledWith('/app/attack'); + }); + + it('resolves relative string destinations against the current route', () => { + render(); + + fireEvent.pointerDown(screen.getByRole('link')); + + expect(mockPreloadRoute).toHaveBeenCalledWith('/app/attack'); + }); + + it('resolves relative object destinations against the current route', () => { + render(); + + fireEvent.pointerDown(screen.getByRole('link')); + + expect(mockPreloadRoute).toHaveBeenCalledWith('/app/attack'); + }); + + it('uses the pathname for same-origin absolute destinations', () => { + render(); + + fireEvent.pointerDown(screen.getByRole('link')); + + expect(mockPreloadRoute).toHaveBeenCalledWith('/app/attack'); + }); + + it('deduplicates repeated intent signals for one destination', () => { + render(); + const link = screen.getByRole('link'); + + fireEvent.pointerEnter(link); + act(() => vi.advanceTimersByTime(100)); + fireEvent.focus(link); + fireEvent.pointerDown(link); + + expect(mockPreloadRoute).toHaveBeenCalledTimes(1); + }); + + it.each([ + ['Save-Data', { saveData: true }], + ['slow-2g', { effectiveType: 'slow-2g' }], + ['2g', { effectiveType: '2g' }], + ])('skips prefetch for %s connections', (_label, connection) => { + setConnection(connection); + render(); + + fireEvent.pointerDown(screen.getByRole('link')); + act(() => vi.advanceTimersByTime(100)); + + expect(mockPreloadRoute).not.toHaveBeenCalled(); + }); + + it.each([ + ['3g', { effectiveType: '3g' }], + ['missing Network Information', undefined], + ])('allows prefetch for %s connections', (_label, connection) => { + setConnection(connection); + render(); + + fireEvent.pointerDown(screen.getByRole('link')); + + expect(mockPreloadRoute).toHaveBeenCalledWith('/app/attack'); + }); + + it('ignores unknown and external URLs', () => { + const { rerender } = render(); + + fireEvent.pointerDown(screen.getByRole('link')); + rerender(); + fireEvent.pointerDown(screen.getByRole('link')); + + expect(mockPreloadRoute).not.toHaveBeenCalled(); + }); + + it('cleans up a pending timer on unmount', () => { + const { unmount } = render(); + fireEvent.pointerEnter(screen.getByRole('link')); + + unmount(); + act(() => vi.advanceTimersByTime(100)); + + expect(mockPreloadRoute).not.toHaveBeenCalled(); + }); + + it('lets a consumer prevent pointer-down prefetch', () => { + render( event.preventDefault()} />); + + fireEvent.pointerDown(screen.getByRole('link')); + + expect(mockPreloadRoute).not.toHaveBeenCalled(); + }); + + it('always cancels a pointer timer when the consumer prevents default', () => { + render( event.preventDefault()} />); + const link = screen.getByRole('link'); + + fireEvent.pointerEnter(link); + fireEvent.pointerLeave(link); + act(() => vi.advanceTimersByTime(100)); + + expect(mockPreloadRoute).not.toHaveBeenCalled(); + }); + + it('always cancels a focus timer when the consumer prevents default', () => { + render( event.preventDefault()} />); + const link = screen.getByRole('link'); + + fireEvent.focus(link); + fireEvent.blur(link); + act(() => vi.advanceTimersByTime(100)); + + expect(mockPreloadRoute).not.toHaveBeenCalled(); + }); +}); diff --git a/src/test/vercel-deployment-config.test.ts b/src/test/vercel-deployment-config.test.ts index 2c257dd6c..28a0db737 100644 --- a/src/test/vercel-deployment-config.test.ts +++ b/src/test/vercel-deployment-config.test.ts @@ -24,6 +24,7 @@ function loadConfig(): VercelConfig { function loadPackageJson(): { engines?: { node?: string }; dependencies?: Record; + scripts?: Record; } { return JSON.parse(readFileSync(resolve(process.cwd(), "package.json"), "utf8")); } @@ -133,6 +134,14 @@ describe("Vercel frontend deployment configuration", () => { expect(mainSource).not.toContain("preloadOfflineRoutes"); }); + it("keeps route chunks out of the initial document and runs the graph gate", () => { + const indexHtml = readProjectFile("index.html"); + const packageJson = loadPackageJson(); + + expect(indexHtml).not.toMatch(/rel="(?:modulepreload|preload|prefetch)"[^>]*(?:pages|LandingPage|LoginPage|HomePage|GeneratePage|AttackPage)/i); + expect(packageJson.scripts?.build).toBe("vite build && node scripts/check-build-boundaries.mjs"); + }); + it("caches the offline shell and only caches feature assets after they are visited", () => { const serviceWorker = readProjectFile("public/sw.js"); expect(serviceWorker).toContain("cache.put('/index.html', response.clone())");