Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cefff90a34 | |||
| 30b3971190 | |||
| 98aa411a1b |
@@ -5525,3 +5525,44 @@ Ascension). `npm test` (2025 passed, no test changes needed) and `tsc --noEmit`
|
|||||||
|
|
||||||
Corpus Christi and Sacred Heart remain the one still-open piece of this same-shape gap — not fixed
|
Corpus Christi and Sacred Heart remain the one still-open piece of this same-shape gap — not fixed
|
||||||
this session, lower priority than Ascension/Pentecost per direct instruction.
|
this session, lower priority than Ascension/Pentecost per direct instruction.
|
||||||
|
|
||||||
|
**Follow-on, same day**: per direct instruction ("ascension's collect and the two octaves"), closed
|
||||||
|
all 3 remaining pieces immediately.
|
||||||
|
|
||||||
|
Authored `ascension-collect.yml` (live-verified 2026-05-14) — a separate, pre-existing gap
|
||||||
|
(`getDayCollect` already looked up `ascension-collect` via the same `resolveOfficeWinner` this
|
||||||
|
session's mechanism fix already covers; the collect file itself just never existed).
|
||||||
|
|
||||||
|
Closed Corpus Christi's and Sacred Heart's own hymnody gaps the same way as Ascension/Pentecost:
|
||||||
|
added `corpus-christi` and `sacred-heart` to `ALWAYS_OVERRIDE_TEMPORAL_IDS` (no further code change
|
||||||
|
needed — the mechanism is generic) and authored `matins-hymn-{corpus-christi,sacred-heart}.yml`,
|
||||||
|
`lauds-{capitulum,responsory,hymn,versicle}-corpus-christi.yml`,
|
||||||
|
`vespers-{responsory,hymn,versicle}-corpus-christi.yml`, `lauds-{capitulum,hymn,versicle}-sacred-
|
||||||
|
heart.yml`, and `vespers-{hymn,versicle}-sacred-heart.yml` — all live-verified against Divinum
|
||||||
|
Officium, 2026-06-04 (Corpus Christi) and 2026-06-12 (Sacred Heart). Corpus Christi's own hymns are
|
||||||
|
widely known outside this context too: Matins' own "Sacris solémniis", Lauds' own "Verbum supérnum
|
||||||
|
pródiens" (whose final 2 stanzas are the separately-famous "O Salutaris Hostia"), and Vespers' own
|
||||||
|
"Pange, lingua, gloriósi Córporis mystérium" (whose final 2 stanzas are the separately-famous
|
||||||
|
"Tantum Ergo").
|
||||||
|
|
||||||
|
Sacred Heart needed one real source-track correction: the Monastic Tridentinum 1617 track doesn't
|
||||||
|
observe this feast on this date at all (live-checked: shows St. Barnabas instead, a real 1617-era
|
||||||
|
calendar gap, not a vu bug) — used Divino Afflatu 1954 instead, consistent with this project's own
|
||||||
|
stated rubric/precedence track (see CLAUDE.md). Also live-verified a genuine, deliberate structural
|
||||||
|
difference: Sacred Heart's own Lauds and Vespers have **no responsory at all** in the source
|
||||||
|
(straight from chapter to hymn, "Capitulum Hymnus Versus" with no "Responsorium" between) — not an
|
||||||
|
authoring gap, so no `lauds-responsory-sacred-heart.yml`/`vespers-responsory-sacred-heart.yml` were
|
||||||
|
created. This exposed a real small UI gap: `hours/lauds.ts`'s and `hours/vespers.ts`'s own
|
||||||
|
`resolveOffice` always pushed a `{kind:'responsory'}` part even when its own resolved text carried
|
||||||
|
`status: missing` in both languages, rendering an empty section. Fixed both to omit the responsory
|
||||||
|
part entirely when both languages are genuinely missing, rather than an empty box.
|
||||||
|
|
||||||
|
Confirmed both octaves end-to-end via `resolveOrdo` (feast days, plain octave days, and real winning
|
||||||
|
saints within each window — St. Boniface/St. Barnabas within Corpus Christi's, unaffected). Found
|
||||||
|
and fixed 2 pre-existing tests whose own dates now land inside these newly-modeled octaves and were
|
||||||
|
asserting the old (buggy) fall-through behavior as if correct:
|
||||||
|
`tests/hours/lauds.test.ts`'s `FERIAL_MONDAY` (was 2026-06-08, inside Corpus Christi's octave — moved
|
||||||
|
to 2026-09-07) and `tests/hours/vespers.test.ts`'s own St. Margaret of Scotland test (2026-06-09,
|
||||||
|
also inside Corpus Christi's octave — its own title already anticipated this exact fix; updated its
|
||||||
|
assertions from the old "falls through to the plain ferial default" guess to the real, live-verified
|
||||||
|
Corpus Christi content). `npm test` (2025 passed) and `tsc --noEmit` both pass.
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
# Corpus Christi's own Lauds chapter (1 Cor 11:23-24) — shared with
|
||||||
|
# Vespers via vespersCapitulumForOverride's own cross-hour fallback (see
|
||||||
|
# hours/vespers.ts), not duplicated into a separate vespers-capitulum-
|
||||||
|
# corpus-christi.yml. Live-verified against Divinum Officium (Monastic
|
||||||
|
# Tridentinum 1617), Lauds/Vespers live query, 2026-06-04 (Corpus Christi
|
||||||
|
# itself).
|
||||||
|
id: lauds-capitulum-corpus-christi
|
||||||
|
text:
|
||||||
|
la: "Fratres: Ego enim accépi a Dómino quod et trádidi vobis, quóniam Dóminus Jesus, in qua nocte tradebátur, accépit panem, et grátias agens fregit, et dixit: Accípite et manducáte: hoc est corpus meum, quod pro vobis tradétur: hoc fácite in meam commemoratiónem."
|
||||||
|
en: "Brothers: For I have received of the Lord that which also I delivered unto you, that the Lord Jesus, the same night in which he was betrayed, took bread. And giving thanks, broke, and said: Take ye, and eat: this is my body, which shall be delivered for you: this do for the commemoration of me."
|
||||||
|
citation:
|
||||||
|
la: "1 Cor 11:23-24"
|
||||||
|
en: "1 Cor 11:23-24"
|
||||||
|
status:
|
||||||
|
la: verified
|
||||||
|
en: verified
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
# The Sacred Heart's own Lauds chapter (Eph 3:8-9) — shared with Vespers
|
||||||
|
# via vespersCapitulumForOverride's own cross-hour fallback (see
|
||||||
|
# hours/vespers.ts), not duplicated into a separate vespers-capitulum-
|
||||||
|
# sacred-heart.yml. Live-verified against Divinum Officium (Divino
|
||||||
|
# Afflatu - 1954), Lauds/Vespers live query, 2026-06-12 (the Sacred
|
||||||
|
# Heart itself) — see matins-hymn-sacred-heart.yml's own header on why
|
||||||
|
# this track, not Monastic Tridentinum 1617.
|
||||||
|
id: lauds-capitulum-sacred-heart
|
||||||
|
text:
|
||||||
|
la: "Fratres: Mihi ómnium sanctórum mínimo data est grátia hæc, in géntibus evangelizáre investigábiles divítias Christi; et illumináre omnes, quæ sit dispensátio sacraménti abscónditi a sǽculis in Deo."
|
||||||
|
en: "Brethren: Unto me, who am less than the least of all saints, is this grace given, that I should preach among the Gentiles the unsearchable riches of Christ; and to make all men see what is the fellowship of the Mystery, which from the beginning of the world hath been hid in God."
|
||||||
|
citation:
|
||||||
|
la: "Eph 3:8-9"
|
||||||
|
en: "Eph 3:8-9"
|
||||||
|
status:
|
||||||
|
la: verified
|
||||||
|
en: verified
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
# Corpus Christi's own Lauds hymn ("Verbum supérnum pródiens") — whose
|
||||||
|
# final 2 stanzas ("O salutáris hóstia... Uni trinóque Dómino...") are
|
||||||
|
# the separately-famous "O Salutaris Hostia" often sung on its own.
|
||||||
|
# Distinct from Matins' own ("Sacris solémniis") and Vespers' own
|
||||||
|
# ("Pange, lingua, gloriósi Córporis mystérium" — the "Tantum Ergo"
|
||||||
|
# hymn). Live-verified against Divinum Officium (Monastic Tridentinum
|
||||||
|
# 1617), Lauds live query, 2026-06-04 (Corpus Christi itself). Self-
|
||||||
|
# contained — its own final stanza is the hymn's natural theological
|
||||||
|
# close, not a separate swappable doxology.
|
||||||
|
id: lauds-hymn-corpus-christi
|
||||||
|
text:
|
||||||
|
la: >-
|
||||||
|
Verbum supérnum pródiens,
|
||||||
|
|
||||||
|
Nec Patris linquens déxteram,
|
||||||
|
|
||||||
|
Ad opus suum éxiens,
|
||||||
|
|
||||||
|
Venit ad vitæ vésperam.
|
||||||
|
|
||||||
|
|
||||||
|
In mortem a discípulo
|
||||||
|
|
||||||
|
Suis tradéndus ǽmulis,
|
||||||
|
|
||||||
|
Prius in vitæ férculo
|
||||||
|
|
||||||
|
Se trádidit discípulis.
|
||||||
|
|
||||||
|
|
||||||
|
Quibus sub bina spécie
|
||||||
|
|
||||||
|
Carnem dedit et sánguinem;
|
||||||
|
|
||||||
|
Ut dúplicis substántiæ
|
||||||
|
|
||||||
|
Totum cibáret hóminem.
|
||||||
|
|
||||||
|
|
||||||
|
Se nascens dedit sócium,
|
||||||
|
|
||||||
|
Convéscens in edúlium,
|
||||||
|
|
||||||
|
Se móriens in prétium,
|
||||||
|
|
||||||
|
Se regnans dat in prǽmium.
|
||||||
|
|
||||||
|
|
||||||
|
O salutáris hóstia,
|
||||||
|
|
||||||
|
Quæ cæli pandis óstium,
|
||||||
|
|
||||||
|
Bella premunt hostília;
|
||||||
|
|
||||||
|
Da robur, fer auxílium.
|
||||||
|
|
||||||
|
|
||||||
|
Uni trinóque Dómino,
|
||||||
|
|
||||||
|
Sit sempitérna glória:
|
||||||
|
|
||||||
|
Qui vitam sine término
|
||||||
|
|
||||||
|
Nobis donet in pátria. Amen.
|
||||||
|
en: >-
|
||||||
|
The heav'nly Word proceeding forth,
|
||||||
|
|
||||||
|
Yet leaving not the Father's side,
|
||||||
|
|
||||||
|
And going to his work on earth
|
||||||
|
|
||||||
|
Had reached at length life's eventide.
|
||||||
|
|
||||||
|
|
||||||
|
By false disciple to be given
|
||||||
|
|
||||||
|
To foemen for his blood athirst,
|
||||||
|
|
||||||
|
Himself, the living bread from heaven,
|
||||||
|
|
||||||
|
He gave to his disciples first.
|
||||||
|
|
||||||
|
|
||||||
|
To them he gave, in twofold kind,
|
||||||
|
|
||||||
|
His very flesh, his very blood:
|
||||||
|
|
||||||
|
In love's own fullness thus designed
|
||||||
|
|
||||||
|
Of the whole man to be the food.
|
||||||
|
|
||||||
|
|
||||||
|
By birth, our fellow-man was he;
|
||||||
|
|
||||||
|
Our meat, while sitting at the board;
|
||||||
|
|
||||||
|
He died, our ransomer to be;
|
||||||
|
|
||||||
|
He ever reigns, our great reward.
|
||||||
|
|
||||||
|
|
||||||
|
O saving victim, opening wide
|
||||||
|
|
||||||
|
The gate of heaven to man below,
|
||||||
|
|
||||||
|
Our foes press on from every side,
|
||||||
|
|
||||||
|
Thine aid supply, thy strength bestow.
|
||||||
|
|
||||||
|
|
||||||
|
To thy great name be endless praise,
|
||||||
|
|
||||||
|
Immortal Godhead, One in Three;
|
||||||
|
|
||||||
|
O grant us endless length of days
|
||||||
|
|
||||||
|
In our true native land, with thee. Amen.
|
||||||
|
status:
|
||||||
|
la: verified
|
||||||
|
en: verified
|
||||||
@@ -0,0 +1,123 @@
|
|||||||
|
# The Sacred Heart's own Lauds hymn ("Cor, arca legem cóntinens") —
|
||||||
|
# distinct from Matins' own ("Auctor beáte sǽculi") and Vespers' own
|
||||||
|
# ("En, ut supérba críminum"). Live-verified against Divinum Officium
|
||||||
|
# (Divino Afflatu - 1954), Lauds live query, 2026-06-12 (the Sacred
|
||||||
|
# Heart itself) — see matins-hymn-sacred-heart.yml's own header on why
|
||||||
|
# this track. Self-contained — its own final stanza is the hymn's
|
||||||
|
# natural theological close, not a separate swappable doxology.
|
||||||
|
#
|
||||||
|
# This day's own Lauds genuinely has no responsory in the source at all
|
||||||
|
# (straight from chapter to hymn) — see lauds-capitulum-sacred-heart.yml
|
||||||
|
# and hours/lauds.ts's own resolveOffice, which omits the responsory
|
||||||
|
# part entirely rather than rendering an empty one.
|
||||||
|
id: lauds-hymn-sacred-heart
|
||||||
|
text:
|
||||||
|
la: >-
|
||||||
|
Cor, arca legem cóntinens
|
||||||
|
|
||||||
|
Non servitútis véteris,
|
||||||
|
|
||||||
|
Sed grátiæ, sed véniæ,
|
||||||
|
|
||||||
|
Sed et misericórdiæ.
|
||||||
|
|
||||||
|
|
||||||
|
Cor, sanctuárium novi
|
||||||
|
|
||||||
|
Intemerátum fœ́deris,
|
||||||
|
|
||||||
|
Templum vetústo sánctius,
|
||||||
|
|
||||||
|
Velúmque scisso utílius.
|
||||||
|
|
||||||
|
|
||||||
|
Te vulnerátum cáritas
|
||||||
|
|
||||||
|
Ictu paténti vóluit,
|
||||||
|
|
||||||
|
Amóris invisíbilis
|
||||||
|
|
||||||
|
Ut venerémur vúlnera.
|
||||||
|
|
||||||
|
|
||||||
|
Hoc sub amóris sýmbolo
|
||||||
|
|
||||||
|
Passus cruénta et mýstica,
|
||||||
|
|
||||||
|
Utrúmque sacrifícium
|
||||||
|
|
||||||
|
Christus sacérdos óbtulit.
|
||||||
|
|
||||||
|
|
||||||
|
Quis non amántem rédamet?
|
||||||
|
|
||||||
|
Quis non redémptus díligat,
|
||||||
|
|
||||||
|
Et Corde in isto séligat
|
||||||
|
|
||||||
|
Ætérna tabernácula?
|
||||||
|
|
||||||
|
|
||||||
|
Jesu, tibi sit glória,
|
||||||
|
|
||||||
|
Qui Corde fundis grátiam,
|
||||||
|
|
||||||
|
Cum Patre, et almo Spíritu,
|
||||||
|
|
||||||
|
In sempitérna sǽcula. Amen.
|
||||||
|
en: >-
|
||||||
|
Jesus, behind thy temple's veil,
|
||||||
|
|
||||||
|
Hid in an ark of gold,
|
||||||
|
|
||||||
|
On stones engraven, lay the law
|
||||||
|
|
||||||
|
thy finger wrote of old.
|
||||||
|
|
||||||
|
|
||||||
|
But in thy body's temple new,
|
||||||
|
|
||||||
|
thy life-blood's throbbing shrine,
|
||||||
|
|
||||||
|
Held, upon fleshly tables graved,
|
||||||
|
|
||||||
|
The law of love divine.
|
||||||
|
|
||||||
|
|
||||||
|
And when that heart in death was stilled,
|
||||||
|
|
||||||
|
Each temple's veil was riven:
|
||||||
|
|
||||||
|
And lo, within thy love's red shrine,
|
||||||
|
|
||||||
|
To us to look was given.
|
||||||
|
|
||||||
|
|
||||||
|
There make us gaze and see the love
|
||||||
|
|
||||||
|
Which drew thee, for our sake,
|
||||||
|
|
||||||
|
O great high-priest, thyself to God
|
||||||
|
|
||||||
|
A sacrifice to make.
|
||||||
|
|
||||||
|
|
||||||
|
Thou, Saviour, cause that every soul
|
||||||
|
|
||||||
|
Which thou hast loved so well,
|
||||||
|
|
||||||
|
May will within thine open heart
|
||||||
|
|
||||||
|
In life and death to dwell.
|
||||||
|
|
||||||
|
|
||||||
|
Grant it, O Father, only Son,
|
||||||
|
|
||||||
|
And Spirit, God of grace,
|
||||||
|
|
||||||
|
To whom all worship shall be done,
|
||||||
|
|
||||||
|
In every time and place. Amen.
|
||||||
|
status:
|
||||||
|
la: verified
|
||||||
|
en: verified
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# Corpus Christi's own Lauds responsory ("Panem cæli dedit eis") —
|
||||||
|
# distinct from Vespers' own ("Cibávit illos ex ádipe fruménti", see
|
||||||
|
# vespers-responsory-corpus-christi.yml). Live-verified against Divinum
|
||||||
|
# Officium (Monastic Tridentinum 1617), Lauds live query, 2026-06-04
|
||||||
|
# (Corpus Christi itself).
|
||||||
|
id: lauds-responsory-corpus-christi
|
||||||
|
text:
|
||||||
|
la: |
|
||||||
|
R.br. Panem cæli dedit eis, * Allelúja, allelúja.
|
||||||
|
R. Panem cæli dedit eis, * Allelúja, allelúja.
|
||||||
|
V. Panem Angelórum manducávit homo.
|
||||||
|
R. Allelúja, allelúja.
|
||||||
|
V. Glória Patri, et Fílio, * et Spirítui Sancto.
|
||||||
|
R. Panem cæli dedit eis, * Allelúja, allelúja.
|
||||||
|
en: |
|
||||||
|
R.br. He gave them the bread of heaven. * Alleluia, Alleluia.
|
||||||
|
R. He gave them the bread of heaven. * Alleluia, Alleluia.
|
||||||
|
V. Man did eat Angels' bread.
|
||||||
|
R. Alleluia, Alleluia.
|
||||||
|
V. Glory be to the Father, and to the Son, * and to the Holy Ghost.
|
||||||
|
R. He gave them the bread of heaven. * Alleluia, Alleluia.
|
||||||
|
status:
|
||||||
|
la: verified
|
||||||
|
en: verified
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
# Corpus Christi's own Lauds versicle — distinct from Vespers' own
|
||||||
|
# ("Panem de cælo præstitísti eis", see
|
||||||
|
# vespers-versicle-corpus-christi.yml). Live-verified against Divinum
|
||||||
|
# Officium (Monastic Tridentinum 1617), Lauds live query, 2026-06-04
|
||||||
|
# (Corpus Christi itself).
|
||||||
|
id: lauds-versicle-corpus-christi
|
||||||
|
text:
|
||||||
|
la: "V. Pósuit fines tuos pacem, allelúja.\nR. Et ádipe fruménti sátiat te, allelúja."
|
||||||
|
en: "V. He maketh peace in thy borders, alleluia.\nR. And filleth thee with the finest of wheat, alleluia."
|
||||||
|
status:
|
||||||
|
la: verified
|
||||||
|
en: verified
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# The Sacred Heart's own versicle — identical at both Lauds and Vespers
|
||||||
|
# (see vespers-versicle-sacred-heart.yml). Live-verified against Divinum
|
||||||
|
# Officium (Divino Afflatu - 1954), Lauds/Vespers live query, 2026-06-12
|
||||||
|
# (the Sacred Heart itself).
|
||||||
|
id: lauds-versicle-sacred-heart
|
||||||
|
text:
|
||||||
|
la: "V. Hauriétis aquas in gáudio.\nR. De fóntibus Salvatóris."
|
||||||
|
en: "V. With joy shall ye draw water.\nR. Out of the fountains of the Saviour."
|
||||||
|
status:
|
||||||
|
la: verified
|
||||||
|
en: verified
|
||||||
@@ -0,0 +1,183 @@
|
|||||||
|
# Corpus Christi's own Matins hymn ("Sacris solémniis"), St. Thomas
|
||||||
|
# Aquinas's own composition for this feast. Live-verified against
|
||||||
|
# Divinum Officium (Monastic Tridentinum 1617), Matins live query,
|
||||||
|
# 2026-06-04 (Corpus Christi itself). Self-contained — its own final
|
||||||
|
# stanza ("Te, trina Déitas...") is the hymn's natural theological
|
||||||
|
# close, not a separate swappable doxology.
|
||||||
|
#
|
||||||
|
# Closes the same real mechanism gap already fixed for Ascension/
|
||||||
|
# Pentecost (`corpus-christi` is a temporal-feast id, not a saint
|
||||||
|
# record, so `resolveOfficeWinner`'s octave-synthesis needed the same
|
||||||
|
# fix already in place — see hours/resolve-common.ts's
|
||||||
|
# `ALWAYS_OVERRIDE_TEMPORAL_IDS`).
|
||||||
|
id: matins-hymn-corpus-christi
|
||||||
|
text:
|
||||||
|
la: >-
|
||||||
|
Sacris solémniis juncta sint gáudia,
|
||||||
|
|
||||||
|
Et ex præcórdiis sonent præcónia;
|
||||||
|
|
||||||
|
Recédant vétera, nova sint ómnia,
|
||||||
|
|
||||||
|
Corda, voces, et ópera.
|
||||||
|
|
||||||
|
|
||||||
|
Noctis recólitur cœna novíssima,
|
||||||
|
|
||||||
|
Qua Christus créditur agnum et ázyma
|
||||||
|
|
||||||
|
Dedísse frátribus, juxta legítima
|
||||||
|
|
||||||
|
Priscis indúlta pátribus.
|
||||||
|
|
||||||
|
|
||||||
|
Post agnum týpicum, explétis épulis,
|
||||||
|
|
||||||
|
Corpus Domínicum datum discípulis,
|
||||||
|
|
||||||
|
Sic totum ómnibus, quod totum síngulis,
|
||||||
|
|
||||||
|
Ejus fatémur mánibus.
|
||||||
|
|
||||||
|
|
||||||
|
Dedit fragílibus córporis férculum,
|
||||||
|
|
||||||
|
Dedit et trístibus sánguinis póculum,
|
||||||
|
|
||||||
|
Dicens: Accípite quod trado vásculum;
|
||||||
|
|
||||||
|
Omnes ex eo bíbite.
|
||||||
|
|
||||||
|
|
||||||
|
Sic sacrifícium istud instítuit,
|
||||||
|
|
||||||
|
Cujus offícium commítti vóluit
|
||||||
|
|
||||||
|
Solis presbýteris, quibus sic cóngruit,
|
||||||
|
|
||||||
|
Ut sumant, et dent céteris.
|
||||||
|
|
||||||
|
|
||||||
|
Panis angélicus fit panis hóminum;
|
||||||
|
|
||||||
|
Dat panis cǽlicus figúris términum;
|
||||||
|
|
||||||
|
O res mirábilis: mandúcat Dóminum
|
||||||
|
|
||||||
|
Pauper, servus et húmilis.
|
||||||
|
|
||||||
|
|
||||||
|
Te, trina Déitas únaque, póscimus;
|
||||||
|
|
||||||
|
Sic nos tu vísita, sicut te cólimus:
|
||||||
|
|
||||||
|
Per tuas sémitas duc nos quo téndimus,
|
||||||
|
|
||||||
|
Ad lucem quam inhábitas. Amen.
|
||||||
|
en: >-
|
||||||
|
At this our solemn feast,
|
||||||
|
|
||||||
|
Let holy joys abound,
|
||||||
|
|
||||||
|
And from the inmost breast
|
||||||
|
|
||||||
|
Let songs of praise resound;
|
||||||
|
|
||||||
|
Let ancient rites depart,
|
||||||
|
|
||||||
|
And all be new around,
|
||||||
|
|
||||||
|
In ev'ry act and voice and heart.
|
||||||
|
|
||||||
|
|
||||||
|
Remember we that eve,
|
||||||
|
|
||||||
|
When, the last supper spread,
|
||||||
|
|
||||||
|
Christ, as we all believe,
|
||||||
|
|
||||||
|
The lamb, with leavenless bread,
|
||||||
|
|
||||||
|
Among his brethren shared,
|
||||||
|
|
||||||
|
And thus the law obeyed,
|
||||||
|
|
||||||
|
Of old unto their sires declared.
|
||||||
|
|
||||||
|
|
||||||
|
The typic lamb consumed,
|
||||||
|
|
||||||
|
The legal feast complete,
|
||||||
|
|
||||||
|
The Lord unto the twelve
|
||||||
|
|
||||||
|
His body gave to eat;
|
||||||
|
|
||||||
|
The whole to all, no less
|
||||||
|
|
||||||
|
The whole to each, did mete
|
||||||
|
|
||||||
|
With his own hands, as we confess.
|
||||||
|
|
||||||
|
|
||||||
|
He gave them, weak and frail,
|
||||||
|
|
||||||
|
His flesh, their food to be;
|
||||||
|
|
||||||
|
On them, downcast and sad,
|
||||||
|
|
||||||
|
His blood bestowèd he:
|
||||||
|
|
||||||
|
And thus to them he spake,
|
||||||
|
|
||||||
|
"Receive this cup from me,
|
||||||
|
|
||||||
|
And all of you of this partake."
|
||||||
|
|
||||||
|
|
||||||
|
So he this sacrifice
|
||||||
|
|
||||||
|
To institute did will,
|
||||||
|
|
||||||
|
And charged his priests alone
|
||||||
|
|
||||||
|
That office to fulfil:
|
||||||
|
|
||||||
|
In them he did confide:
|
||||||
|
|
||||||
|
To whom pertaineth still
|
||||||
|
|
||||||
|
To take, and to the rest divide.
|
||||||
|
|
||||||
|
|
||||||
|
Thus angels' bread is made
|
||||||
|
|
||||||
|
The bread of man today:
|
||||||
|
|
||||||
|
The living bread from heaven
|
||||||
|
|
||||||
|
With figures doth away:
|
||||||
|
|
||||||
|
O wondrous gift indeed!
|
||||||
|
|
||||||
|
The poor and lowly may
|
||||||
|
|
||||||
|
Upon their Lord and Master feed.
|
||||||
|
|
||||||
|
|
||||||
|
O Triune Deity,
|
||||||
|
|
||||||
|
To thee we meekly pray,
|
||||||
|
|
||||||
|
So mayst thou visit us,
|
||||||
|
|
||||||
|
As we our homage pay;
|
||||||
|
|
||||||
|
And in thy footsteps bright
|
||||||
|
|
||||||
|
Conduct us on our way
|
||||||
|
|
||||||
|
To where thou dwell'st in cloudless light. Amen.
|
||||||
|
status:
|
||||||
|
la: verified
|
||||||
|
en: verified
|
||||||
@@ -0,0 +1,125 @@
|
|||||||
|
# The Sacred Heart's own Matins hymn ("Auctor beáte sǽculi"). Live-
|
||||||
|
# verified against Divinum Officium (Divino Afflatu - 1954, 2026-06-12,
|
||||||
|
# the Sacred Heart itself) — not the Monastic Tridentinum 1617 track,
|
||||||
|
# which doesn't observe this feast on the same date at all (live-
|
||||||
|
# checked: shows St. Barnabas instead, unaffected). This project's own
|
||||||
|
# rubric/precedence track is Divino Afflatu anyway (see the repo's
|
||||||
|
# CLAUDE.md), so this is a real, consistent source choice, not a
|
||||||
|
# deviation. Self-contained — its own final stanza is the hymn's natural
|
||||||
|
# theological close, not a separate swappable doxology.
|
||||||
|
#
|
||||||
|
# Closes the same real mechanism gap already fixed for Ascension/
|
||||||
|
# Pentecost/Corpus Christi (`sacred-heart` is a temporal-feast id, not a
|
||||||
|
# saint record — see hours/resolve-common.ts's
|
||||||
|
# `ALWAYS_OVERRIDE_TEMPORAL_IDS`).
|
||||||
|
id: matins-hymn-sacred-heart
|
||||||
|
text:
|
||||||
|
la: >-
|
||||||
|
Auctor beáte sǽculi,
|
||||||
|
|
||||||
|
Christe, Redémptor ómnium,
|
||||||
|
|
||||||
|
Lumen Patris de lúmine,
|
||||||
|
|
||||||
|
Deúsque verus de Deo.
|
||||||
|
|
||||||
|
|
||||||
|
Amor coégit te tuus
|
||||||
|
|
||||||
|
Mortále corpus súmere,
|
||||||
|
|
||||||
|
Ut novus Adam rédderes,
|
||||||
|
|
||||||
|
Quod vetus ille abstúlerat.
|
||||||
|
|
||||||
|
|
||||||
|
Ille amor, almus ártifex
|
||||||
|
|
||||||
|
Terræ marísque, et síderum,
|
||||||
|
|
||||||
|
Erráta patrum míserans,
|
||||||
|
|
||||||
|
Et nostra rumpens víncula.
|
||||||
|
|
||||||
|
|
||||||
|
Non Corde discédat tuo
|
||||||
|
|
||||||
|
Vis illa amóris íncliti:
|
||||||
|
|
||||||
|
Hoc fonte gentes háuriant
|
||||||
|
|
||||||
|
Remissiónis grátiam.
|
||||||
|
|
||||||
|
|
||||||
|
Percússum ad hoc est láncea,
|
||||||
|
|
||||||
|
Passúmque ad hoc est vúlnera:
|
||||||
|
|
||||||
|
Ut nos laváret sórdibus,
|
||||||
|
|
||||||
|
Unda fluénte, et sánguine.
|
||||||
|
|
||||||
|
|
||||||
|
Jesu, tibi sit glória,
|
||||||
|
|
||||||
|
Qui Corde fundis grátiam,
|
||||||
|
|
||||||
|
Cum Patre, et almo Spíritu,
|
||||||
|
|
||||||
|
In sempitérna sǽcula. Amen.
|
||||||
|
en: >-
|
||||||
|
O Christ, the world's Creator bright,
|
||||||
|
|
||||||
|
Who didst mankind from sin redeem,
|
||||||
|
|
||||||
|
Light from the Father's glorious light,
|
||||||
|
|
||||||
|
True God of God, in bliss supreme.
|
||||||
|
|
||||||
|
|
||||||
|
Thy love compelled thee to assume
|
||||||
|
|
||||||
|
A mortal body, man to save;
|
||||||
|
|
||||||
|
Reversing the old Adam's doom;
|
||||||
|
|
||||||
|
Our ransom the new Adam gave.
|
||||||
|
|
||||||
|
|
||||||
|
That love which gloriously framed all
|
||||||
|
|
||||||
|
The earth, the stars, and wondrous sea
|
||||||
|
|
||||||
|
Took pity on our parents' fall,
|
||||||
|
|
||||||
|
Broke all our bonds and set us free.
|
||||||
|
|
||||||
|
|
||||||
|
O Saviour, let thy potent love
|
||||||
|
|
||||||
|
Flow ever from thy bounteous heart;
|
||||||
|
|
||||||
|
To nations that pure fount above
|
||||||
|
|
||||||
|
The grace of pardon will impart.
|
||||||
|
|
||||||
|
|
||||||
|
His heart for this was opened wide,
|
||||||
|
|
||||||
|
And wounded by the soldier's spear,
|
||||||
|
|
||||||
|
That freely from his sacred side
|
||||||
|
|
||||||
|
Might flow the streams our souls to clear.
|
||||||
|
|
||||||
|
|
||||||
|
Glory to Father and to Son,
|
||||||
|
|
||||||
|
And to the Holy Ghost the same,
|
||||||
|
|
||||||
|
To whom all power, when time is done,
|
||||||
|
|
||||||
|
And endless rule, in endless fame. Amen.
|
||||||
|
status:
|
||||||
|
la: verified
|
||||||
|
en: verified
|
||||||
@@ -0,0 +1,169 @@
|
|||||||
|
# Corpus Christi's own Vespers hymn ("Pange, lingua, gloriósi Córporis
|
||||||
|
# mystérium") — St. Thomas Aquinas's own Eucharistic hymn, whose final 2
|
||||||
|
# stanzas ("Tantum ergo Sacraméntum..." — sung genuflecting per the
|
||||||
|
# source's own rubric, not modeled here) are the separately-famous
|
||||||
|
# "Tantum Ergo" sung constantly at Benediction. Distinct from Matins'
|
||||||
|
# own ("Sacris solémniis") and Lauds' own ("Verbum supérnum pródiens").
|
||||||
|
# Live-verified against Divinum Officium (Monastic Tridentinum 1617),
|
||||||
|
# Vespers live query, 2026-06-04 (Corpus Christi itself). Self-contained
|
||||||
|
# — its own final stanza is the hymn's natural theological close, not a
|
||||||
|
# separate swappable doxology.
|
||||||
|
id: vespers-hymn-corpus-christi
|
||||||
|
text:
|
||||||
|
la: >-
|
||||||
|
Pange, lingua, gloriósi
|
||||||
|
|
||||||
|
Córporis mystérium,
|
||||||
|
|
||||||
|
Sanguinísque pretiósi,
|
||||||
|
|
||||||
|
Quem in mundi prétium
|
||||||
|
|
||||||
|
Fructus ventris generósi
|
||||||
|
|
||||||
|
Rex effúdit géntium.
|
||||||
|
|
||||||
|
|
||||||
|
Nobis datus, nobis natus
|
||||||
|
|
||||||
|
Ex intácta Vírgine,
|
||||||
|
|
||||||
|
Et in mundo conversátus,
|
||||||
|
|
||||||
|
Sparso verbi sémine,
|
||||||
|
|
||||||
|
Sui moras incolátus
|
||||||
|
|
||||||
|
Miro clausit órdine.
|
||||||
|
|
||||||
|
|
||||||
|
In suprémæ nocte cenæ
|
||||||
|
|
||||||
|
Recúmbens cum frátribus,
|
||||||
|
|
||||||
|
Observáta lege plene
|
||||||
|
|
||||||
|
Cibis in legálibus,
|
||||||
|
|
||||||
|
Cibum turbæ duodénæ
|
||||||
|
|
||||||
|
Se dat suis mánibus.
|
||||||
|
|
||||||
|
|
||||||
|
Verbum caro, panem verum
|
||||||
|
|
||||||
|
Verbo carnem éfficit;
|
||||||
|
|
||||||
|
Fitque sanguis Christi merum:
|
||||||
|
|
||||||
|
Et si sensus déficit,
|
||||||
|
|
||||||
|
Ad firmándum cor sincérum
|
||||||
|
|
||||||
|
Sola fides súfficit.
|
||||||
|
|
||||||
|
|
||||||
|
Tantum ergo Sacraméntum
|
||||||
|
|
||||||
|
Venerémur cérnui:
|
||||||
|
|
||||||
|
Et antíquum documéntum
|
||||||
|
|
||||||
|
Novo cedat rítui:
|
||||||
|
|
||||||
|
Præstet fides suppleméntum
|
||||||
|
|
||||||
|
Sénsuum deféctui.
|
||||||
|
|
||||||
|
|
||||||
|
Genitóri, Genitóque
|
||||||
|
|
||||||
|
Laus et jubilátio,
|
||||||
|
|
||||||
|
Salus, honor, virtus quoque
|
||||||
|
|
||||||
|
Sit et benedíctio:
|
||||||
|
|
||||||
|
Procedénti ab utróque
|
||||||
|
|
||||||
|
Compar sit laudátio. Amen.
|
||||||
|
en: >-
|
||||||
|
Sing, my tongue, the Saviour's glory,
|
||||||
|
|
||||||
|
Of his flesh the mystery sing;
|
||||||
|
|
||||||
|
Of the blood, all price exceeding,
|
||||||
|
|
||||||
|
Shed by our immortal King,
|
||||||
|
|
||||||
|
Destined, for the world's redemption,
|
||||||
|
|
||||||
|
From a noble womb to spring.
|
||||||
|
|
||||||
|
|
||||||
|
Of a pure and spotless Virgin
|
||||||
|
|
||||||
|
Born for us on earth below,
|
||||||
|
|
||||||
|
He, as man, with man conversing,
|
||||||
|
|
||||||
|
Stayed, the seeds of truth to sow;
|
||||||
|
|
||||||
|
Then he closed in solemn order
|
||||||
|
|
||||||
|
Wondrously his life of woe.
|
||||||
|
|
||||||
|
|
||||||
|
On the night of that last supper
|
||||||
|
|
||||||
|
Seated with his chosen band,
|
||||||
|
|
||||||
|
He, the paschal victim eating,
|
||||||
|
|
||||||
|
First fulfills the law's command:
|
||||||
|
|
||||||
|
Then as food to all his brethren
|
||||||
|
|
||||||
|
Gives himself with his own hand.
|
||||||
|
|
||||||
|
|
||||||
|
Word made flesh, the bread of nature
|
||||||
|
|
||||||
|
By his word to flesh he turns;
|
||||||
|
|
||||||
|
Wine into his blood he changes:
|
||||||
|
|
||||||
|
What though sense no change discerns?
|
||||||
|
|
||||||
|
Only be the heart in earnest,
|
||||||
|
|
||||||
|
Faith her lesson quickly learns.
|
||||||
|
|
||||||
|
|
||||||
|
Down in adoration falling,
|
||||||
|
|
||||||
|
Lo! the sacred Host we hail;
|
||||||
|
|
||||||
|
Lo! o'er ancient forms departing,
|
||||||
|
|
||||||
|
Newer rites of grace prevail;
|
||||||
|
|
||||||
|
Faith for all defects supplying,
|
||||||
|
|
||||||
|
Where the feeble senses fail.
|
||||||
|
|
||||||
|
|
||||||
|
To the everlasting Father,
|
||||||
|
|
||||||
|
And the Son who reigns on high,
|
||||||
|
|
||||||
|
With the Holy Ghost proceeding
|
||||||
|
|
||||||
|
Forth from each eternally,
|
||||||
|
|
||||||
|
Be salvation, honour, blessing,
|
||||||
|
|
||||||
|
Might, and endless majesty. Amen.
|
||||||
|
status:
|
||||||
|
la: verified
|
||||||
|
en: verified
|
||||||
@@ -0,0 +1,123 @@
|
|||||||
|
# The Sacred Heart's own Vespers hymn ("En, ut supérba críminum") —
|
||||||
|
# distinct from Matins' own ("Auctor beáte sǽculi") and Lauds' own
|
||||||
|
# ("Cor, arca legem cóntinens"). Live-verified against Divinum Officium
|
||||||
|
# (Divino Afflatu - 1954), Vespers live query, 2026-06-12 (the Sacred
|
||||||
|
# Heart itself) — see matins-hymn-sacred-heart.yml's own header on why
|
||||||
|
# this track. Self-contained — its own final stanza is the hymn's
|
||||||
|
# natural theological close, not a separate swappable doxology.
|
||||||
|
#
|
||||||
|
# This day's own Vespers genuinely has no responsory in the source at
|
||||||
|
# all (straight from chapter to hymn), same as its own Lauds — see
|
||||||
|
# hours/vespers.ts's own resolveOffice, which omits the responsory part
|
||||||
|
# entirely rather than rendering an empty one.
|
||||||
|
id: vespers-hymn-sacred-heart
|
||||||
|
text:
|
||||||
|
la: >-
|
||||||
|
En, ut supérba críminum
|
||||||
|
|
||||||
|
Et sæva nostrórum cohors
|
||||||
|
|
||||||
|
Cor sauciávit ínnocens
|
||||||
|
|
||||||
|
Meréntis haud tale Dei!
|
||||||
|
|
||||||
|
|
||||||
|
Vibrántis hastam mílitis
|
||||||
|
|
||||||
|
Peccáta nostra dírigunt,
|
||||||
|
|
||||||
|
Ferrúmque diræ cúspidis
|
||||||
|
|
||||||
|
Mortále crimen ácuit.
|
||||||
|
|
||||||
|
|
||||||
|
Ex Corde scisso Ecclésia,
|
||||||
|
|
||||||
|
Christo jugáta, náscitur:
|
||||||
|
|
||||||
|
Hoc óstium arcæ in látere est
|
||||||
|
|
||||||
|
Genti ad salútem pósitum.
|
||||||
|
|
||||||
|
|
||||||
|
Ex hoc perénnis grátia,
|
||||||
|
|
||||||
|
Ceu septifórmis flúvius,
|
||||||
|
|
||||||
|
Stolas ut illic sórdidas
|
||||||
|
|
||||||
|
Lavémus Agni in sánguine.
|
||||||
|
|
||||||
|
|
||||||
|
Turpe est redíre ad crímina,
|
||||||
|
|
||||||
|
Quæ Cor beátum lácerent:
|
||||||
|
|
||||||
|
Sed æmulémur córdibus
|
||||||
|
|
||||||
|
Flammas amóris índices.
|
||||||
|
|
||||||
|
|
||||||
|
Jesu, tibi sit glória,
|
||||||
|
|
||||||
|
Qui Corde fundis grátiam,
|
||||||
|
|
||||||
|
Cum Patre, et almo Spíritu,
|
||||||
|
|
||||||
|
In sempitérna sǽcula. Amen.
|
||||||
|
en: >-
|
||||||
|
Lo, how the savage crew
|
||||||
|
|
||||||
|
Of our proud sins hath rent
|
||||||
|
|
||||||
|
The heart of our all-gracious God,
|
||||||
|
|
||||||
|
That heart so innocent.
|
||||||
|
|
||||||
|
|
||||||
|
The soldier's quivering lance
|
||||||
|
|
||||||
|
Our guilt it was that drave,
|
||||||
|
|
||||||
|
Our wicked deeds that to its point
|
||||||
|
|
||||||
|
Such cruel sharpness gave.
|
||||||
|
|
||||||
|
|
||||||
|
O wounded heart, whence sprang
|
||||||
|
|
||||||
|
The Church, the Saviour's bride;
|
||||||
|
|
||||||
|
Thou door of our salvation's ark
|
||||||
|
|
||||||
|
Set in its mystic side.
|
||||||
|
|
||||||
|
|
||||||
|
Thou holy fount, whence flows
|
||||||
|
|
||||||
|
The sacred sevenfold flood,
|
||||||
|
|
||||||
|
Where we our filthy robes may cleanse
|
||||||
|
|
||||||
|
In the Lamb's saving blood:
|
||||||
|
|
||||||
|
|
||||||
|
By sorrowful relapse,
|
||||||
|
|
||||||
|
thee will we rend no more;
|
||||||
|
|
||||||
|
But like the flames, those types of love,
|
||||||
|
|
||||||
|
Strive heavenward to soar.
|
||||||
|
|
||||||
|
|
||||||
|
Father and Son supreme
|
||||||
|
|
||||||
|
And Spirit, hear our cry;
|
||||||
|
|
||||||
|
Whose is the kingdom, praise and power,
|
||||||
|
|
||||||
|
Through all eternity. Amen.
|
||||||
|
status:
|
||||||
|
la: verified
|
||||||
|
en: verified
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# Corpus Christi's own Vespers responsory ("Cibávit illos ex ádipe
|
||||||
|
# fruménti") — distinct from Lauds' own ("Panem cæli dedit eis", see
|
||||||
|
# lauds-responsory-corpus-christi.yml). Live-verified against Divinum
|
||||||
|
# Officium (Monastic Tridentinum 1617), Vespers live query, 2026-06-04
|
||||||
|
# (Corpus Christi itself).
|
||||||
|
id: vespers-responsory-corpus-christi
|
||||||
|
text:
|
||||||
|
la: |
|
||||||
|
R.br. Cibávit illos ex ádipe fruménti, * Allelúja, allelúja.
|
||||||
|
R. Cibávit illos ex ádipe fruménti, * Allelúja, allelúja.
|
||||||
|
V. Et de petra, melle saturávit eos.
|
||||||
|
R. Allelúja, allelúja.
|
||||||
|
V. Glória Patri, et Fílio, * et Spirítui Sancto.
|
||||||
|
R. Cibávit illos ex ádipe fruménti, * Allelúja, allelúja.
|
||||||
|
en: |
|
||||||
|
R.br. He fed them with the finest of the wheat. * Alleluia, Alleluia.
|
||||||
|
R. He fed them with the finest of the wheat. * Alleluia, Alleluia.
|
||||||
|
V. And with honey out of the rock did He satisfy them.
|
||||||
|
R. Alleluia, Alleluia.
|
||||||
|
V. Glory be to the Father, and to the Son, * and to the Holy Ghost.
|
||||||
|
R. He fed them with the finest of the wheat. * Alleluia, Alleluia.
|
||||||
|
status:
|
||||||
|
la: verified
|
||||||
|
en: verified
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# Corpus Christi's own Vespers versicle — distinct from Lauds' own
|
||||||
|
# ("Pósuit fines tuos pacem", see lauds-versicle-corpus-christi.yml).
|
||||||
|
# Live-verified against Divinum Officium (Monastic Tridentinum 1617),
|
||||||
|
# Vespers live query, 2026-06-04 (Corpus Christi itself).
|
||||||
|
id: vespers-versicle-corpus-christi
|
||||||
|
text:
|
||||||
|
la: "V. Panem de cælo præstitísti eis, allelúja.\nR. Omne delectaméntum in se habéntem, allelúja."
|
||||||
|
en: "V. Thou didst send them from heaven, alleluia.\nR. Bread able to content every man's delight, alleluia."
|
||||||
|
status:
|
||||||
|
la: verified
|
||||||
|
en: verified
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# The Sacred Heart's own versicle — identical at both Vespers and Lauds
|
||||||
|
# (see lauds-versicle-sacred-heart.yml). Live-verified against Divinum
|
||||||
|
# Officium (Divino Afflatu - 1954), Vespers live query, 2026-06-12 (the
|
||||||
|
# Sacred Heart itself).
|
||||||
|
id: vespers-versicle-sacred-heart
|
||||||
|
text:
|
||||||
|
la: "V. Hauriétis aquas in gáudio.\nR. De fóntibus Salvatóris."
|
||||||
|
en: "V. With joy shall ye draw water.\nR. Out of the fountains of the Saviour."
|
||||||
|
status:
|
||||||
|
la: verified
|
||||||
|
en: verified
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# Verified against Divinum Officium (Monastic Tridentinum 1617) -- read
|
||||||
|
# directly from the reference engine's own real-date output, 2026-05-14
|
||||||
|
# (Ascension Day itself). A real, pre-existing content gap:
|
||||||
|
# `getDayCollect` already looked up `${winner.id}-collect` for Ascension
|
||||||
|
# unconditionally (it's the day's own kind:'temporal' winner regardless
|
||||||
|
# of the hymnody-mechanism fix elsewhere), but this file never existed.
|
||||||
|
id: ascension-collect
|
||||||
|
text:
|
||||||
|
la: |
|
||||||
|
Orémus.
|
||||||
|
Concéde, quǽsumus, omnípotens Deus: ut, qui hodiérna die Unigénitum tuum, Redemptórem nostrum, ad cælos ascendísse crédimus; ipsi quoque mente in cæléstibus habitémus.
|
||||||
|
Per eúmdem Dóminum nostrum Jesum Christum Fílium tuum, qui tecum vivit et regnat in unitáte Spíritus Sancti, Deus, per ómnia sǽcula sæculórum.
|
||||||
|
R. Amen.
|
||||||
|
en: |
|
||||||
|
Let us pray.
|
||||||
|
Grant, we beseech thee, Almighty God, that just as we do believe thine Only-Begotten Son, our Saviour, to have this day ascended into the heavens, so we may also in heart and mind thither ascend, and with Him continually dwell.
|
||||||
|
Through the same Jesus Christ, thy Son, Our Lord, Who liveth and reigneth with thee in the unity of the Holy Ghost, God, world without end.
|
||||||
|
R. Amen.
|
||||||
|
status:
|
||||||
|
la: verified
|
||||||
|
en: verified
|
||||||
+12
-6
@@ -321,12 +321,18 @@ function resolveLaudsHymn(day: LiturgicalDay, key: string): ResolvedText {
|
|||||||
function resolveOffice(day: LiturgicalDay): ResolvedPart[] {
|
function resolveOffice(day: LiturgicalDay): ResolvedPart[] {
|
||||||
const bundle = resolveOfficeBundle('lauds', day);
|
const bundle = resolveOfficeBundle('lauds', day);
|
||||||
if (bundle) {
|
if (bundle) {
|
||||||
return [
|
const parts: ResolvedPart[] = [{ kind: 'chapter', text: bundle.chapter }];
|
||||||
{ kind: 'chapter', text: bundle.chapter },
|
// The Sacred Heart's own Lauds genuinely has no responsory at all in
|
||||||
{ kind: 'responsory', text: bundle.responsory },
|
// the source (live-verified, Divino Afflatu 1954, 2026-06-12: straight
|
||||||
{ kind: 'hymn', text: bundle.hymn },
|
// from chapter to hymn, "Capitulum Hymnus Versus" with no
|
||||||
{ kind: 'versicle', text: bundle.versicle },
|
// "Responsorium" in between) — an intentionally missing part, not an
|
||||||
];
|
// unauthored one, so omitted from the page entirely rather than
|
||||||
|
// rendering an empty section.
|
||||||
|
if (bundle.responsory.status.la !== 'missing' || bundle.responsory.status.en !== 'missing') {
|
||||||
|
parts.push({ kind: 'responsory', text: bundle.responsory });
|
||||||
|
}
|
||||||
|
parts.push({ kind: 'hymn', text: bundle.hymn }, { kind: 'versicle', text: bundle.versicle });
|
||||||
|
return parts;
|
||||||
}
|
}
|
||||||
const seasonSuffix = seasonalOfficeSuffix(day.season);
|
const seasonSuffix = seasonalOfficeSuffix(day.season);
|
||||||
const key = seasonSuffix ?? day.weekday;
|
const key = seasonSuffix ?? day.weekday;
|
||||||
|
|||||||
@@ -62,6 +62,8 @@ export const ALWAYS_OVERRIDE_TEMPORAL_IDS = new Set([
|
|||||||
'immaculate-heart-of-mary',
|
'immaculate-heart-of-mary',
|
||||||
'ascension',
|
'ascension',
|
||||||
'pentecost-sunday',
|
'pentecost-sunday',
|
||||||
|
'corpus-christi',
|
||||||
|
'sacred-heart',
|
||||||
'circumcision',
|
'circumcision',
|
||||||
'holy-name-of-jesus',
|
'holy-name-of-jesus',
|
||||||
'vigil-of-christmas',
|
'vigil-of-christmas',
|
||||||
|
|||||||
@@ -229,12 +229,14 @@ function resolveVespersHymn(day: LiturgicalDay, key: string): ResolvedText {
|
|||||||
function resolveOffice(day: LiturgicalDay): ResolvedPart[] {
|
function resolveOffice(day: LiturgicalDay): ResolvedPart[] {
|
||||||
const bundle = resolveOfficeBundle('vespers', day, vespersCapitulumForOverride);
|
const bundle = resolveOfficeBundle('vespers', day, vespersCapitulumForOverride);
|
||||||
if (bundle) {
|
if (bundle) {
|
||||||
return [
|
const parts: ResolvedPart[] = [{ kind: 'chapter', text: bundle.chapter }];
|
||||||
{ kind: 'chapter', text: bundle.chapter },
|
// The Sacred Heart's own Vespers genuinely has no responsory at all in
|
||||||
{ kind: 'responsory', text: bundle.responsory },
|
// the source, same as its own Lauds — see lauds.ts's identical check.
|
||||||
{ kind: 'hymn', text: bundle.hymn },
|
if (bundle.responsory.status.la !== 'missing' || bundle.responsory.status.en !== 'missing') {
|
||||||
{ kind: 'versicle', text: bundle.versicle },
|
parts.push({ kind: 'responsory', text: bundle.responsory });
|
||||||
];
|
}
|
||||||
|
parts.push({ kind: 'hymn', text: bundle.hymn }, { kind: 'versicle', text: bundle.versicle });
|
||||||
|
return parts;
|
||||||
}
|
}
|
||||||
const seasonSuffix = seasonalOfficeSuffix(day.season);
|
const seasonSuffix = seasonalOfficeSuffix(day.season);
|
||||||
const key = seasonSuffix ?? day.weekday;
|
const key = seasonSuffix ?? day.weekday;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { getLaudsCommonOverride } from '../../src/hours/lauds-psalmody-overrides
|
|||||||
// and src/hours/lauds.ts's own generation-script provenance comments for
|
// and src/hours/lauds.ts's own generation-script provenance comments for
|
||||||
// why these particular dates.
|
// why these particular dates.
|
||||||
const FERIAL_SUNDAY = '2026-06-21';
|
const FERIAL_SUNDAY = '2026-06-21';
|
||||||
const FERIAL_MONDAY = '2026-06-08'; // not 08-31 -- St. Raymond Nonnatus's own day (common-of-a-confessor)
|
const FERIAL_MONDAY = '2026-09-07'; // not 2026-06-08 -- that fell inside Corpus Christi's own octave once its own hymnody was modeled 2026-09-04, see TODO.md; not 08-31 either -- St. Raymond Nonnatus's own day (common-of-a-confessor)
|
||||||
const FERIAL_TUESDAY = '2033-09-06'; // not 2026-06-16 -- that fell inside Sacred Heart's own octave once modeled 2026-08-26, see TODO.md
|
const FERIAL_TUESDAY = '2033-09-06'; // not 2026-06-16 -- that fell inside Sacred Heart's own octave once modeled 2026-08-26, see TODO.md
|
||||||
const LAWRENCE_OCTAVE_DAY = '2026-08-11'; // Semiduplex -- exercises isDoubleOrHigher's false branch differently than a plain feria only in rank, not in psalms (Commune override not modeled, see below)
|
const LAWRENCE_OCTAVE_DAY = '2026-08-11'; // Semiduplex -- exercises isDoubleOrHigher's false branch differently than a plain feria only in rank, not in psalms (Commune override not modeled, see below)
|
||||||
|
|
||||||
|
|||||||
@@ -524,15 +524,23 @@ describe('resolveOrdo("vespers", ...)', () => {
|
|||||||
// to the octave -- and Jun 9 itself is *also* inside the same
|
// to the octave -- and Jun 9 itself is *also* inside the same
|
||||||
// octave, already having lost its own Simplex saint (Ss. Primus and
|
// octave, already having lost its own Simplex saint (Ss. Primus and
|
||||||
// Felicianus) to it, so neither day has any sanctoral winner left to
|
// Felicianus) to it, so neither day has any sanctoral winner left to
|
||||||
// anticipate. Jun 9's evening falls all the way through to the plain
|
// anticipate.
|
||||||
// ferial Vespers default (Trinity week's own governing chapter/hymn),
|
//
|
||||||
// with both Primus & Felicianus and Corpus Christi's octave merely
|
// Corrected 2026-09-04: Jun 9's evening does NOT fall through to the
|
||||||
// commemorated, not any widow-specific content at all.
|
// plain ferial Vespers default -- that was this test's own original,
|
||||||
|
// never-actually-verified guess, documenting the same real
|
||||||
|
// resolveOfficeWinner gap already fixed for Ascension/Pentecost (see
|
||||||
|
// TODO.md): a temporal-feast octave (Corpus Christi, no saint
|
||||||
|
// record) wasn't being recognized on ordinary-feria days within it.
|
||||||
|
// Live-verified against Divinum Officium (Monastic Tridentinum 1617,
|
||||||
|
// 2026-06-09, "Feria Tertia infra Octavam Corporis Christi"): the
|
||||||
|
// real content is Corpus Christi's own chapter/hymn ("ex Commune aut
|
||||||
|
// Festo" in the source), not Trinity week's own governing default.
|
||||||
const ordo = resolveOrdo('vespers', '2026-06-09');
|
const ordo = resolveOrdo('vespers', '2026-06-09');
|
||||||
const chapter = ordo.parts.find((p) => p.kind === 'chapter');
|
const chapter = ordo.parts.find((p) => p.kind === 'chapter');
|
||||||
expect(chapter?.kind === 'chapter' ? chapter.text.citation?.en : undefined).toBe('2 Cor 1:3-4');
|
expect(chapter?.kind === 'chapter' ? chapter.text.citation?.en : undefined).toBe('1 Cor 11:23-24');
|
||||||
const hymn = ordo.parts.find((p) => p.kind === 'hymn');
|
const hymn = ordo.parts.find((p) => p.kind === 'hymn');
|
||||||
expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Tellúris ingens Cónditor');
|
expect(hymn?.kind === 'hymn' ? hymn.text.text.la : undefined).toContain('Pange, lingua, gloriósi');
|
||||||
});
|
});
|
||||||
|
|
||||||
it("uses common-of-the-bvm's real office bundle for Our Lady of Mount Carmel's First Vespers", () => {
|
it("uses common-of-the-bvm's real office bundle for Our Lady of Mount Carmel's First Vespers", () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user