Replace the in-repo src/anchor/ slice with a dependency on the extracted
@citation-evidence/evidence-anchor package (link:../evidence-anchor).
- package.json: add the link dependency
- repoint all @anchor/{index,selectors,types} imports and vi.mock targets to
the package barrel; the node-env anchor-source-roundtrip test uses the pure
./selectors and ./types subpaths (no pdfjs pulled into a node environment)
- drop the @anchor alias from tsconfig paths and vite resolve
- delete src/anchor/ (behavior now owned by evidence-anchor)
Verified green: pnpm typecheck, pnpm test (26 files / 95 tests), pnpm build.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
52 lines
1.8 KiB
TypeScript
52 lines
1.8 KiB
TypeScript
import { defineConfig } from "vite";
|
|
import react from "@vitejs/plugin-react";
|
|
import { viteStaticCopy } from "vite-plugin-static-copy";
|
|
import { fileURLToPath } from "node:url";
|
|
import { dirname, resolve } from "node:path";
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
react(),
|
|
// PDF.js needs its cmaps (character maps for CID fonts) and
|
|
// standard fonts (Helvetica/Times/Courier metrics) to position
|
|
// text-layer spans correctly. Without them, PDFs with embedded
|
|
// CID fonts or unembedded standard fonts get rendered to canvas
|
|
// OK but their textLayer overlays land in the wrong place — text
|
|
// appears unselectable or selection jumps to a different region.
|
|
// We serve both directories straight from `node_modules/pdfjs-dist`.
|
|
viteStaticCopy({
|
|
targets: [
|
|
{
|
|
src: resolve(__dirname, "node_modules/pdfjs-dist/cmaps") + "/[!.]*",
|
|
dest: "cmaps",
|
|
},
|
|
{
|
|
src: resolve(__dirname, "node_modules/pdfjs-dist/standard_fonts") + "/[!.]*",
|
|
dest: "standard_fonts",
|
|
},
|
|
],
|
|
}),
|
|
],
|
|
resolve: {
|
|
alias: {
|
|
"@shared": resolve(__dirname, "../citation-engine/src/shared"),
|
|
"@engine": resolve(__dirname, "../citation-engine/src/engine"),
|
|
"@source": resolve(__dirname, "src/source"),
|
|
"@binder": resolve(__dirname, "src/binder"),
|
|
"@work": resolve(__dirname, "src/work"),
|
|
"@app": resolve(__dirname, "src/app"),
|
|
},
|
|
},
|
|
server: {
|
|
fs: {
|
|
// Allow Vite to serve /fixtures/pdfs/*.pdf from the project root.
|
|
allow: [resolve(__dirname), resolve(__dirname, "../citation-engine")],
|
|
},
|
|
},
|
|
optimizeDeps: {
|
|
// pdfjs-dist ships its worker as a .mjs Vite needs to handle.
|
|
exclude: ["pdfjs-dist"],
|
|
},
|
|
});
|