Commit Graph

17 Commits

Author SHA1 Message Date
8e17a96145 Add typed vCard 4 reduced-precision date constructors 2026-03-28 22:51:41 -05:00
d1318acbf9 Add vCard 4 REV and CLIENTPIDMAP tests 2026-03-28 21:42:43 -05:00
addb2a2d8d Validate vCard 4 MEMBER and PID semantics 2026-03-28 21:41:55 -05:00
ac25a4ec06 Add vCard 4 semantic validation tests 2026-03-28 21:40:15 -05:00
15d2b7ecd0 Add vCard 4 parameter applicability tests 2026-03-28 21:37:54 -05:00
45ec8efc8a Add vCard 4 SORT-AS and CALSCALE tests 2026-03-28 21:35:44 -05:00
eb6d21c9bf Add vCard 4 ADR parameter tests 2026-03-28 21:33:37 -05:00
b1cf3bb867 Add vCard 4 RFC 6868 regression tests 2026-03-28 21:31:10 -05:00
5cdffd9126 Add vCard 4 ORG structured-property tests 2026-03-28 20:50:08 -05:00
4bc76fa2f8 Add vCard 4 ADR structured-property tests 2026-03-28 20:48:19 -05:00
99a36f71d0 Add vCard 4 LANG and TZ value-type tests 2026-03-28 20:27:12 -05:00
2ae016f426 Failing tests for vCard v4 fix sets. 2026-03-28 19:54:17 -05:00
e3f0fdc1ab Refactor vCard validation and canonicalize VERSION handling
Move whole-card cardinality checks into overloaded validate helpers in
the vCard 3 and vCard 4 modules, and have readVCard invoke those
validators after parsing instead of hard-coding property checks in the
shared parser.

For vCard 3, validate property cardinality directly from propertyCardMap
and add regression coverage for duplicate single-cardinality properties.
For vCard 4, validate from propertyCardMap as well, while preserving
ALTID semantics for single-cardinality properties so alternate
representations remain valid and duplicate ungrouped properties are
rejected.

Rework VERSION handling to treat it as parser metadata rather than
stored card content. Parsing still requires exactly one canonical
VERSION line and rejects missing or duplicate occurrences, but parsed
cards no longer retain VC3_Version or VC4_Version objects in content.
Accessors and serializers continue to expose and emit the canonical
version for the concrete card type, which keeps parsed and
programmatically constructed cards on the same model.

Update the vCard 3 and vCard 4 test suites to cover the new validation
path, confirm VERSION is not persisted in content, and adjust fixture
expectations to match the canonical VERSION model.

AI-Assisted: yes
AI-Tool: OpenAI Codex / gpt-5.4 xhigh
2026-03-28 19:41:09 -05:00
c9de20f3a7 WIP: Test cases covering findings surfaced by ChatGPT. 2026-03-28 09:58:12 -05:00
ab2579bdb5 Modifications to compile under Nim 2.x 2026-03-28 09:55:17 -05:00
98c300fee2 vcard4: Complete implementation.
- Parsers and serializers are now present for all property types.
- Tests exist to cover parsing for most value types. Many property types
  share the same parsing logic based on their value type. We have
  created unit tests to cover each value type, not neccesarily all
  properties individually.
2023-05-02 22:37:23 -05:00
f59403ad72 WIP - initial VCard4 implementation. 2023-04-23 21:56:15 -05:00