node-vcard icon indicating copy to clipboard operation
node-vcard copied to clipboard

Vendor specific tags cause parsing failure

Open djmosimann opened this issue 1 year ago • 0 comments

It looks like Vendor specific tags as described in the RFC are not handled.

From https://datatracker.ietf.org/doc/html/rfc6350:

vCard elements belonging to the vendor namespace will be distinguished by the "VND-" prefix. This is followed by an IANA- registered Private Enterprise Number (PEN), a dash, and a vCard element designation of the vendor's choosing (e.g., "VND-123456- MUDPIE").

The defect looks like it's in this.getValidationError() where it checks for valid tags using:

			if (!(u.contains(validFields.singleText, field) ||
			      u.contains(validFields.multipleText, field) ||
			      u.contains(validFields.rfc2425, field) ||
			      u.contains(validFields.singleBinary, field) ||
			      u.contains(validFields.structured, field) ||
			      field.match(/^X-.*/))){
```			      
That code needs an additional check as in:
		if (!(u.contains(validFields.singleText, field) ||
		      u.contains(validFields.multipleText, field) ||
		      u.contains(validFields.rfc2425, field) ||
		      u.contains(validFields.singleBinary, field) ||
		      u.contains(validFields.structured, field) ||
		      field.match(/^VND-.*/) ||
		      field.match(/^X-.*/))){

djmosimann avatar May 06 '24 21:05 djmosimann