Files
Matthew Raymer 5247a37fac fix: resolve build failures, security issues, and architectural improvements
Critical Fixes:
- Remove missing sw_combine.js from prebuild script and all documentation
- Remove missing test-safety-check.sh from test:all script
- Add build:web:build alias to fix docker commands
- Fix syntax errors in validate-critical-files.sh script

Security:
- Fix Electron path traversal vulnerability in export-data-to-downloads handler
  - Sanitize file names using basename() to prevent directory traversal
  - Enforce allowed file extensions (.json, .txt, .csv, .md, .log)
  - Add validation for empty names, path separators, and length limits

Architecture Improvements:
- Add queue size guard to CapacitorPlatformService (max 1000 operations)
  - Fail-fast when queue is full to prevent memory exhaustion
  - Add warning at 80% capacity
  - Add getQueueTelemetry() method for monitoring queue health
  - Track peak queue size for diagnostics

- Standardize environment variable usage in PlatformServiceFactory
  - Prefer import.meta.env.VITE_PLATFORM (standard Vite pattern)
  - Maintain backward compatibility with process.env fallback

Documentation:
- Clarify PWA status: remove misleading VitePWA comments
- Update BUILDING.md to reflect removed sw_combine.js step
- Update build-arch-guard.sh to remove sw_combine.js from protected files

All changes maintain backward compatibility and improve code quality.
2026-01-01 10:54:07 +00:00
..
2024-07-19 14:40:48 -06:00

TimeSafari Docs

Generating PDF from Markdown on OSx

This uses Pandoc and BasicTex (LaTeX) Installed through Homebrew.

Set Up

brew install pandoc

brew install basictex

# Setting up LaTex packages

# First update tlmgr
sudo tlmgr update --self

# Then install LaTex packages
sudo tlmgr install bbding
sudo tlmgr install enumitem
sudo tlmgr install environ
sudo tlmgr install fancyhdr
sudo tlmgr install framed
sudo tlmgr install import
sudo tlmgr install lastpage  # Enables Page X of Y
sudo tlmgr install mdframed
sudo tlmgr install multirow
sudo tlmgr install needspace
sudo tlmgr install ntheorem
sudo tlmgr install tabu
sudo tlmgr install tcolorbox
sudo tlmgr install textpos
sudo tlmgr install titlesec
sudo tlmgr install titling  # Required for the fancy headers used
sudo tlmgr install threeparttable
sudo tlmgr install trimspaces
sudo tlmgr install tocloft  # Required for \tableofcontents generation
sudo tlmgr install varwidth
sudo tlmgr install wrapfig

# Install fonts
sudo tlmgr install cmbright
sudo tlmgr install collection-fontsrecommended # And set up fonts
sudo tlmgr install fira
sudo tlmgr install fontaxes
sudo tlmgr install libertine # The main font the doc uses
sudo tlmgr install opensans
sudo tlmgr install sourceserifpro

References

The following guide was adapted to this project except that we install with Brew and have a few more packages.

Guide: https://daniel.feldroy.com/posts/setting-up-latex-on-mac-os-x

Usage

Use the pandoc command to generate a PDF.

pandoc usage-guide.md -o usage-guide.pdf 

And you can open the PDF with the open command.

open usage-guide.pdf

Or use this one-liner

pandoc usage-guide.md -o usage-guide.pdf && open usage-guide.pdf