vcard4
Version:
An RFC 6350 compliant JavaScript library for generating and parsing version 4.0 vCards. Can also generate RFC 6351 compliant XML vCards and RFC 7095 compliant jCards. TypeScript type declarations are provided.
1 lines • 163 kB
JavaScript
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self).vcard4={})}(this,function(e){"use strict";function r(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,a=Array(r);t<r;t++)a[t]=e[t];return a}function t(e,r,t){if("function"==typeof e?e===r:e.has(r))return arguments.length<3?r:t;throw new TypeError("Private element is not present on this object")}function a(e,r,t){return r=d(r),function(e,r){if(r&&("object"==typeof r||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,m()?Reflect.construct(r,t||[],d(e).constructor):r.apply(e,t))}function n(e,r){if(r.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function i(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}function o(e,r){return e.get(t(e,r))}function u(e,r,t){n(e,r),r.set(e,t)}function s(e,r,a){return e.set(t(e,r),a),a}function c(e,r){n(e,r),r.add(e)}function p(e,r){for(var t=0;t<r.length;t++){var a=r[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,g(a.key),a)}}function f(e,r,t){return r&&p(e.prototype,r),t&&p(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function l(e,r){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=A(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var a=0,n=function(){};return{s:n,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,u=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return o=e.done,e},e:function(e){u=!0,i=e},f:function(){try{o||null==t.return||t.return()}finally{if(u)throw i}}}}function y(e,r,t){return(r=g(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function d(e){return d=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},d(e)}function h(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),r&&w(e,r)}function m(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(m=function(){return!!e})()}function v(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);r&&(a=a.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,a)}return t}function P(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?v(Object(t),!0).forEach(function(r){y(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):v(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function w(e,r){return w=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,r){return e.__proto__=r,e},w(e,r)}function T(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var a,n,i,o,u=[],s=!0,c=!1;try{if(i=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;s=!1}else for(;!(s=(a=i.call(t)).done)&&(u.push(a.value),u.length!==r);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=t.return&&(o=t.return(),Object(o)!==o))return}finally{if(c)throw n}}return u}}(e,r)||A(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e){return function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||A(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e){var r=function(e,r){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,r||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"==typeof r?r:r+""}function k(e){return k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},k(e)}function A(e,t){if(e){if("string"==typeof e)return r(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?r(e,t):void 0}}function S(e){var r="function"==typeof Map?new Map:void 0;return S=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(r){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(e))return r.get(e);r.set(e,t)}function t(){return function(e,r,t){if(m())return Reflect.construct.apply(null,arguments);var a=[null];a.push.apply(a,r);var n=new(e.bind.apply(e,a));return t&&w(n,t.prototype),n}(e,arguments,d(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),w(t,e)},S(e)}var O=function(e){function r(e){var t;return i(this,r),(t=a(this,r,[e])).name="MissingArgument",t}return h(r,e),f(r)}(S(Error));Object.freeze(O);var M=function(e){function r(e){var t;return i(this,r),(t=a(this,r,[e])).name="InvalidArgument",t}return h(r,e),f(r)}(S(Error));Object.freeze(M);var L=function(e){function r(e){var t;return i(this,r),(t=a(this,r,[e])).name="InvalidVcard",t}return h(r,e),f(r)}(S(Error));Object.freeze(L);var N=new WeakMap,I=function(){return f(function e(){if(i(this,e),u(this,N,["type","value","valueXML","valueJSON","identifier"]),this.constructor===e)throw new Error("Cannot create instance of base class")},[{key:"checkAbstractPropertiesAndMethods",value:function(){var e=this;if(!o(N,this).every(function(r){return Object.prototype.hasOwnProperty.call(e,r)||Object.prototype.hasOwnProperty.call(Object.getPrototypeOf(e),r)||Object.prototype.hasOwnProperty.call(e.constructor,r)}))throw new Error("All abstract properties and methods in abstract base class must be defined in child class")}},{key:"repr",value:function(){return this.value}},{key:"reprXML",value:function(){return this.valueXML}},{key:"reprJSON",value:function(){return this.valueJSON}}])}();Object.freeze(I);var E=new WeakMap,X=new WeakSet,J=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),X),u(n,E,void 0),t(X,n,V).call(n,e),s(E,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return t(X,this,j).call(this,o(E,this))}},{key:"valueXML",get:function(){return"<".concat(this.constructor.type.toLowerCase(),">").concat(t(X,this,W).call(this,o(E,this)),"</").concat(this.constructor.type.toLowerCase(),">")}},{key:"valueJSON",get:function(){return[this.constructor.type.toLowerCase(),o(E,this)]}},{key:"_unsafe_raw_value",get:function(){return o(E,this)}}])}(I);function V(e){if(void 0===e||""===e)throw new O("Value for TextType must be supplied");if("string"!=typeof e)throw new TypeError("Only type string allowed for TextType value")}function j(e){return e.replaceAll("\\","\\\\").replaceAll(",","\\,").replaceAll(":","\\:").replaceAll(";","\\;").replaceAll("\n","\\n")}function W(e){return e.replaceAll("&","&").replaceAll(">",">").replaceAll("<","<").replaceAll('"',""").replaceAll("'","'")}y(J,"type","TEXT"),y(J,"identifier","TextType"),Object.freeze(J);var x=new WeakMap,D=new WeakSet,R=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),D),u(n,x,void 0),t(D,n,z).call(n,e),s(x,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return o(x,this).reduce(function(e,r){return e.push(r.repr()),e},[]).join(",")}},{key:"valueXML",get:function(){return o(x,this).reduce(function(e,r){return e+r.reprXML()},"")}},{key:"valueJSON",get:function(){var e=o(x,this).reduce(function(e,r){return e.push(r.reprJSON().pop()),e},[]);return e.unshift(this.constructor.type.toLowerCase()),e}}])}(I);function z(e){if(void 0===e)throw new O("Value for TextListType must be supplied");if(!Array.isArray(e))throw new TypeError("Value for TextListType must be passed in an array");var r,t=l(e);try{for(t.s();!(r=t.n()).done;){if("TextType"!==r.value.constructor.identifier)throw new TypeError("Invalid type for value of TextListType. It should be an array of TextTypes")}}catch(e){t.e(e)}finally{t.f()}}y(R,"type","TEXT"),y(R,"identifier","TextListType"),Object.freeze(R);var C=new WeakMap,U=new WeakSet,G=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),U),u(n,C,void 0),t(U,n,$).call(n,e),s(C,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return"".concat(o(C,this))}},{key:"valueXML",get:function(){return"<".concat(this.constructor.type.toLowerCase(),">").concat(o(C,this),"</").concat(this.constructor.type.toLowerCase(),">")}},{key:"valueJSON",get:function(){return[this.constructor.type.toLowerCase(),o(C,this)]}}])}(I);function $(e){if(void 0===e)throw new O("boolValue must be supplied");if("boolean"!=typeof e)throw new TypeError("Value for BooleanType should be of type boolean")}y(G,"type","BOOLEAN"),y(G,"identifier","BooleanType"),Object.freeze(G);var B=new WeakMap,F=new WeakMap,_=new WeakMap,K=new WeakMap,H=new WeakMap,Z=new WeakMap,Y=new WeakMap,q=new WeakMap,Q=new WeakSet,ee=function(e){function r(e,n){var p;return i(this,r),c(p=a(this,r),Q),u(p,B,void 0),u(p,F,/^(?:(?:\d{4})|(?:(?:\d{4}(?:(?:(?:0[469]|11)(?:[0-2]\d|30))|(?:(?:0[13578]|1[02])(?:[0-2]\d|3[01]))))|(?:\d{2}(?:(?:(?:[02468][048]|[13579][26])(?:02)(?:[0-2]\d))|(?:(:?\d[13579]|[02468][26]|[13579][048])(?:02)(?:[0-2][0-8]|[01]9)))))|(?:-{2}(?:(?:(?:0[469]|11)(?:[0-2]\d|30)?)|(?:(?:0[13578]|1[02])(?:[0-2]\d|3[01])?)|(?:(?:02)(?:[0-2]\d)?)))|(?:-{3}(?:[0-2]\d|3[01]))|(?:\d{4}-(?:(?:0[1-9])|1[0-2])))$/),u(p,_,/^(?:(?:(?:(?:[01]\d)|(?:2[0-3]))(?:(?:[0-5]\d){1,2})?)|(?:-(?:[0-5]\d){1,2})|(?:-{2}[0-5]\d))(?:Z|(?:[+-]((?:[01]\d)|(?:2[0-3]))(?:[0-5]\d)?))?$/),u(p,K,/^(?:(?:(?:\d{4}(?:(?:(?:0[469]|11)(?:[0-2]\d|30))|(?:(?:0[13578]|1[02])(?:[0-2]\d|3[01]))))|(?:\d{2}(?:(?:(?:[02468][048]|[13579][26])(?:02)(?:[0-2]\d))|(?:(:?\d[13579]|[02468][26]|[13579][048])(?:02)(?:[0-2][0-8]|[01]9)))))|(?:-{2}(?:(?:(?:0[469]|11)(?:[0-2]\d|30))|(?:(?:0[13578]|1[02])(?:[0-2]\d|3[01]))|(?:(?:02)(?:[0-2]\d))))|(?:-{3}(?:[0-2]\d|3[01])))(?:T)(?:(?:(?:(?:[01]\d)|(?:2[0-3]))(?:(?:[0-5]\d){1,2})?)(?:Z|(?:[+-]((?:[01]\d)|(?:2[0-3]))(?:[0-5]\d)?))?)$/),u(p,H,new RegExp("(?:".concat(o(F,p).source,"|").concat(o(_,p).source.replace("^","^T"),"|").concat(o(K,p).source,")"))),u(p,Z,/^(?:(?:\d{4}(?:(?:(?:0[469]|11)(?:[0-2]\d|30))|(?:(?:0[13578]|1[02])(?:[0-2]\d|3[01]))))|(?:\d{2}(?:(?:(?:[02468][048]|[13579][26])(?:02)(?:[0-2]\d))|(?:(:?\d[13579]|[02468][26]|[13579][048])(?:02)(?:[0-2][0-8]|[01]9)))))(?:T)(?:(?:(?:(?:[01]\d)|(?:2[0-3]))(?:[0-5]\d){2})(?:Z|(?:[+-]((?:[01]\d)|(?:2[0-3]))(?:[0-5]\d)?))?)$/),u(p,Y,/^(?:[+-]((?:[01]\d)|(?:2[0-3]))(?:[0-5]\d)?)$/),u(p,q,20),t(Q,p,re).call(p,e,n),s(B,p,n),p.checkAbstractPropertiesAndMethods(),Object.freeze(p),p}return h(r,e),f(r,[{key:"value",get:function(){return"".concat(o(B,this))}},{key:"valueXML",get:function(){var e=this.type.toLowerCase(),r=o(B,this);if("date-and-or-time"===e)switch(!0){case o(F,this).test(r):e="date";break;case o(_,this).test(r):e="time";break;case o(K,this).test(r):e="date-time"}return"<".concat(e,">").concat(r,"</").concat(e,">")}},{key:"valueJSON",get:function(){var e,r=this.type.toLowerCase();function t(e){return/^\d{8}$/.test(e)?((e=b(e)).splice(4,0,"-"),e.splice(7,0,"-"),e.join("")):/^-{2}\d{4}$/.test(e)?((e=b(e)).splice(4,0,"-"),e.join("")):e}function a(e){for(var r=[],t=0;t<e.length;t+=2)/^\d$/.test(e[t])?(r.push(e[t]),r.push(e[t+1]),/^\d$/.test(e[t+2])&&r.push(":")):(r.push(e[t]),t--);return r.join("")}switch(r){case"date":e=t(o(B,this));break;case"time":case"utc-offset":e=a(o(B,this));break;case"date-time":case"timestamp":e=t((e=o(B,this).split("T"))[0])+"T"+a(e[1]);break;case"date-and-or-time":e=o(B,this).includes("T")?t((e=o(B,this).split("T"))[0])+"T"+a(e[1]):t(o(B,this))}return[r,e]}}])}(I);function re(e,r){if(void 0===r||void 0===e)throw new O("Value and type for DateTimeType must be supplied");if(!/^(?:(?:date((?:andor)?(?:time))?)|(?:time(?:stamp)?)|(?:utcoffset))$/.test(e))throw new M("Accepted values of type for DateTimeType are date, time, datetime, dateandortime, timestamp or utcoffset");if("".concat(r).length>o(q,this))throw new M("The value must not exceed ".concat(o(q,this)," characters"));switch(e){case"date":if(!o(F,this).test(r))throw new M("Invalid value for type date of DateTimeType");this.type="DATE";break;case"time":if(!o(_,this).test(r))throw new M("Invalid value for type time of DateTimeType");this.type="TIME";break;case"datetime":if(!o(K,this).test(r))throw new M("Invalid value for type datetime of DateTimeType");this.type="DATE-TIME";break;case"dateandortime":if(!o(H,this).test(r))throw new M("Invalid value for type dateandortime of DateTimeType");this.type="DATE-AND-OR-TIME";break;case"timestamp":if(!o(Z,this).test(r))throw new M("Invalid value for type timestamp of DateTimeType");this.type="TIMESTAMP";break;case"utcoffset":if(!o(Y,this).test(r))throw new M("Invalid value for type utcoffset of DateTimeType");this.type="UTC-OFFSET";break;default:throw new M("Accepted values for type property of type object for DateTimeType are date, time, datetime, dateandortime, timestamp or utcoffset")}}y(ee,"identifier","DateTimeType"),Object.freeze(ee);var te=new WeakMap,ae=new WeakSet,ne=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),ae),u(n,te,void 0),t(ae,n,ie).call(n,e),s(te,n,e),n.type=e[0].type,n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return o(te,this).reduce(function(e,r){return e.push(r.repr()),e},[]).join(",")}},{key:"valueXML",get:function(){return o(te,this).reduce(function(e,r){return e+r.reprXML()},"")}},{key:"valueJSON",get:function(){var e=o(te,this).reduce(function(e,r){return e.push(r.reprJSON().pop()),e},[]);return e.unshift(this.type.toLowerCase()),e}}])}(I);function ie(e){if(void 0===e)throw new O("Value for DateTimeListType must be supplied");if(!Array.isArray(e))throw new TypeError("Value for DateTimeListType should be passed in an array");var r,t=e[0].type,a=l(e);try{for(a.s();!(r=a.n()).done;){var n=r.value;if(n.type!==t)throw new TypeError("Value for DateTimeListType should be an array of DateTimeTypes of the same type");if("UTC-OFFSET"===n.type)throw new TypeError("Invalid type for value of DateTimeListType");if("DateTimeType"!==n.constructor.identifier)throw new TypeError("Value for DateTimeListType should be an array of DateTimeTypes")}}catch(e){a.e(e)}finally{a.f()}}y(ne,"identifier","DateTimeListType"),Object.freeze(ne);var oe=new WeakMap,ue=new WeakSet,se=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),ue),u(n,oe,void 0),t(ue,n,ce).call(n,e),s(oe,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return"".concat(o(oe,this))}},{key:"valueXML",get:function(){return"<".concat(this.constructor.type.toLowerCase(),">").concat(o(oe,this),"</").concat(this.constructor.type.toLowerCase(),">")}},{key:"valueJSON",get:function(){return[this.constructor.type.toLowerCase(),o(oe,this)]}}])}(I);function ce(e){if(void 0===e)throw new O("Value for IntegerType must be supplied");if("number"!=typeof e&&"bigint"!=typeof e)throw new TypeError("Value for IntegerType must be of type number or bigint");if(/\./.test(e.toString()))throw new M("Invalid value for IntegerType");if(!("number"!=typeof e||-Number.MAX_SAFE_INTEGER<e&&e<Number.MAX_SAFE_INTEGER))throw new M("The maximum value is ".concat(Number.MAX_SAFE_INTEGER,", and the minimum value is ").concat(Number.MIN_SAFE_INTEGER," for number IntegerType"));if("bigint"==typeof e&&!(-9223372036854775809n<e&&e<9223372036854775808n))throw new M("The maximum value is 9223372036854775807n, and the minimum value is -9223372036854775808n for bigint IntegerType")}y(se,"type","INTEGER"),y(se,"identifier","IntegerType"),Object.freeze(se);var pe=new WeakMap,fe=new WeakSet,le=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),fe),u(n,pe,void 0),t(fe,n,ye).call(n,e),s(pe,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return o(pe,this).reduce(function(e,r){return e.push(r.repr()),e},[]).join(",")}},{key:"valueXML",get:function(){return o(pe,this).reduce(function(e,r){return e+r.reprXML()},"")}},{key:"valueJSON",get:function(){var e=o(pe,this).reduce(function(e,r){return e.push(r.reprJSON().pop()),e},[]);return e.unshift(this.constructor.type.toLowerCase()),e}}])}(I);function ye(e){if(void 0===e)throw new O("Value for IntegerListType must be supplied");if(!Array.isArray(e))throw new TypeError("Value for IntegerListType must be passed in an array");var r,t=l(e);try{for(t.s();!(r=t.n()).done;){if("IntegerType"!==r.value.constructor.identifier)throw new TypeError("Invalid type for value of IntegerListType. It should be an array of IntegerTypes")}}catch(e){t.e(e)}finally{t.f()}}y(le,"type","INTEGER"),y(le,"identifier","IntegerListType"),Object.freeze(le);var de=new WeakMap,he=new WeakSet,me=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),he),u(n,de,void 0),t(he,n,ve).call(n,e),s(de,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return"".concat(o(de,this))}},{key:"valueXML",get:function(){return"<".concat(this.constructor.type.toLowerCase(),">").concat(o(de,this),"</").concat(this.constructor.type.toLowerCase(),">")}},{key:"valueJSON",get:function(){return[this.constructor.type.toLowerCase(),o(de,this)]}}])}(I);function ve(e){if(void 0===e)throw new O("Value for FloatType must be supplied");if("number"!=typeof e&&!/\./.test(e)||!/^[-+]?\d+\.\d+$/.test(e))throw new TypeError("Invalid value for FloatType")}y(me,"type","FLOAT"),y(me,"identifier","FloatType"),Object.freeze(me);var Pe=new WeakMap,we=new WeakSet,Te=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),we),u(n,Pe,void 0),t(we,n,be).call(n,e),s(Pe,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return o(Pe,this).reduce(function(e,r){return e.push(r.repr()),e},[]).join(",")}},{key:"valueXML",get:function(){return o(Pe,this).reduce(function(e,r){return e+r.reprXML()},"")}},{key:"valueJSON",get:function(){var e=o(Pe,this).reduce(function(e,r){return e.push(r.reprJSON().pop()),e},[]);return e.unshift(this.constructor.type.toLowerCase()),e}}])}(I);function be(e){if(void 0===e)throw new O("Value for FloatListType must be supplied");if(!Array.isArray(e))throw new TypeError("Value of FloatListType should be passed in an array");var r,t=l(e);try{for(t.s();!(r=t.n()).done;){if("FloatType"!==r.value.constructor.identifier)throw new TypeError("Value of FloatListType should be an array of FloatTypes")}}catch(e){t.e(e)}finally{t.f()}}y(Te,"type","FLOAT"),y(Te,"identifier","FloatListType"),Object.freeze(Te);var ge=new WeakMap,ke=new WeakMap,Ae=new WeakMap,Se=new WeakSet,Oe=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),Se),u(n,ge,void 0),u(n,ke,/^(?:[a-zA-Z]{2,3}(-[a-zA-Z]{3}){0,3})(-[0-9A-Za-z]+){0,3}(-x(-[0-9A-Za-z]{1,8})+)?(-[0-9A-WY-Za-wy-z]+)?(-[0-9A-Za-z]+)?$/),u(n,Ae,255),t(Se,n,Me).call(n,e),s(ge,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return o(ge,this)}},{key:"valueXML",get:function(){return"<".concat(this.constructor.type.toLowerCase(),">").concat(o(ge,this),"</").concat(this.constructor.type.toLowerCase(),">")}},{key:"valueJSON",get:function(){return[this.constructor.type.toLowerCase(),o(ge,this)]}}])}(I);function Me(e){if(void 0===e)throw new O("Value for LanguageTagType must be supplied");if("string"!=typeof e)throw new TypeError("Value for LanguageTagType should be of type string");if(e.length>o(Ae,this))throw new M("Value for LanguageTagType must not exceed ".concat(o(Ae,this)," characters"));if(!o(ke,this).test(e))throw new M("Invalid language tag")}y(Oe,"type","LANGUAGE-TAG"),y(Oe,"identifier","LanguageTagType"),Object.freeze(Oe);var Le=new WeakMap,Ne=new WeakSet,Ie=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),Ne),u(n,Le,void 0),t(Ne,n,Ee).call(n,e),s(Le,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return o(Le,this)}},{key:"valueXML",get:function(){return"<".concat(this.constructor.type.toLowerCase(),">").concat(o(Le,this),"</").concat(this.constructor.type.toLowerCase(),">")}},{key:"valueJSON",get:function(){return[this.constructor.type.toLowerCase(),o(Le,this)]}}])}(I);function Ee(e){if(void 0===e)throw new O("Value for URIType must be supplied");if("string"!=typeof e)throw new TypeError("Value for URIType should be of type string");if(!URL.canParse(e))throw new M("Invalid URI")}y(Ie,"type","URI"),y(Ie,"identifier","URIType"),Object.freeze(Ie);var Xe=new WeakMap,Je=new WeakMap,Ve=new WeakSet,je=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),Ve),u(n,Xe,/^[MFONU]$/),u(n,Je,void 0),t(Ve,n,We).call(n,e),s(Je,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return o(Je,this)}},{key:"valueXML",get:function(){return"<sex>".concat(o(Je,this),"</sex>")}},{key:"valueJSON",get:function(){return[this.constructor.type.toLowerCase(),o(Je,this)]}}])}(I);function We(e){if(void 0===e)throw new O("Value for SexType must be supplied");if(!o(Xe,this).test(e))throw new M("Invalid sex")}y(je,"type","TEXT"),y(je,"identifier","SexType"),Object.freeze(je);var xe=new WeakSet,De=function(e){function r(e,n){var o;return i(this,r),c(o=a(this,r),xe),t(xe,o,Re).call(o,e,n),o.targetProp=e.toUpperCase(),o.checkAbstractPropertiesAndMethods(),Object.freeze(o),o}return h(r,e),f(r)}(I);function Re(e,r){var t,a;if(void 0===r||void 0===e)throw new O("Value and target property for SpecialValueType must be supplied");var n,i;switch(!0){case/^KindProperty$/i.test(e):if("string"!=typeof r||!/^(?:individual|group|org|location|application|x-[a-z0-9-]+)$/i.test(r))throw new M("Invalid value for SpecialValueType for KindProperty");this.value=r,this.valueXML="<text>".concat(r,"</text>"),this.valueJSON=[this.constructor.type.toLowerCase(),r];break;case/^NProperty$/i.test(e):if(!Array.isArray(r)||5!==r.length)throw new M("Invalid value for SpecialValueType for NProperty. It should be an array with a length of 5");for(var o=0;o<r.length;o++)if(r[o]&&"TextType"!==r[o].constructor.identifier&&"TextListType"!==r[o].constructor.identifier)throw new TypeError("Invalid value for SpecialValueType for NProperty. The items in the array, if present, should be of type TextType or TextListType");n=b(r);for(var u=0;u<n.length;u++)n[u]&&(n[u]=n[u].repr());this.value=n.join(";"),this.valueXML="",this.valueJSON=[];for(var s=0;s<r.length;s++)switch(s){case 0:r[s]?(this.valueXML+=r[s].reprXML().replaceAll("text>","surname>"),2===(i=r[s].reprJSON()).length?this.valueJSON[s]=i.pop():(i.shift(),this.valueJSON[s]=i)):(this.valueXML+="<surname/>",this.valueJSON[s]="");break;case 1:r[s]?(this.valueXML+=r[s].reprXML().replaceAll("text>","given>"),2===(i=r[s].reprJSON()).length?this.valueJSON[s]=i.pop():(i.shift(),this.valueJSON[s]=i)):(this.valueXML+="<given/>",this.valueJSON[s]="");break;case 2:r[s]?(this.valueXML+=r[s].reprXML().replaceAll("text>","additional>"),2===(i=r[s].reprJSON()).length?this.valueJSON[s]=i.pop():(i.shift(),this.valueJSON[s]=i)):(this.valueXML+="<additional/>",this.valueJSON[s]="");break;case 3:r[s]?(this.valueXML+=r[s].reprXML().replaceAll("text>","prefix>"),2===(i=r[s].reprJSON()).length?this.valueJSON[s]=i.pop():(i.shift(),this.valueJSON[s]=i)):(this.valueXML+="<prefix/>",this.valueJSON[s]="");break;case 4:r[s]?(this.valueXML+=r[s].reprXML().replaceAll("text>","suffix>"),2===(i=r[s].reprJSON()).length?this.valueJSON[s]=i.pop():(i.shift(),this.valueJSON[s]=i)):(this.valueXML+="<suffix/>",this.valueJSON[s]="")}this.valueJSON=[this.constructor.type.toLowerCase(),this.valueJSON];break;case/^GenderProperty$/i.test(e):if(!Array.isArray(r)||2!==r.length)throw new M("Invalid value for SpecialValueType for GenderProperty. It should be an array with a length of 2");if(r[0]&&"SexType"!==r[0].constructor.identifier)throw new TypeError("Invalid value for SpecialValueType for GenderProperty. The first item in the array, if present, should be of type SexType");if(!r[0]&&!r[1]||r[1]&&"TextType"!==r[1].constructor.identifier)throw new TypeError("Invalid value for SpecialValueType for GenderProperty. The second item in the array, if present, should be of type TextType");this.value=r.reduce(function(e,r){return e?"".concat(e,";").concat(r.repr()):r.repr()},""),this.valueXML=r.reduce(function(e,r){return e+r.reprXML()},""),this.valueJSON=r.reduce(function(e,r){return e.push(r.reprJSON().pop()),e},[]),1===this.valueJSON.length?this.valueJSON.unshift(this.constructor.type.toLowerCase()):this.valueJSON=[this.constructor.type.toLowerCase(),this.valueJSON];break;case/^AdrProperty$/i.test(e):if(!Array.isArray(r)||7!==r.length)throw new M("Invalid value for SpecialValueType for AdrProperty. It should be an array with a length of 7");for(var c=0;c<r.length;c++)if(r[c]&&"TextType"!==r[c].constructor.identifier)throw new TypeError("Invalid value for SpecialValueType for AdrProperty. The items in the array, if present, should be of type TextType");n=b(r);for(var p=0;p<n.length;p++)n[p]&&(n[p]=n[p].repr());this.value=n.join(";"),this.valueXML="",this.valueJSON=[];for(var f=0;f<r.length;f++)switch(f){case 0:r[f]?(this.valueXML+=r[f].reprXML().replaceAll("text>","pobox>"),2===(i=r[f].reprJSON()).length?this.valueJSON[f]=i.pop():(i.shift(),this.valueJSON[f]=i)):(this.valueXML+="<pobox/>",this.valueJSON[f]="");break;case 1:r[f]?(this.valueXML+=r[f].reprXML().replaceAll("text>","ext>"),2===(i=r[f].reprJSON()).length?this.valueJSON[f]=i.pop():(i.shift(),this.valueJSON[f]=i)):(this.valueXML+="<ext/>",this.valueJSON[f]="");break;case 2:r[f]?(this.valueXML+=r[f].reprXML().replaceAll("text>","street>"),2===(i=r[f].reprJSON()).length?this.valueJSON[f]=i.pop():(i.shift(),this.valueJSON[f]=i)):(this.valueXML+="<street/>",this.valueJSON[f]="");break;case 3:r[f]?(this.valueXML+=r[f].reprXML().replaceAll("text>","locality>"),2===(i=r[f].reprJSON()).length?this.valueJSON[f]=i.pop():(i.shift(),this.valueJSON[f]=i)):(this.valueXML+="<locality/>",this.valueJSON[f]="");break;case 4:r[f]?(this.valueXML+=r[f].reprXML().replaceAll("text>","region>"),2===(i=r[f].reprJSON()).length?this.valueJSON[f]=i.pop():(i.shift(),this.valueJSON[f]=i)):(this.valueXML+="<region/>",this.valueJSON[f]="");break;case 5:r[f]?(this.valueXML+=r[f].reprXML().replaceAll("text>","code>"),2===(i=r[f].reprJSON()).length?this.valueJSON[f]=i.pop():(i.shift(),this.valueJSON[f]=i)):(this.valueXML+="<code/>",this.valueJSON[f]="");break;case 6:r[f]?(this.valueXML+=r[f].reprXML().replaceAll("text>","country>"),2===(i=r[f].reprJSON()).length?this.valueJSON[f]=i.pop():(i.shift(),this.valueJSON[f]=i)):(this.valueXML+="<country/>",this.valueJSON[f]="")}this.valueJSON=[this.constructor.type.toLowerCase(),this.valueJSON];break;case/^OrgProperty$/i.test(e):if(!(Array.isArray(r)&&r.length>=1))throw new M("Invalid value for SpecialValueType for OrgProperty. It should be an array with at least one item");for(var l=0;l<r.length;l++){var y;if("TextType"!==(null===(y=r[l])||void 0===y||null===(y=y.constructor)||void 0===y?void 0:y.identifier))throw new TypeError("Invalid value for SpecialValueType for OrgProperty. The items in the array should be of type TextType")}this.value=r.reduce(function(e,r){return e?"".concat(e,";").concat(r.repr()):r.repr()},""),this.valueXML=r.reduce(function(e,r){return e+r.reprXML()},""),this.valueJSON=r.reduce(function(e,r){return e.push(r.reprJSON().pop()),e},[]),1===this.valueJSON.length?this.valueJSON.unshift(this.constructor.type.toLowerCase()):this.valueJSON=[this.constructor.type.toLowerCase(),this.valueJSON];break;case/^ClientpidmapProperty$/i.test(e):if(!Array.isArray(r)||2!==r.length)throw new M("Invalid value for SpecialValueType for ClientpidmapProperty. It should be an array with a length of 2");if("IntegerType"!==(null===(t=r[0])||void 0===t||null===(t=t.constructor)||void 0===t?void 0:t.identifier))throw new TypeError("Invalid value for SpecialValueType for ClientpidmapProperty. The first item in the array should be of type IntegerType");if(0>=Number(r[0].repr()))throw new M("Invalid value for SpecialValueType for ClientpidmapProperty. The first item in the array should be a positive integer of type IntegerType. Zero is not allowed");if("URIType"!==(null===(a=r[1])||void 0===a||null===(a=a.constructor)||void 0===a?void 0:a.identifier))throw new TypeError("Invalid value for SpecialValueType for ClientpidmapProperty. The second item in the array should be of type URIType");this.value=r.reduce(function(e,r){return e?"".concat(e,";").concat(r.repr()):r.repr()},""),this.valueXML=r.reduce(function(e,r){return e+r.reprXML()},""),this.valueJSON=["unknown",r.reduce(function(e,r){return e.push(r.reprJSON().pop()),e},[])];break;default:throw new M("Invalid target property for SpecialValueType")}}y(De,"identifier","SpecialValueType"),y(De,"type","TEXT"),Object.freeze(De);var ze=new WeakMap,Ce=new WeakSet,Ue=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),Ce),u(n,ze,void 0),t(Ce,n,Ge).call(n,e),s(ze,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){var e=t(Ce,this,$e).call(this,o(ze,this));return/[:;]/.test(e)?'"'.concat(e,'"'):e}},{key:"valueXML",get:function(){return"<".concat(this.constructor.type.toLowerCase(),">").concat(t(Ce,this,Be).call(this,o(ze,this)),"</").concat(this.constructor.type.toLowerCase(),">")}},{key:"valueJSON",get:function(){return[this.constructor.type.toLowerCase(),o(ze,this)]}},{key:"_unsafe_raw_value",get:function(){return o(ze,this)}}])}(I);function Ge(e){if(void 0===e||""===e)throw new O("Value for ParameterValueType must be supplied");if("string"!=typeof e)throw new TypeError("Only type string allowed for ParameterValueType value");if(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/.test(e))throw new M("Value includes forbidden characters")}function $e(e){return e.replaceAll("^","^^").replaceAll("\n","^n").replaceAll('"',"^’")}function Be(e){return e.replaceAll("&","&").replaceAll(">",">").replaceAll("<","<").replaceAll('"',""").replaceAll("'","'")}y(Ue,"type","TEXT"),y(Ue,"identifier","ParameterValueType"),Object.freeze(Ue);var Fe=new WeakMap,_e=function(){return f(function e(){if(i(this,e),u(this,Fe,["param","value","valueXML","valueJSON","identifier"]),this.constructor===e)throw new Error("Cannot create instance of base class")},[{key:"checkAbstractPropertiesAndMethods",value:function(){var e=this;if(!o(Fe,this).every(function(r){return Object.prototype.hasOwnProperty.call(e,r)||Object.prototype.hasOwnProperty.call(Object.getPrototypeOf(e),r)||Object.prototype.hasOwnProperty.call(e.constructor,r)}))throw new Error("All abstract properties and methods in abstract base class must be defined in child class")}},{key:"repr",value:function(){return"".concat(this.constructor.param||this.param,"=").concat(this.value)}},{key:"reprXML",value:function(){var e,r,t=(null===(e=this.constructor.param)||void 0===e?void 0:e.toLowerCase())||(null===(r=this.param)||void 0===r?void 0:r.toLowerCase());return/^(?:altid|base|calscale|cc|geo|index|label|language|level|mediatype|pid|pref|sort-as|type|tz|value|x-[A-Za-z0-9]+)$/.test(t)?"value"===t?"":"<".concat(t,">").concat(this.valueXML,"</").concat(t,">"):"<unknown>".concat(this.valueXML.replace(/<[a-z\-]+?>/g,"<text>").replace(/<\/[a-z\-]+?>/g,"</text>"),"</unknown>")}},{key:"reprJSON",value:function(){var e,r,t=(null===(e=this.constructor.param)||void 0===e?void 0:e.toLowerCase())||(null===(r=this.param)||void 0===r?void 0:r.toLowerCase());if("value"===t)return{};var a=this.valueJSON;return a.shift(),1===(a=a.map(function(e){return e.toString()})).length&&(a=a.pop()),y({},t,a)}}])}();Object.freeze(_e);var Ke=new WeakMap,He=new WeakSet,Ze=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),He),u(n,Ke,void 0),t(He,n,Ye).call(n,e),s(Ke,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return o(Ke,this).repr()}},{key:"valueXML",get:function(){return o(Ke,this).reprXML()}},{key:"valueJSON",get:function(){return o(Ke,this).reprJSON()}}])}(_e);function Ye(e){if(void 0===e)throw new O("Language Tag for LanguageParameter must be supplied");if("LanguageTagType"!==e.constructor.identifier)throw new TypeError("The value of the LANGUAGE property parameter should be of type LanguageTagType")}y(Ze,"param","LANGUAGE"),y(Ze,"identifier","LanguageParameter"),Object.freeze(Ze);var qe=new WeakMap,Qe=new WeakSet,er=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),Qe),u(n,qe,void 0),t(Qe,n,rr).call(n,e),s(qe,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return(o(qe,this).type||o(qe,this).constructor.type).toLowerCase()}},{key:"valueXML",get:function(){return""}},{key:"valueJSON",get:function(){return[]}}])}(_e);function rr(e){if(void 0===e)throw new O("Value for ValueParameter must be supplied");if(!Object.prototype.hasOwnProperty.call(e,"type")&&!Object.prototype.hasOwnProperty.call(e.constructor,"type"))throw new M("Value for ValueParameter not recognized")}y(er,"param","VALUE"),y(er,"identifier","ValueParameter"),Object.freeze(er);var tr=new WeakMap,ar=new WeakSet,nr=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),ar),u(n,tr,void 0),t(ar,n,ir).call(n,e),s(tr,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return o(tr,this).repr()}},{key:"valueXML",get:function(){return o(tr,this).reprXML()}},{key:"valueJSON",get:function(){return o(tr,this).reprJSON()}}])}(_e);function ir(e){if(void 0===e)throw new O("Value for PrefParameter must be supplied");if("IntegerType"!==e.constructor.identifier)throw new TypeError("Value for PrefParameter should be of type IntegerType");if(Number(e.repr())<1||Number(e.repr())>100)throw new M("Value for PrefParameter must be between 1 and 100")}y(nr,"param","PREF"),y(nr,"identifier","PrefParameter"),Object.freeze(nr);var or=new WeakMap,ur=new WeakSet,sr=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),ur),u(n,or,void 0),t(ur,n,cr).call(n,e),s(or,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return o(or,this).repr()}},{key:"valueXML",get:function(){return o(or,this).reprXML()}},{key:"valueJSON",get:function(){return o(or,this).reprJSON()}}])}(_e);function cr(e){if(void 0===e)throw new O("Value for AltidParameter must be supplied");if("ParameterValueType"!==e.constructor.identifier)throw new M("Value for AltidParameter must be of type ParameterValueType")}y(sr,"param","ALTID"),y(sr,"identifier","AltidParameter"),Object.freeze(sr);var pr=new WeakMap,fr=new WeakMap,lr=new WeakSet,yr=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),lr),u(n,pr,void 0),u(n,fr,/^\d+(?:\.\d+)?$/),t(lr,n,dr).call(n,e),s(pr,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return Array.isArray(o(pr,this))?o(pr,this).map(function(e){return Array.isArray(e)?e.map(function(e){return e.repr()}).join("."):e.repr()}).join(","):o(pr,this).repr()}},{key:"valueXML",get:function(){return(Array.isArray(o(pr,this))?o(pr,this).map(function(e){return Array.isArray(e)?"<integer>"+e.map(function(e){return e.repr()}).join(".")+"</integer>":e.reprXML()}).join(""):o(pr,this).reprXML()).replaceAll("integer","text")}},{key:"valueJSON",get:function(){return Array.isArray(o(pr,this))?["integer"].concat(b(o(pr,this).map(function(e){return Array.isArray(e)?Number(e.map(function(e){return e.repr()}).join(".")):e.reprJSON().pop()}))):o(pr,this).reprJSON()}}])}(_e);function dr(e){if(void 0===e)throw new O("Value for PIDParameter must be supplied");if(!Array.isArray(e)&&"IntegerType"!==e.constructor.identifier)throw new M("Invalid value for PIDParameter");if(Array.isArray(e)&&!e.every(function(e){return Array.isArray(e)?2===e.length&&e.every(function(e){return"IntegerType"===e.constructor.identifier}):"IntegerType"===e.constructor.identifier}))throw new M("Invalid value for PIDParameter")}y(yr,"param","PID"),y(yr,"identifier","PIDParameter"),Object.freeze(yr);var hr=new WeakMap,mr=new WeakMap,vr=new WeakMap,Pr=new WeakMap,wr=new WeakSet,Tr=function(e){function r(e,n){var o;return i(this,r),c(o=a(this,r),wr),u(o,hr,void 0),u(o,mr,/^(?:work|home|x-[a-z0-9-]+)$/i),u(o,vr,/^(?:text|voice|fax|cell|video|pager|textphone|main)$/i),u(o,Pr,/(?:contact|acquaintance|friend|met|co-worker|colleague|co-resident|neighbor|child|parent|sibling|spouse|kin|muse|crush|date|sweetheart|me|agent|emergency)/i),t(wr,o,br).call(o,e,n),s(hr,o,n),o.targetProp=e.toUpperCase(),o.checkAbstractPropertiesAndMethods(),Object.freeze(o),o}return h(r,e),f(r,[{key:"value",get:function(){return Array.isArray(o(hr,this))?'"'.concat(o(hr,this).map(function(e){return e.repr()}).join(",").replaceAll('"',""),'"'):o(hr,this).repr()}},{key:"valueXML",get:function(){return Array.isArray(o(hr,this))?o(hr,this).map(function(e){return e.reprXML()}).join(""):o(hr,this).reprXML()}},{key:"valueJSON",get:function(){return Array.isArray(o(hr,this))?["text"].concat(b(o(hr,this).map(function(e){return e._unsafe_raw_value}))):o(hr,this).reprJSON()}}])}(_e);function br(e,r){var t=this;if(void 0===r||void 0===e)throw new O("Value and target property for TypeParameter must be supplied");if((Array.isArray(r)||"ParameterValueType"!==r.constructor.identifier)&&(!Array.isArray(r)||!r.every(function(e){return"ParameterValueType"===e.constructor.identifier})))throw new TypeError("Value for TypeParameter must be of type ParameterValueType or an array of ParameterValueTypes");var a=new RegExp("(?:".concat(o(vr,this).source,"|").concat(o(mr,this).source,")"),"i"),n=new RegExp("(?:".concat(o(Pr,this).source,"|").concat(o(mr,this).source,")"),"i");switch(!0){case/^TelProperty$/i.test(e):if((Array.isArray(r)||!a.test(r.repr()))&&(!Array.isArray(r)||!r.every(function(e){return a.test(e.repr())})))throw new M("Invalid value for TypeParameter for TelProperty");break;case/^RelatedProperty$/i.test(e):if((Array.isArray(r)||!n.test(r.repr()))&&(!Array.isArray(r)||!r.every(function(e){return n.test(e.repr())})))throw new M("Invalid value for TypeParameter for RelatedProperty");break;default:if((Array.isArray(r)||!o(mr,this).test(r.repr()))&&(!Array.isArray(r)||!r.every(function(e){return o(mr,t).test(e.repr())})))throw new M("Invalid value for TypeParameter")}}y(Tr,"param","TYPE"),y(Tr,"identifier","TypeParameter"),Object.freeze(Tr);var gr=new WeakMap,kr=new WeakMap,Ar=new WeakMap,Sr=new WeakSet,Or=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),Sr),u(n,gr,/^(?:[A-Za-z0-9!#\$&\.\+\-\^_]){1,127}\/(?:[A-Za-z0-9!#\$&\.\+\-\^_]){1,127}$/),u(n,kr,/^[A-Za-z0-9!#\$&\.\+\-\^_]+=[A-Za-z0-9!#\$&\.\+\-\^_]+$/),u(n,Ar,void 0),t(Sr,n,Mr).call(n,e),s(Ar,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return Array.isArray(o(Ar,this))?'"'.concat(o(Ar,this).map(function(e){return e.repr()}).join(";"),'"'):o(Ar,this).repr()}},{key:"valueXML",get:function(){return Array.isArray(o(Ar,this))?"<text>"+o(Ar,this).map(function(e){return e.reprXML()}).join(";").replace(/<\/?text>/g,"")+"</text>":o(Ar,this).reprXML()}},{key:"valueJSON",get:function(){return Array.isArray(o(Ar,this))?["text",o(Ar,this).map(function(e){return e._unsafe_raw_value}).join(";")]:o(Ar,this).reprJSON()}}])}(_e);function Mr(e){if(void 0===e)throw new O("Value for MediatypeParameter must be supplied");if(!Array.isArray(e)&&"ParameterValueType"!==e.constructor.identifier||Array.isArray(e)&&!e.every(function(e){return"ParameterValueType"===e.constructor.identifier}))throw new TypeError("Value for MediatypeParameter must be of ParameterValueType or an array of ParameterValueTypes");if(!Array.isArray(e)&&!o(gr,this).test(e.repr()))throw new M("Invalid media type");if(Array.isArray(e)){if(2!==e.length)throw new M("Invalid value for MediatypeParameter. It should be an array with a length of 2");if(!o(gr,this).test(e[0].repr()))throw new M("Invalid media type");if(!o(kr,this).test(e[1].repr()))throw new M("Invalid media type")}}y(Or,"param","MEDIATYPE"),y(Or,"identifier","MediatypeParameter"),Object.freeze(Or);var Lr=new WeakMap,Nr=new WeakMap,Ir=new WeakSet,Er=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),Ir),u(n,Lr,void 0),u(n,Nr,/^(?:gregorian|[Xx]-[A-Za-z0-9-]+)$/),t(Ir,n,Xr).call(n,e),s(Lr,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return o(Lr,this).repr()}},{key:"valueXML",get:function(){return o(Lr,this).reprXML()}},{key:"valueJSON",get:function(){return o(Lr,this).reprJSON()}}])}(_e);function Xr(e){if(void 0===e)throw new O("Value for CalscaleParameter must be supplied");if("ParameterValueType"!==e.constructor.identifier)throw new O("Value for CalscaleParameter must of type ParameterValueType");if(!o(Nr,this).test(e.repr()))throw new M("Invalid calscale value")}y(Er,"param","CALSCALE"),y(Er,"identifier","CalscaleParameter"),Object.freeze(Er);var Jr=new WeakMap,Vr=new WeakSet,jr=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),Vr),u(n,Jr,void 0),t(Vr,n,Wr).call(n,e),s(Jr,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return Array.isArray(o(Jr,this))?'"'.concat(o(Jr,this).map(function(e){return e.repr()}).join(",").replaceAll('"',""),'"'):o(Jr,this).repr()}},{key:"valueXML",get:function(){return Array.isArray(o(Jr,this))?o(Jr,this).map(function(e){return e.reprXML()}).join(""):o(Jr,this).reprXML()}},{key:"valueJSON",get:function(){return Array.isArray(o(Jr,this))?["text"].concat(b(o(Jr,this).map(function(e){return e._unsafe_raw_value}))):o(Jr,this).reprJSON()}}])}(_e);function Wr(e){if(void 0===e)throw new O("Value for SortAsParameter must be supplied");if((Array.isArray(e)||"ParameterValueType"!==e.constructor.identifier)&&(!Array.isArray(e)||!e.every(function(e){return"ParameterValueType"===e.constructor.identifier})))throw new TypeError("Value for SortAsParameter must be of type ParameterValueType or an array of ParameterValueTypes")}y(jr,"param","SORT-AS"),y(jr,"identifier","SortAsParameter"),Object.freeze(jr);var xr=new WeakMap,Dr=new WeakSet,Rr=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),Dr),u(n,xr,void 0),t(Dr,n,zr).call(n,e),s(xr,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return'"'.concat(o(xr,this).repr(),'"')}},{key:"valueXML",get:function(){return o(xr,this).reprXML()}},{key:"valueJSON",get:function(){return o(xr,this).reprJSON()}}])}(_e);function zr(e){if(void 0===e)throw new O("Value for GeoParameter must be supplied");if("URIType"!==e.constructor.identifier)throw new TypeError("Value for GeoParameter must be of type URIType")}y(Rr,"param","GEO"),y(Rr,"identifier","GeoParameter"),Object.freeze(Rr);var Cr=new WeakMap,Ur=new WeakSet,Gr=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),Ur),u(n,Cr,void 0),t(Ur,n,$r).call(n,e),s(Cr,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return"URIType"===o(Cr,this).constructor.identifier?'"'.concat(o(Cr,this).repr(),'"'):o(Cr,this).repr()}},{key:"valueXML",get:function(){return o(Cr,this).reprXML()}},{key:"valueJSON",get:function(){return o(Cr,this).reprJSON()}}])}(_e);function $r(e){if(void 0===e)throw new O("Value for TzParameter must be supplied");if("ParameterValueType"!==e.constructor.identifier&&"URIType"!==e.constructor.identifier&&("DateTimeType"!==e.constructor.identifier||"UTC-OFFSET"!==e.type))throw new TypeError("Invalid type for value for TzParameter")}y(Gr,"param","TZ"),y(Gr,"identifier","TzParameter"),Object.freeze(Gr);var Br=new WeakMap,Fr=new WeakMap,_r=new WeakMap,Kr=new WeakSet,Hr=function(e){function r(e,n){var o;return i(this,r),c(o=a(this,r),Kr),u(o,Br,void 0),u(o,Fr,void 0),u(o,_r,/^x-[a-z0-9-]+$/i),t(Kr,o,Zr).call(o,e,n),s(Fr,o,e),s(Br,o,n),o.checkAbstractPropertiesAndMethods(),Object.freeze(o),o}return h(r,e),f(r,[{key:"param",get:function(){return"".concat(o(Fr,this))}},{key:"value",get:function(){return o(Br,this).repr()}},{key:"valueXML",get:function(){return o(Br,this).reprXML()}},{key:"valueJSON",get:function(){return o(Br,this).reprJSON()}}])}(_e);function Zr(e,r){if(void 0===e||void 0===r)throw new O("Parameter name and value for AnyParameter must be supplied");if(!o(_r,this).test(e))throw new M("Invalid parameter name for AnyParameter");if("ParameterValueType"!==r.constructor.identifier)throw new M("Invalid value for AnyParameter")}y(Hr,"identifier","AnyParameter"),Object.freeze(Hr);var Yr=new WeakMap,qr=new WeakSet,Qr=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),qr),u(n,Yr,void 0),t(qr,n,et).call(n,e),s(Yr,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return o(Yr,this).repr()}},{key:"valueXML",get:function(){return o(Yr,this).reprXML()}},{key:"valueJSON",get:function(){return o(Yr,this).reprJSON()}}])}(_e);function et(e){if(void 0===e)throw new O("Value for LabelParameter must be supplied");if("ParameterValueType"!==e.constructor.identifier)throw new TypeError("Value for LabelParameter should be of type ParameterValueType")}y(Qr,"param","LABEL"),y(Qr,"identifier","LabelParameter"),Object.freeze(Qr);var rt=new WeakMap,tt=new WeakSet,at=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),tt),u(n,rt,void 0),t(tt,n,nt).call(n,e),s(rt,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return o(rt,this).repr()}},{key:"valueXML",get:function(){return o(rt,this).reprXML()}},{key:"valueJSON",get:function(){return o(rt,this).reprJSON()}}])}(_e);function nt(e){if(void 0===e)throw new O("Value for CCParameter must be supplied");if("ParameterValueType"!==e.constructor.identifier||!/^[A-Za-z0-9]{2}$/.test(e.repr()))throw new M("Invalid value for CCParameter")}y(at,"param","CC"),y(at,"identifier","CCParameter"),Object.freeze(at);var it=new WeakMap,ot=new WeakSet,ut=function(e){function r(e){var n;return i(this,r),c(n=a(this,r),ot),u(n,it,void 0),t(ot,n,st).call(n,e),s(it,n,e),n.checkAbstractPropertiesAndMethods(),Object.freeze(n),n}return h(r,e),f(r,[{key:"value",get:function(){return o(it,this).repr()}},{key:"valueXML",get:function(){return o(it,this).reprXML()}},{key:"valueJSON",get:function(){return o(it,this).reprJSON()}}])}(_e);function st(e){if(void 0===e)throw new O("Value for IndexParameter must be supplied");if("IntegerType"!==e.constructor.identifier||!(Number(e.repr())>0))throw new M("Invalid value for IndexParameter. Must be a positive integer")}y(ut,"param","INDEX"),y(ut,"identifier","IndexParameter"),Object.freeze(ut);var ct=new WeakMap,pt=new WeakMap,ft=new WeakMap,lt=new WeakSet,yt=function(e){function r(e,n){var o;return i(this,r),c(o=a(this,r),lt),u(o,ct,/^(?:beginner|average|expert)$/),u(o,pt,/^(?:high|medium|low)$/),u(o,ft,void 0),t(lt,o,dt).call(o,e,n),s(ft,o,n),o.targetProp=e.toUpperCase(),o.checkAbstractPropertiesAndMethods(),Object.freeze(o),o}return h(r,e),f(r,[{key:"value",get:function(){return o(ft,this).repr()}},{key:"valueXML",get:function(){return o(ft,this).reprXML()}},{key:"valueJSON",get:function(){return o(ft,this).reprJSON()}}])}(_e);function dt(e,r){if(void 0===r||void 0===e)throw new O("Value and target property for LevelParameter must be supplied");if("ParameterValueType"!==r.constructor.identifier)throw new M("Invalid value for LevelParameter");switch(!0){case/^expertiseProperty$/i.test(e)&&o(ct,this).test(r.repr()):case/^(?:hobby|interest)Property$/i.test(e)&&o(pt,this).test(r.repr()):break;default:throw new M("Invalid value for LevelParameter")}}y(yt,"param","LEVEL"),y(yt,"identifier","LevelParameter"),Object.freeze(yt);var ht=new WeakMap,mt=function(){return f(function e(){if(i(this,e),u(this,ht,["prop","cardinality","acceptableParamTypes","acceptableValTypes","params","paramsXML","paramsJSON","value","valueXML","valueJSON","identifier"]),this.constructor===e)throw new Error("Cannot create instance of base class")},[{key:"checkAbstractPropertiesAndMethods",value:function(){var e=this;if(!o(ht,this).every(function(r){return Object.prototype.hasOwnProperty.call(e,r)||Object.prototype.hasOwnProperty.call(Object.getPrototypeOf(e),r)||Ob