10 lines
1.3 KiB
Markdown
10 lines
1.3 KiB
Markdown
# Architecture
|
|
|
|
Contact Tools is a static React/Vite application wrapped in the shared Toolbox shell. `contact/model.ts` owns bounded vCard unfolding/parsing, canonical serialization, RFC 4180-style CSV conversion, exact duplicate indexing and deterministic merge previews. The workbench only replaces its active records after a complete successful parse.
|
|
|
|
Imported properties are projected into a typed contact model and rendered through React text nodes and native controls. Unknown properties are diagnosed and omitted from canonical output instead of being injected back into markup. QR SVG is generated from UTF-8 bytes of the canonical vCard by the pinned `qrcode-generator` runtime, checked for active SVG constructs, then displayed as an encoded image URL rather than inserted as markup.
|
|
|
|
Version 0.1 operations are synchronous and bounded, so the app creates no worker and has no persistence or server API. Relative entry and asset URLs keep the build relocatable below a nested portal path.
|
|
|
|
Duplicate analysis is capped at 10,000 materialized candidates and 25,000 evaluated pair relationships; the UI reports when the result is truncated. Email, phone, and URL values use distinct equality keys during merge so punctuation meaningful to an address or URL is not discarded by generic name normalization.
|