c25505cdc0
Deploy / deploy (push) Successful in 1m21s
This Duplex I classis feast (instituted by Pius IX, 1847) didn't exist anywhere in vu's calendar. Dated per the older, pre-1955 reckoning -- Wednesday after the 2nd Sunday after Easter (Easter+17) -- rather than the 1913 Pius X reform's later placement on the 3rd Sunday after Easter itself, per direct instruction. Mechanism: one new temporal-feast record plus a new EASTER_OFFSET_STARTS table entry (the only code change -- everything else is the existing generic anchor-driven resolution). Authored the feast day's own Matins reading and its full 7-day octave (days 2/3/4/6/7/8; day 5, the Sunday, has no override in the source at all, correctly left unauthored). Fixed one real collateral effect: an existing fixed-year calendar test (St. Pudentiana vs. St. Peter Celestine, 2038-05-19) broke because that date now falls on this octave's own closing day, tying Celestine's rank against the octave's threshold -- the app's own documented tie-break correctly favors the octave that year. Moved the proof date to 2033. Also bumped the PWA precache file-size cap (6 MiB -> 8 MiB) since this content pull pushed the main bundle past the previous limit. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PhysogLP9eCeKS7JEwRi6y
53 lines
1.8 KiB
TypeScript
53 lines
1.8 KiB
TypeScript
/// <reference types="vitest/config" />
|
|
import { defineConfig } from 'vite';
|
|
import { VitePWA } from 'vite-plugin-pwa';
|
|
import yaml from '@rollup/plugin-yaml';
|
|
|
|
// Served under reground.org/vu (Caddy path_mount to the vu container) — every
|
|
// asset URL and the service worker's registration scope must be scoped to
|
|
// this path, or they'll resolve against the domain root instead.
|
|
const base = '/vu/';
|
|
|
|
export default defineConfig({
|
|
base,
|
|
plugins: [
|
|
yaml(),
|
|
VitePWA({
|
|
registerType: 'autoUpdate',
|
|
scope: base,
|
|
base,
|
|
manifest: {
|
|
name: 'vu',
|
|
short_name: 'vu',
|
|
start_url: base,
|
|
scope: base,
|
|
display: 'standalone',
|
|
background_color: '#f7f3ea',
|
|
theme_color: '#7a2e2e',
|
|
icons: [
|
|
{ src: 'icons/icon-192.png', sizes: '192x192', type: 'image/png' },
|
|
{ src: 'icons/icon-512.png', sizes: '512x512', type: 'image/png' },
|
|
],
|
|
},
|
|
workbox: {
|
|
// Precache everything the shell needs so a day's office renders
|
|
// fully offline once visited once.
|
|
globPatterns: ['**/*.{js,css,html,ico,png,svg,woff2}'],
|
|
// Default cap (2 MiB) is too small once the sanctoral pull's real
|
|
// propers/octave-reading text (all eagerly bundled, by design, for
|
|
// offline use) pushes the main chunk past it -- raised again
|
|
// (2026-08-28, was 6 MiB) once the movable-octave content (Ascension/
|
|
// Corpus Christi/Sacred Heart/Patronage of St. Joseph) pushed the
|
|
// bundle past the previous cap. Bump this again, with headroom, if
|
|
// a future content pull hits it -- this is deliberate bundling, not
|
|
// bloat to trim (see CLAUDE.md).
|
|
maximumFileSizeToCacheInBytes: 8 * 1024 * 1024,
|
|
},
|
|
}),
|
|
],
|
|
test: {
|
|
environment: 'jsdom',
|
|
globals: false,
|
|
},
|
|
});
|