pdf-free.openapps.xyz

Source

This app’s code and revision history are public. Download a copy or explore the files below.

Public
The app’s code and revision history are public.
Owned app · rev 0341fee61377
Run it yourself
Take the whole tree and run it on your own machine. The download needs no account. Cloning needs a sign-in.
Download .zip
bounded clone 7716a56ff3432bc0c1e4837c
A copy you download is not bounded. The guarantees this app runs under - declared egress, proven invariants, writes that fail closed - live in the runtime serving this page, not in the files. What you get is auditable source you can read and run, with no runtime guarantees attached.
← All files
vite.config.ts
import fs from "node:fs";
import { defineConfig, type Plugin } from "vite";
import react from "@vitejs/plugin-react";

// pdf.js fetches these at run time: WebAssembly decoders for JBIG2 and JPEG 2000 scans and ICC
// colors, and the character maps many CJK and some Latin fonts need. UTF-8 and UTF-32 maps are
// left out: PDFs almost never use them, and they would add half a megabyte to every deploy.
const PDFJS = "node_modules/pdfjs-dist";
const WASM = ["jbig2.wasm", "openjpeg.wasm", "qcms_bg.wasm"];
function pdfjsAssets(): Plugin {
  return {
    name: "pdfjs-assets",
    generateBundle() {
      for (const f of WASM) this.emitFile({ type: "asset", fileName: `pdfjs/${f}`, source: fs.readFileSync(`${PDFJS}/wasm/${f}`) });
      for (const f of fs.readdirSync(`${PDFJS}/cmaps`)) {
        if (f.endsWith(".bcmap") && !/UTF(8|32)/.test(f)) this.emitFile({ type: "asset", fileName: `pdfjs/cmaps/${f}`, source: fs.readFileSync(`${PDFJS}/cmaps/${f}`) });
      }
    },
  };
}

export default defineConfig({
  plugins: [react(), pdfjsAssets()],
  build: {
    target: "es2020",
    chunkSizeWarningLimit: 1500,
    // The pdf.js worker ships as .mjs; serve it as .js so every host sends a JavaScript content type.
    rollupOptions: { output: { assetFileNames: (a) => (a.name?.endsWith(".mjs") ? "assets/[name]-[hash].js" : "assets/[name]-[hash][extname]") } },
  },
});

Change history

Quality pass: compress, PDF to JPG, phone layout, job links, llms.txt and index.md
0341fee613 · 5 hours ago
Bounded source sync
f00de5deb0 · 1 day ago
Bounded source sync
3c8124e576 · 1 day ago
Bounded source sync
5c14663e0f · 1 day ago
Bounded source sync
ee5c852f40 · 1 day ago