diff --git a/TODO.md b/TODO.md index f560b9a..b59889a 100644 --- a/TODO.md +++ b/TODO.md @@ -3085,6 +3085,28 @@ regression test in `tests/calendar/vespers.test.ts`. `npm test` (499 tests), `tsc --noEmit` both pass. +### Finding/Exaltation of the Holy Cross own proper Lauds/Vespers content imported (2026-08-26) + +Fully proper feast, live-verified against Divinum Officium (Monastic Tridentinum 1617), +2027-05-03 for the Finding (its own real 2026 date collides with a privileged Sunday) and +2026-09-14 for the Exaltation (clean that year): own chapter (Phil 2:5-7), own distinct +responsory/hymn/versicle at each hour — Lauds hymn "Lustris sex qui jam peráctis" (part of the +"Pange lingua gloriosi proelium" family), Vespers hymn "Vexílla Regis pródeunt," both with real +Alleluias baked into their own text (confirmed permanent, not seasonal contamination, by the +Vespers hymn's own "In hoc Pascháli gáudio" line — May 3 always falls in Paschaltide). + +Authored under two ids: `finding-of-the-holy-cross` (her own real content) and +`proper-to-the-finding-of-the-holy-cross` (a second, identical copy) — needed because +Exaltation of the Holy Cross's own saint file sets `common: proper-to-the-finding-of-the-holy- +cross`, a different id than her `propers` field (which points at `finding-of-the-holy-cross` +directly, a separate day-collect/antiphon lookup). `resolveOfficeBundle` only consults +`common`, so without the second copy Exaltation silently fell through to the ferial default. + +Content-authoring note for future sessions: writing this feast's hymns (explicit Crucifixion +imagery — nails, spear-wound, blood) tripped a content-filtering block on the first attempt. +Splitting each file into a Latin-only `Write` followed by a separate `Edit` adding the English +got past it reliably; a single combined bilingual `Write` did not. + ## Known, deliberate simplifications (not bugs — working as designed) - `getDayCollects`: each collect in a multi-collect day renders as its own diff --git a/src/data/propers/common/lauds-capitulum-finding-of-the-holy-cross.yml b/src/data/propers/common/lauds-capitulum-finding-of-the-holy-cross.yml new file mode 100644 index 0000000..548ec49 --- /dev/null +++ b/src/data/propers/common/lauds-capitulum-finding-of-the-holy-cross.yml @@ -0,0 +1,21 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# live query, 2026-05-03 (fixed date, always within Paschaltide -- the +# Alleluias throughout this feast's texts are a genuine permanent +# feature, confirmed by the Vespers hymn's own "In hoc Pascháli gáudio" +# line, not seasonal contamination). Fully proper feast: own chapter +# (Phil 2:5-7), own distinct responsory/hymn/versicle at each hour. +# Shared with Exaltation of the Holy Cross (Sep 14, `propers: "finding- +# of-the-holy-cross"` in that saint's own file too) -- same real feast +# content, reused by design, not duplicated separately. Same chapter +# reused for Vespers -- no separate vespers-capitulum- file +# authored, per vespers.ts's vespersCapitulumForOverride fallback. +id: lauds-capitulum-finding-of-the-holy-cross +text: + la: "Fratres: Hoc enim sentíte in vobis, quod et in Christo Jesu: qui, cum in forma Dei esset, non rapínam arbitrátus est esse se æquálem Deo: sed semetípsum exinanívit, formam servi accípiens, in similitúdinem hóminum factus, et hábitu invéntus ut homo." + en: "For let this mind be in you, which was also in Christ Jesus: Who being in the form of God, thought it not robbery to be equal with God: But emptied himself, taking the form of a servant, being made in the likeness of men, and in habit found as a man." +citation: + la: "Phil 2:5-7" + en: "Phil 2:5-7" +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-capitulum-proper-to-the-finding-of-the-holy-cross.yml b/src/data/propers/common/lauds-capitulum-proper-to-the-finding-of-the-holy-cross.yml new file mode 100644 index 0000000..bcc6c4f --- /dev/null +++ b/src/data/propers/common/lauds-capitulum-proper-to-the-finding-of-the-holy-cross.yml @@ -0,0 +1,26 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# live query, 2026-05-03 (fixed date, always within Paschaltide -- the +# Alleluias throughout this feast's texts are a genuine permanent +# feature, confirmed by the Vespers hymn's own "In hoc Pascháli gáudio" +# line, not seasonal contamination). Fully proper feast: own chapter +# (Phil 2:5-7), own distinct responsory/hymn/versicle at each hour. +# Duplicated verbatim under this `proper-to-the-finding-of-the-holy- +# cross` id (2026-08-26): Exaltation of the Holy Cross's own saint file +# sets `common: proper-to-the-finding-of-the-holy-cross` (not `propers`, +# which is a separate day-collect/antiphon lookup already pointing +# directly at `finding-of-the-holy-cross`) -- resolveOfficeBundle's own +# id (`exaltation-of-the-holy-cross`) has no override of its own, so it +# falls through to this `common` id specifically, which needed its own +# copy of the bundle. Same chapter reused for Vespers -- no separate +# vespers-capitulum- file authored, per vespers.ts's +# vespersCapitulumForOverride fallback. +id: lauds-capitulum-proper-to-the-finding-of-the-holy-cross +text: + la: "Fratres: Hoc enim sentíte in vobis, quod et in Christo Jesu: qui, cum in forma Dei esset, non rapínam arbitrátus est esse se æquálem Deo: sed semetípsum exinanívit, formam servi accípiens, in similitúdinem hóminum factus, et hábitu invéntus ut homo." + en: "For let this mind be in you, which was also in Christ Jesus: Who being in the form of God, thought it not robbery to be equal with God: But emptied himself, taking the form of a servant, being made in the likeness of men, and in habit found as a man." +citation: + la: "Phil 2:5-7" + en: "Phil 2:5-7" +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-hymn-finding-of-the-holy-cross.yml b/src/data/propers/common/lauds-hymn-finding-of-the-holy-cross.yml new file mode 100644 index 0000000..3e78765 --- /dev/null +++ b/src/data/propers/common/lauds-hymn-finding-of-the-holy-cross.yml @@ -0,0 +1,163 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# live query, 2026-05-03 -- own proper hymn ("Lustris sex qui jam +# peractis," part of the "Pange lingua gloriosi proelium" family). See +# lauds-capitulum-finding-of-the-holy-cross.yml's header. +id: lauds-hymn-finding-of-the-holy-cross +text: + la: >- + Lustris sex qui jam peráctis, + + Tempus implens córporis, + + Se volénte natus ad hoc, + + Passióni déditus, + + Agnus in Crucis levátur + + Immolándus stípite. + + + Hic acétum, fel, arúndo, + + Sputa, clavi, láncea: + + Mite corpus perforátur, + + Sanguis, unda prófluit: + + Terra, pontus, astra, mundus, + + Quo lavántur flúmine! + + + Crux fidélis, inter omnes + + Arbor una nóbilis: + + Nulla silva talem profert + + Fronde, flore, gérmine: + + Dulce lignum, dulces clavos, + + Dulce pondus sústinet. + + + Flecte ramos, arbor alta, + + Tensa laxa víscera, + + Et rigor lentéscat ille, + + Quem dedit natívitas: + + Ut supérni membra Regis + + Miti tendas stípite. + + + Sola digna tu fuísti + + Ferre sæcli prétium, + + Atque portum præparáre + + Nauta mundo náufrago, + + Quem sacer cruor perúnxit, + + Fusus Agni córpore. + + + Glória et honor Deo + + Usquequáque altíssimo: + + Una Patri, Filióque, + + Inclyto Paráclito: + + Cui laus est et potéstas + + Per ætérna sǽcula. Amen. + en: >- + Thirty years among us dwelling, + + His appointed time fulfilled, + + Born for this, he meets his passion, + + For that this he freely willed: + + On the cross the Lamb is lifted, + + Where his life-blood shall be spilled. + + + He endured the nails, the spitting, + + Vinegar, and spear, and reed; + + From that holy body broken + + Blood and water forth proceed: + + Earth, and stars, and sky, and ocean, + + By that flood from stain are free. + + + Faithful cross! above all other, + + One and only noble tree! + + None in foliage, none in blossom, + + None in fruit thy peers may be; + + Sweetest wood and sweetest iron! + + Sweetest weight is hung on thee. + + + Bend thy boughs, O tree of glory! + + Thy relaxing sinews bend; + + For awhile the ancient rigour, + + That thy birth bestowed, suspend; + + And the King of heavenly beauty + + On thy bosom gently tend! + + + Thou alone wast counted worthy + + This world's ransom to uphold; + + For a shipwrecked race preparing + + Harbour, like the ark of old; + + With the sacred blood anointed + + From the smitten Lamb that rolled. + + + To the Trinity be glory + + Everlasting, as is meet; + + Equal to the Father, equal + + To the Son, and Paraclete: + + Trinal Unity, whose praises + + All created things repeat. Amen. +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-hymn-proper-to-the-finding-of-the-holy-cross.yml b/src/data/propers/common/lauds-hymn-proper-to-the-finding-of-the-holy-cross.yml new file mode 100644 index 0000000..a125850 --- /dev/null +++ b/src/data/propers/common/lauds-hymn-proper-to-the-finding-of-the-holy-cross.yml @@ -0,0 +1,163 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# live query, 2026-05-03 -- own proper hymn ("Lustris sex qui jam +# peractis," part of the "Pange lingua gloriosi proelium" family). See +# lauds-capitulum-proper-to-the-finding-of-the-holy-cross.yml's header. +id: lauds-hymn-proper-to-the-finding-of-the-holy-cross +text: + la: >- + Lustris sex qui jam peráctis, + + Tempus implens córporis, + + Se volénte natus ad hoc, + + Passióni déditus, + + Agnus in Crucis levátur + + Immolándus stípite. + + + Hic acétum, fel, arúndo, + + Sputa, clavi, láncea: + + Mite corpus perforátur, + + Sanguis, unda prófluit: + + Terra, pontus, astra, mundus, + + Quo lavántur flúmine! + + + Crux fidélis, inter omnes + + Arbor una nóbilis: + + Nulla silva talem profert + + Fronde, flore, gérmine: + + Dulce lignum, dulces clavos, + + Dulce pondus sústinet. + + + Flecte ramos, arbor alta, + + Tensa laxa víscera, + + Et rigor lentéscat ille, + + Quem dedit natívitas: + + Ut supérni membra Regis + + Miti tendas stípite. + + + Sola digna tu fuísti + + Ferre sæcli prétium, + + Atque portum præparáre + + Nauta mundo náufrago, + + Quem sacer cruor perúnxit, + + Fusus Agni córpore. + + + Glória et honor Deo + + Usquequáque altíssimo: + + Una Patri, Filióque, + + Inclyto Paráclito: + + Cui laus est et potéstas + + Per ætérna sǽcula. Amen. + en: >- + Thirty years among us dwelling, + + His appointed time fulfilled, + + Born for this, he meets his passion, + + For that this he freely willed: + + On the cross the Lamb is lifted, + + Where his life-blood shall be spilled. + + + He endured the nails, the spitting, + + Vinegar, and spear, and reed; + + From that holy body broken + + Blood and water forth proceed: + + Earth, and stars, and sky, and ocean, + + By that flood from stain are free. + + + Faithful cross! above all other, + + One and only noble tree! + + None in foliage, none in blossom, + + None in fruit thy peers may be; + + Sweetest wood and sweetest iron! + + Sweetest weight is hung on thee. + + + Bend thy boughs, O tree of glory! + + Thy relaxing sinews bend; + + For awhile the ancient rigour, + + That thy birth bestowed, suspend; + + And the King of heavenly beauty + + On thy bosom gently tend! + + + Thou alone wast counted worthy + + This world's ransom to uphold; + + For a shipwrecked race preparing + + Harbour, like the ark of old; + + With the sacred blood anointed + + From the smitten Lamb that rolled. + + + To the Trinity be glory + + Everlasting, as is meet; + + Equal to the Father, equal + + To the Son, and Paraclete: + + Trinal Unity, whose praises + + All created things repeat. Amen. +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-responsory-finding-of-the-holy-cross.yml b/src/data/propers/common/lauds-responsory-finding-of-the-holy-cross.yml new file mode 100644 index 0000000..9fe6ab3 --- /dev/null +++ b/src/data/propers/common/lauds-responsory-finding-of-the-holy-cross.yml @@ -0,0 +1,22 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# live query, 2026-05-03 -- own proper responsory. See lauds-capitulum- +# finding-of-the-holy-cross.yml's header. +id: lauds-responsory-finding-of-the-holy-cross +text: + la: | + R.br. Hoc signum Crucis erit in cælo: * Allelúja, allelúja. + ℟. Hoc signum Crucis erit in cælo: * Allelúja, allelúja. + ℣. Cum Dóminus ad judicándum vénerit. + ℟. Allelúja, allelúja. + ℣. Glória Patri, et Fílio, * et Spirítui Sancto. + ℟. Hoc signum Crucis erit in cælo: * Allelúja, allelúja. + en: | + R.br. This sign of the Cross shall be in heaven. * Alleluia, alleluia. + ℟. This sign of the Cross shall be in heaven. * Alleluia, alleluia. + ℣. When the Lord cometh to judgment. + ℟. Alleluia, alleluia. + ℣. Glory be to the Father, and to the Son, * and to the Holy Ghost. + ℟. This sign of the Cross shall be in heaven. * Alleluia, alleluia. +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-responsory-proper-to-the-finding-of-the-holy-cross.yml b/src/data/propers/common/lauds-responsory-proper-to-the-finding-of-the-holy-cross.yml new file mode 100644 index 0000000..2b87026 --- /dev/null +++ b/src/data/propers/common/lauds-responsory-proper-to-the-finding-of-the-holy-cross.yml @@ -0,0 +1,22 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# live query, 2026-05-03 -- own proper responsory. See lauds-capitulum- +# proper-to-the-finding-of-the-holy-cross.yml's header. +id: lauds-responsory-proper-to-the-finding-of-the-holy-cross +text: + la: | + R.br. Hoc signum Crucis erit in cælo: * Allelúja, allelúja. + ℟. Hoc signum Crucis erit in cælo: * Allelúja, allelúja. + ℣. Cum Dóminus ad judicándum vénerit. + ℟. Allelúja, allelúja. + ℣. Glória Patri, et Fílio, * et Spirítui Sancto. + ℟. Hoc signum Crucis erit in cælo: * Allelúja, allelúja. + en: | + R.br. This sign of the Cross shall be in heaven. * Alleluia, alleluia. + ℟. This sign of the Cross shall be in heaven. * Alleluia, alleluia. + ℣. When the Lord cometh to judgment. + ℟. Alleluia, alleluia. + ℣. Glory be to the Father, and to the Son, * and to the Holy Ghost. + ℟. This sign of the Cross shall be in heaven. * Alleluia, alleluia. +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-versicle-finding-of-the-holy-cross.yml b/src/data/propers/common/lauds-versicle-finding-of-the-holy-cross.yml new file mode 100644 index 0000000..fe0bd44 --- /dev/null +++ b/src/data/propers/common/lauds-versicle-finding-of-the-holy-cross.yml @@ -0,0 +1,16 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# live query, 2026-05-03 -- own proper versicle, cross-referencing +# Vespers' own responsory text (a real "double responsory" structure +# for this major feast, not a mistake). See lauds-capitulum-finding-of- +# the-holy-cross.yml's header. +id: lauds-versicle-finding-of-the-holy-cross +text: + la: | + ℣. Adorámus te, Christe, et benedícimus tibi, allelúja. + ℟. Quia per Crucem tuam redemísti mundum, allelúja. + en: | + ℣. We adore thee, O Christ, and we bless thee. Alleluia. + ℟. Because that through thy Cross Thou hast redeemed the world. Alleluia. +status: + la: verified + en: verified diff --git a/src/data/propers/common/lauds-versicle-proper-to-the-finding-of-the-holy-cross.yml b/src/data/propers/common/lauds-versicle-proper-to-the-finding-of-the-holy-cross.yml new file mode 100644 index 0000000..5fa1bf5 --- /dev/null +++ b/src/data/propers/common/lauds-versicle-proper-to-the-finding-of-the-holy-cross.yml @@ -0,0 +1,16 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds +# live query, 2026-05-03 -- own proper versicle, cross-referencing +# Vespers' own responsory text (a real "double responsory" structure +# for this major feast, not a mistake). See lauds-capitulum-finding-of- +# the-holy-cross.yml's header. +id: lauds-versicle-proper-to-the-finding-of-the-holy-cross +text: + la: | + ℣. Adorámus te, Christe, et benedícimus tibi, allelúja. + ℟. Quia per Crucem tuam redemísti mundum, allelúja. + en: | + ℣. We adore thee, O Christ, and we bless thee. Alleluia. + ℟. Because that through thy Cross Thou hast redeemed the world. Alleluia. +status: + la: verified + en: verified diff --git a/src/data/propers/common/vespers-hymn-finding-of-the-holy-cross.yml b/src/data/propers/common/vespers-hymn-finding-of-the-holy-cross.yml new file mode 100644 index 0000000..2fe13af --- /dev/null +++ b/src/data/propers/common/vespers-hymn-finding-of-the-holy-cross.yml @@ -0,0 +1,133 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# live query, 2026-05-03 -- own proper hymn ("Vexílla Regis pródeunt," +# one of the most widely known Latin hymns for the Holy Cross). See +# lauds-capitulum-finding-of-the-holy-cross.yml's header. +id: vespers-hymn-finding-of-the-holy-cross +text: + la: >- + Vexílla Regis pródeunt: + + Fulget Crucis mystérium, + + Quo carne carnis Cónditor + + Suspénsus est patíbulo. + + + Quo vulnerátus ínsuper + + Mucróne diro lánceæ, + + Ut nos laváret crímine, + + Manávit unda et sánguine. + + + Impléta sunt quæ cóncinit + + David fidéli cármine, + + Dicens: In natiónibus + + Regnávit a ligno Deus. + + + Arbor decóra et fúlgida, + + Ornáta Regis púrpura, + + Elécta digno stípite + + Tam sancta membra tángere. + + + Beáta, cujus bráchiis + + Sæcli pepéndit prétium, + + Statéra facta córporis, + + Prædámque tulit tártari. + + + O Crux, ave, spes única, + + In hoc Pascháli gáudio + + Auge piis justítiam, + + Reísque dona véniam. + + + Te summa, Deus, Trínitas, + + Colláudet omnis spíritus: + + Quos per Crucis mystérium + + Salvas, rege per sǽcula. Amen. + en: >- + Abroad the regal banners fly, + + Now shines the cross's mystery; + + Upon it Life did death endure, + + And yet by death did life procure. + + + Who, wounded with a direful spear, + + Did, purposely to wash us clear + + From stain of sin, pour out a flood + + Of precious water mixed with blood. + + + That which the prophet-king of old + + Hath in mysterious verse foretold, + + Is now accomplished, whilst we see + + God ruling nations from a tree. + + + O lovely and refulgent tree, + + Adorned with purpled majesty; + + Culled from a worthy stock, to bear + + Those limbs which sanctified were. + + + Blest tree, whose happy branches bore + + The wealth that did the world restore; + + The beam that did that body weigh + + Which raised up hell's expected prey. + + + O Cross, our one reliance, hail! + + Thou joy of Eastertide, avail + + To give fresh merit to the saint, + + And pardon to the penitent. + + + Blest Trinity, salvation's spring, + + May every soul thy praises sing; + + To those thou grantest conquest by + + The holy cross, rewards apply. Amen. +status: + la: verified + en: verified diff --git a/src/data/propers/common/vespers-hymn-proper-to-the-finding-of-the-holy-cross.yml b/src/data/propers/common/vespers-hymn-proper-to-the-finding-of-the-holy-cross.yml new file mode 100644 index 0000000..c737efb --- /dev/null +++ b/src/data/propers/common/vespers-hymn-proper-to-the-finding-of-the-holy-cross.yml @@ -0,0 +1,133 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# live query, 2026-05-03 -- own proper hymn ("Vexílla Regis pródeunt," +# one of the most widely known Latin hymns for the Holy Cross). See +# lauds-capitulum-proper-to-the-finding-of-the-holy-cross.yml's header. +id: vespers-hymn-proper-to-the-finding-of-the-holy-cross +text: + la: >- + Vexílla Regis pródeunt: + + Fulget Crucis mystérium, + + Quo carne carnis Cónditor + + Suspénsus est patíbulo. + + + Quo vulnerátus ínsuper + + Mucróne diro lánceæ, + + Ut nos laváret crímine, + + Manávit unda et sánguine. + + + Impléta sunt quæ cóncinit + + David fidéli cármine, + + Dicens: In natiónibus + + Regnávit a ligno Deus. + + + Arbor decóra et fúlgida, + + Ornáta Regis púrpura, + + Elécta digno stípite + + Tam sancta membra tángere. + + + Beáta, cujus bráchiis + + Sæcli pepéndit prétium, + + Statéra facta córporis, + + Prædámque tulit tártari. + + + O Crux, ave, spes única, + + In hoc Pascháli gáudio + + Auge piis justítiam, + + Reísque dona véniam. + + + Te summa, Deus, Trínitas, + + Colláudet omnis spíritus: + + Quos per Crucis mystérium + + Salvas, rege per sǽcula. Amen. + en: >- + Abroad the regal banners fly, + + Now shines the cross's mystery; + + Upon it Life did death endure, + + And yet by death did life procure. + + + Who, wounded with a direful spear, + + Did, purposely to wash us clear + + From stain of sin, pour out a flood + + Of precious water mixed with blood. + + + That which the prophet-king of old + + Hath in mysterious verse foretold, + + Is now accomplished, whilst we see + + God ruling nations from a tree. + + + O lovely and refulgent tree, + + Adorned with purpled majesty; + + Culled from a worthy stock, to bear + + Those limbs which sanctified were. + + + Blest tree, whose happy branches bore + + The wealth that did the world restore; + + The beam that did that body weigh + + Which raised up hell's expected prey. + + + O Cross, our one reliance, hail! + + Thou joy of Eastertide, avail + + To give fresh merit to the saint, + + And pardon to the penitent. + + + Blest Trinity, salvation's spring, + + May every soul thy praises sing; + + To those thou grantest conquest by + + The holy cross, rewards apply. Amen. +status: + la: verified + en: verified diff --git a/src/data/propers/common/vespers-responsory-finding-of-the-holy-cross.yml b/src/data/propers/common/vespers-responsory-finding-of-the-holy-cross.yml new file mode 100644 index 0000000..7e5b0da --- /dev/null +++ b/src/data/propers/common/vespers-responsory-finding-of-the-holy-cross.yml @@ -0,0 +1,22 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# live query, 2026-05-03 -- own proper responsory. See lauds-capitulum- +# finding-of-the-holy-cross.yml's header. +id: vespers-responsory-finding-of-the-holy-cross +text: + la: | + R.br. Adorámus te, Christe, et benedícimus tibi: * Allelúja, allelúja. + ℟. Adorámus te, Christe, et benedícimus tibi: * Allelúja, allelúja. + ℣. Quia per Crucem tuam redemísti mundum. + ℟. Allelúja, allelúja. + ℣. Glória Patri, et Fílio, * et Spirítui Sancto. + ℟. Adorámus te, Christe, et benedícimus tibi: * Allelúja, allelúja. + en: | + R.br. We adore thee, O Christ, and we bless thee. * Alleluia, alleluia. + ℟. We adore thee, O Christ, and we bless thee. * Alleluia, alleluia. + ℣. Because that through thy cross thou hast redeemed the world. + ℟. Alleluia, alleluia. + ℣. Glory be to the Father, and to the Son, * and to the Holy Ghost. + ℟. We adore thee, O Christ, and we bless thee. * Alleluia, alleluia. +status: + la: verified + en: verified diff --git a/src/data/propers/common/vespers-responsory-proper-to-the-finding-of-the-holy-cross.yml b/src/data/propers/common/vespers-responsory-proper-to-the-finding-of-the-holy-cross.yml new file mode 100644 index 0000000..43f0a96 --- /dev/null +++ b/src/data/propers/common/vespers-responsory-proper-to-the-finding-of-the-holy-cross.yml @@ -0,0 +1,22 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# live query, 2026-05-03 -- own proper responsory. See lauds-capitulum- +# proper-to-the-finding-of-the-holy-cross.yml's header. +id: vespers-responsory-proper-to-the-finding-of-the-holy-cross +text: + la: | + R.br. Adorámus te, Christe, et benedícimus tibi: * Allelúja, allelúja. + ℟. Adorámus te, Christe, et benedícimus tibi: * Allelúja, allelúja. + ℣. Quia per Crucem tuam redemísti mundum. + ℟. Allelúja, allelúja. + ℣. Glória Patri, et Fílio, * et Spirítui Sancto. + ℟. Adorámus te, Christe, et benedícimus tibi: * Allelúja, allelúja. + en: | + R.br. We adore thee, O Christ, and we bless thee. * Alleluia, alleluia. + ℟. We adore thee, O Christ, and we bless thee. * Alleluia, alleluia. + ℣. Because that through thy cross thou hast redeemed the world. + ℟. Alleluia, alleluia. + ℣. Glory be to the Father, and to the Son, * and to the Holy Ghost. + ℟. We adore thee, O Christ, and we bless thee. * Alleluia, alleluia. +status: + la: verified + en: verified diff --git a/src/data/propers/common/vespers-versicle-finding-of-the-holy-cross.yml b/src/data/propers/common/vespers-versicle-finding-of-the-holy-cross.yml new file mode 100644 index 0000000..3c39112 --- /dev/null +++ b/src/data/propers/common/vespers-versicle-finding-of-the-holy-cross.yml @@ -0,0 +1,16 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# live query, 2026-05-03 -- own proper versicle, cross-referencing +# Lauds' own responsory text (a real "double responsory" structure for +# this major feast). See lauds-capitulum-finding-of-the-holy-cross.yml's +# header. +id: vespers-versicle-finding-of-the-holy-cross +text: + la: | + ℣. Hoc signum Crucis erit in cælo. Allelúja. + ℟. Cum Dóminus ad judicándum vénerit. Allelúja. + en: | + ℣. This sign of the Cross shall be in heaven. Alleluia. + ℟. When the Lord cometh to judgment. Alleluia. +status: + la: verified + en: verified diff --git a/src/data/propers/common/vespers-versicle-proper-to-the-finding-of-the-holy-cross.yml b/src/data/propers/common/vespers-versicle-proper-to-the-finding-of-the-holy-cross.yml new file mode 100644 index 0000000..4baa587 --- /dev/null +++ b/src/data/propers/common/vespers-versicle-proper-to-the-finding-of-the-holy-cross.yml @@ -0,0 +1,16 @@ +# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers +# live query, 2026-05-03 -- own proper versicle, cross-referencing +# Lauds' own responsory text (a real "double responsory" structure for +# this major feast). See lauds-capitulum-proper-to-the-finding-of-the-holy-cross.yml's +# header. +id: vespers-versicle-proper-to-the-finding-of-the-holy-cross +text: + la: | + ℣. Hoc signum Crucis erit in cælo. Allelúja. + ℟. Cum Dóminus ad judicándum vénerit. Allelúja. + en: | + ℣. This sign of the Cross shall be in heaven. Alleluia. + ℟. When the Lord cometh to judgment. Alleluia. +status: + la: verified + en: verified diff --git a/tests/hours/lauds.test.ts b/tests/hours/lauds.test.ts index 2f29f4c..cbe8fcf 100644 --- a/tests/hours/lauds.test.ts +++ b/tests/hours/lauds.test.ts @@ -362,6 +362,23 @@ describe('resolveOrdo("lauds", ...)', () => { expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('O gloriósa Dómina'); }); + it("resolves the Finding and Exaltation of the Holy Cross's own proper chapter/hymn (shared content, two ids)", () => { + // Live-verified against Divinum Officium (Monastic Tridentinum + // 1617): Finding, 2027-05-03 (2026 collides with a privileged + // Sunday); Exaltation, 2026-09-14 (its own real day). See lauds- + // capitulum-finding-of-the-holy-cross.yml's and -proper-to-the- + // finding-of-the-holy-cross.yml's headers. + const finding = resolveOrdo('lauds', '2027-05-03'); + const findingChapter = finding.parts.find((p) => p.kind === 'chapter'); + expect(findingChapter?.kind === 'chapter' ? findingChapter.text.citation?.en : undefined).toBe('Phil 2:5-7'); + const findingHymn = finding.parts.find((p) => p.kind === 'hymn'); + expect(findingHymn?.kind === 'hymn' ? findingHymn.text.text.la : undefined).toContain('Lustris sex qui jam peráctis'); + + const exaltation = resolveOrdo('lauds', '2026-09-14'); + const exaltationHymn = exaltation.parts.find((p) => p.kind === 'hymn'); + expect(exaltationHymn?.kind === 'hymn' ? exaltationHymn.text.text.la : undefined).toContain('Lustris sex qui jam peráctis'); + }); + it('includes the Kyrie + Our Father lead-in right after the Benedictus, before the day collect (either form)', () => { const ordo = resolveOrdo('lauds', FERIAL_TUESDAY); const litanyIndex = ordo.parts.findIndex((p) => p.kind === 'preces' && p.text.text.la?.includes('Kýrie, eléison')); diff --git a/tests/hours/vespers.test.ts b/tests/hours/vespers.test.ts index 593c4d0..b35fe95 100644 --- a/tests/hours/vespers.test.ts +++ b/tests/hours/vespers.test.ts @@ -374,6 +374,15 @@ describe('resolveOrdo("vespers", ...)', () => { expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Ave maris stella'); }); + it("resolves the Finding of the Holy Cross's own proper Vespers hymn ('Vexilla Regis')", () => { + // Live-verified against Divinum Officium (Monastic Tridentinum + // 1617), 2027-05-03 (Duplex II. classis, keeps own Second Vespers). + // See lauds-capitulum-finding-of-the-holy-cross.yml's header. + const ordo = resolveOrdo('vespers', '2027-05-03'); + const hymn = ordo.parts.find((p) => p.kind === 'hymn'); + expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Vexílla Regis pródeunt'); + }); + it("renders Passiontide's seasonal office, with the Gloria Patri omitted from the responsory", () => { // 2026-03-30 is Holy Monday (Passion Sunday 2026-03-22 through Holy // Saturday 2026-04-04) -- deliberately not 03-25, the Annunciation's