Preserve releasedAt timestamps during admin content sanitize

This commit is contained in:
nmemmert
2026-05-21 12:44:13 -04:00
parent bd047b029c
commit ffa860d5bc
+13 -3
View File
@@ -226,10 +226,19 @@ function sanitizeArchivedSeriesNotes(value) {
}
function sanitizeColossiansStudySections(value) {
function normalizeReleasedAt(value) {
if (typeof value !== 'string' || !value.trim()) return ''
const parsed = Date.parse(value.trim())
if (!Number.isFinite(parsed)) return ''
return new Date(parsed).toISOString().replace('.000Z', 'Z')
}
const source = Array.isArray(value) ? value : []
return source
.filter(item => item && typeof item === 'object')
.map(item => ({
.map(item => {
const releasedAt = normalizeReleasedAt(item.releasedAt)
return {
id: typeof item.id === 'string' && item.id.trim() ? item.id.trim() : randomUUID(),
chapter: Number.isInteger(item.chapter) && item.chapter >= 1 && item.chapter <= 999 ? item.chapter : 1,
reference: typeof item.reference === 'string' ? item.reference.trim().slice(0, 40) : '',
@@ -244,8 +253,9 @@ function sanitizeColossiansStudySections(value) {
studyQuestions: Array.isArray(item.studyQuestions)
? item.studyQuestions.filter(question => typeof question === 'string').map(question => question.trim()).filter(Boolean).slice(0, 20)
: [],
...(typeof item.releasedAt === 'string' && /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/.test(item.releasedAt) ? { releasedAt: item.releasedAt } : {}),
}))
...(releasedAt ? { releasedAt } : {}),
}
})
.filter(item => item.title || item.summary || item.commentary || item.greekNotes.length > 0 || item.studyQuestions.length > 0 || item.passageText)
}