@es-joy/jsoe 0.13.7 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +5 -0
- package/.nyc_output/out.json +13027 -11984
- package/CHANGES.md +10 -0
- package/README.md +5 -4
- package/demo/index.js +68 -2
- package/dist/formats/structuredCloning.d.ts.map +1 -1
- package/dist/fundamentalTypes/BooleanObjectType.d.ts.map +1 -1
- package/dist/fundamentalTypes/NumberObjectType.d.ts.map +1 -1
- package/dist/fundamentalTypes/StringObjectType.d.ts.map +1 -1
- package/dist/fundamentalTypes/arrayType.d.ts.map +1 -1
- package/dist/fundamentalTypes/blobType.d.ts.map +1 -1
- package/dist/fundamentalTypes/dateType.d.ts.map +1 -1
- package/dist/fundamentalTypes/fileType.d.ts.map +1 -1
- package/dist/fundamentalTypes/filelistType.d.ts.map +1 -1
- package/dist/fundamentalTypes/mapType.d.ts.map +1 -1
- package/dist/fundamentalTypes/noneditableType.d.ts +6 -0
- package/dist/fundamentalTypes/noneditableType.d.ts.map +1 -0
- package/dist/fundamentalTypes/objectReferenceType.d.ts.map +1 -1
- package/dist/fundamentalTypes/objectType.d.ts.map +1 -1
- package/dist/fundamentalTypes/setType.d.ts.map +1 -1
- package/dist/fundamentalTypes/sparseUndefinedType.d.ts.map +1 -1
- package/dist/fundamentalTypes/undefinedType.d.ts.map +1 -1
- package/dist/index.js +436 -109
- package/dist/superTypes/SpecialNumberType.d.ts +2 -10
- package/dist/superTypes/SpecialNumberType.d.ts.map +1 -1
- package/dist/superTypes/SpecialRealNumberType.d.ts +2 -2
- package/dist/superTypes/SpecialRealNumberType.d.ts.map +1 -1
- package/dist/superTypes/dommatrixType.d.ts +6 -0
- package/dist/superTypes/dommatrixType.d.ts.map +1 -0
- package/dist/superTypes/dompointType.d.ts +6 -0
- package/dist/superTypes/dompointType.d.ts.map +1 -0
- package/dist/superTypes/domrectType.d.ts +6 -0
- package/dist/superTypes/domrectType.d.ts.map +1 -0
- package/dist/superTypes/errorsSpecialType.d.ts +2 -2
- package/dist/superTypes/errorsSpecialType.d.ts.map +1 -1
- package/dist/types.d.ts +27 -14
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/media.d.ts.map +1 -1
- package/dist/vendor-imports.d.ts +1 -1
- package/package.json +13 -13
- package/src/formats/structuredCloning.js +49 -6
- package/src/fundamentalTypes/BooleanObjectType.js +3 -1
- package/src/fundamentalTypes/NumberObjectType.js +3 -1
- package/src/fundamentalTypes/StringObjectType.js +3 -1
- package/src/fundamentalTypes/arrayType.js +4 -2
- package/src/fundamentalTypes/blobType.js +17 -13
- package/src/fundamentalTypes/dateType.js +6 -2
- package/src/fundamentalTypes/fileType.js +14 -12
- package/src/fundamentalTypes/filelistType.js +3 -1
- package/src/fundamentalTypes/mapType.js +3 -1
- package/src/fundamentalTypes/noneditableType.js +87 -0
- package/src/fundamentalTypes/objectReferenceType.js +3 -1
- package/src/fundamentalTypes/objectType.js +3 -1
- package/src/fundamentalTypes/setType.js +3 -1
- package/src/fundamentalTypes/sparseUndefinedType.js +3 -1
- package/src/fundamentalTypes/undefinedType.js +3 -1
- package/src/subTypes/blobHTMLType.js +1 -1
- package/src/superTypes/SpecialNumberType.js +2 -8
- package/src/superTypes/SpecialRealNumberType.js +2 -2
- package/src/{fundamentalTypes → superTypes}/dommatrixType.js +63 -10
- package/src/{fundamentalTypes → superTypes}/dompointType.js +60 -7
- package/src/{fundamentalTypes → superTypes}/domrectType.js +59 -7
- package/src/superTypes/errorsSpecialType.js +1 -1
- package/src/types.js +40 -17
- package/src/utils/media.js +3 -2
- package/src/vendor-imports.js +2 -1
- package/vendor/typeson-registry/dist/index.js +90 -28
package/dist/index.js
CHANGED
|
@@ -122,7 +122,7 @@ const NULLABLES = ['autocomplete', 'dir',
|
|
|
122
122
|
* @param {string} sel
|
|
123
123
|
* @returns {HTMLElement|null}
|
|
124
124
|
*/
|
|
125
|
-
const $$
|
|
125
|
+
const $$2 = sel => {
|
|
126
126
|
if (!doc) {
|
|
127
127
|
throw new Error('No document object');
|
|
128
128
|
}
|
|
@@ -850,7 +850,7 @@ const jml = function jml(...args) {
|
|
|
850
850
|
*/
|
|
851
851
|
template, doc.body);
|
|
852
852
|
} else if (typeof template === 'string') {
|
|
853
|
-
template = /** @type {HTMLTemplateElement} */$$
|
|
853
|
+
template = /** @type {HTMLTemplateElement} */$$2(template);
|
|
854
854
|
}
|
|
855
855
|
jml( /** @type {HTMLTemplateElement} */
|
|
856
856
|
/** @type {HTMLTemplateElement} */template.content.cloneNode(true), shadowRoot);
|
|
@@ -2129,7 +2129,7 @@ class JamilihMap extends Map {
|
|
|
2129
2129
|
* @returns {ArbitraryValue}
|
|
2130
2130
|
*/
|
|
2131
2131
|
get(element) {
|
|
2132
|
-
const elem = typeof element === 'string' ? $$
|
|
2132
|
+
const elem = typeof element === 'string' ? $$2(element) : element;
|
|
2133
2133
|
return super.get.call(this, elem);
|
|
2134
2134
|
}
|
|
2135
2135
|
/**
|
|
@@ -2138,7 +2138,7 @@ class JamilihMap extends Map {
|
|
|
2138
2138
|
* @returns {ArbitraryValue}
|
|
2139
2139
|
*/
|
|
2140
2140
|
set(element, value) {
|
|
2141
|
-
const elem = typeof element === 'string' ? $$
|
|
2141
|
+
const elem = typeof element === 'string' ? $$2(element) : element;
|
|
2142
2142
|
return super.set.call(this, elem, value);
|
|
2143
2143
|
}
|
|
2144
2144
|
/**
|
|
@@ -2148,7 +2148,7 @@ class JamilihMap extends Map {
|
|
|
2148
2148
|
* @returns {ArbitraryValue}
|
|
2149
2149
|
*/
|
|
2150
2150
|
invoke(element, methodName, ...args) {
|
|
2151
|
-
const elem = typeof element === 'string' ? $$
|
|
2151
|
+
const elem = typeof element === 'string' ? $$2(element) : element;
|
|
2152
2152
|
return this.get(elem)[methodName](elem, ...args);
|
|
2153
2153
|
}
|
|
2154
2154
|
}
|
|
@@ -2163,7 +2163,7 @@ class JamilihWeakMap extends WeakMap {
|
|
|
2163
2163
|
* @returns {ArbitraryValue}
|
|
2164
2164
|
*/
|
|
2165
2165
|
get(element) {
|
|
2166
|
-
const elem = typeof element === 'string' ? $$
|
|
2166
|
+
const elem = typeof element === 'string' ? $$2(element) : element;
|
|
2167
2167
|
if (!elem) {
|
|
2168
2168
|
throw new Error("Can't find the element");
|
|
2169
2169
|
}
|
|
@@ -2175,7 +2175,7 @@ class JamilihWeakMap extends WeakMap {
|
|
|
2175
2175
|
* @returns {ArbitraryValue}
|
|
2176
2176
|
*/
|
|
2177
2177
|
set(element, value) {
|
|
2178
|
-
const elem = typeof element === 'string' ? $$
|
|
2178
|
+
const elem = typeof element === 'string' ? $$2(element) : element;
|
|
2179
2179
|
if (!elem) {
|
|
2180
2180
|
throw new Error("Can't find the element");
|
|
2181
2181
|
}
|
|
@@ -2188,7 +2188,7 @@ class JamilihWeakMap extends WeakMap {
|
|
|
2188
2188
|
* @returns {ArbitraryValue}
|
|
2189
2189
|
*/
|
|
2190
2190
|
invoke(element, methodName, ...args) {
|
|
2191
|
-
const elem = typeof element === 'string' ? $$
|
|
2191
|
+
const elem = typeof element === 'string' ? $$2(element) : element;
|
|
2192
2192
|
if (!elem) {
|
|
2193
2193
|
throw new Error("Can't find the element");
|
|
2194
2194
|
}
|
|
@@ -2234,7 +2234,7 @@ jml.strong = function (obj, ...args) {
|
|
|
2234
2234
|
* @returns {ArbitraryValue} The value associated with the symbol
|
|
2235
2235
|
*/
|
|
2236
2236
|
jml.symbol = jml.sym = jml.for = function (element, sym) {
|
|
2237
|
-
const elem = typeof element === 'string' ? $$
|
|
2237
|
+
const elem = typeof element === 'string' ? $$2(element) : element;
|
|
2238
2238
|
|
|
2239
2239
|
// @ts-expect-error Should be ok
|
|
2240
2240
|
return elem[typeof sym === 'symbol' ? sym : Symbol.for(sym)];
|
|
@@ -2253,7 +2253,7 @@ jml.symbol = jml.sym = jml.for = function (element, sym) {
|
|
|
2253
2253
|
* @returns {ArbitraryValue}
|
|
2254
2254
|
*/
|
|
2255
2255
|
jml.command = function (elem, symOrMap, methodName, ...args) {
|
|
2256
|
-
elem = typeof elem === 'string' ? $$
|
|
2256
|
+
elem = typeof elem === 'string' ? $$2(elem) : elem;
|
|
2257
2257
|
if (!elem) {
|
|
2258
2258
|
throw new Error('No element found');
|
|
2259
2259
|
}
|
|
@@ -2315,7 +2315,7 @@ if (doc && doc.body) {
|
|
|
2315
2315
|
}
|
|
2316
2316
|
const nbsp$1 = '\u00A0'; // Very commonly needed in templates
|
|
2317
2317
|
|
|
2318
|
-
function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n);}return r}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach((function(t){_defineProperty(e,t,r[t]);})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t));}));}return e}function _typeof(e){return _typeof="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},_typeof(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,_toPropertyKey(n.key),n);}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty(e,t,r){return (t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _slicedToArray(e,t){return function _arrayWithHoles(e){if(Array.isArray(e))return e}(e)||function _iterableToArrayLimit(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,a,i,c=[],s=!0,u=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1;}else for(;!(s=(n=a.call(r)).done)&&(c.push(n.value),c.length!==t);s=!0);}catch(e){u=!0,o=e;}finally{try{if(!s&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(u)throw o}}return c}}(e,t)||_unsupportedIterableToArray(e,t)||function _nonIterableRest(){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 _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return "Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _toPropertyKey(e){var t=function _toPrimitive(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return ("string"===t?String:Number)(e)}(e,"string");return "symbol"==typeof t?t:String(t)}var e=_createClass((function TypesonPromise(e){_classCallCheck(this,TypesonPromise),this.p=new Promise(e);}));e.__typeson__type__="TypesonPromise","undefined"!=typeof Symbol&&Object.defineProperty(e.prototype,Symbol.toStringTag,{get:function get(){return "TypesonPromise"}}),e.prototype.then=function(t,r){var n=this;return new e((function(e,o){n.p.then((function(r){e(t?t(r):r);})).catch((function(e){return r?r(e):Promise.reject(e)})).then(e,o);}))},e.prototype.catch=function(e){return this.then((function(){}),e)},e.resolve=function(t){return new e((function(e){e(t);}))},e.reject=function(t){return new e((function(e,r){r(t);}))},e.all=function(t){return new e((function(e,r){Promise.all(t.map((function(e){return null!=e&&e.constructor&&"__typeson__type__"in e.constructor&&"TypesonPromise"===e.constructor.__typeson__type__?e.p:e}))).then(e,r);}))},e.race=function(t){return new e((function(e,r){Promise.race(t.map((function(e){return null!=e&&e.constructor&&"__typeson__type__"in e.constructor&&"TypesonPromise"===e.constructor.__typeson__type__?e.p:e}))).then(e,r);}))},e.allSettled=function(t){return new e((function(e,r){Promise.allSettled(t.map((function(e){return null!=e&&e.constructor&&"__typeson__type__"in e.constructor&&"TypesonPromise"===e.constructor.__typeson__type__?e.p:e}))).then(e,r);}))};var t=Object.hasOwn,r=Object.getPrototypeOf;function isThenable(e,t){return isObject(e)&&"function"==typeof e.then&&(!t||"function"==typeof e.catch)}function toStringTag(e){return Object.prototype.toString.call(e).slice(8,-1)}function hasConstructorOf(e,n){if(!e||"object"!==_typeof(e))return !1;var o=r(e);if(!o)return null===n;var a=t(o,"constructor")&&o.constructor;return "function"!=typeof a?null===n:n===a||null!==n&&Function.prototype.toString.call(a)===Function.prototype.toString.call(n)||"function"==typeof n&&"string"==typeof a.__typeson__type__&&a.__typeson__type__===n.__typeson__type__}function isPlainObject(e){return !(!e||"Object"!==toStringTag(e))&&(!r(e)||hasConstructorOf(e,Object))}function isUserObject(e){if(!e||"Object"!==toStringTag(e))return !1;var t=r(e);return !t||hasConstructorOf(e,Object)||isUserObject(t)}function isObject(e){return null!==e&&"object"===_typeof(e)}function escapeKeyPathComponent(e){return e.replaceAll("''","''''").replace(/^$/,"''").replaceAll("~","~0").replaceAll(".","~1")}function unescapeKeyPathComponent(e){return e.replaceAll("~1",".").replaceAll("~0","~").replace(/^''$/,"").replaceAll("''''","''")}function getByKeyPath(e,t){if(""===t)return e;if(null===e||"object"!==_typeof(e))throw new TypeError("Unexpected non-object type");var r=t.indexOf(".");if(r>-1){var n=e[unescapeKeyPathComponent(t.slice(0,r))];return void 0===n?void 0:getByKeyPath(n,t.slice(r+1))}return e[unescapeKeyPathComponent(t)]}function setAtKeyPath(e,t,r){if(""===t)return r;if(!e||"object"!==_typeof(e))throw new TypeError("Unexpected non-object type");var n=t.indexOf(".");return n>-1?setAtKeyPath(e[unescapeKeyPathComponent(t.slice(0,n))],t.slice(n+1),r):(e[unescapeKeyPathComponent(t)]=r,e)}function getJSONType(e){return null===e?"null":Array.isArray(e)?"array":_typeof(e)}function _await(e,t,r){return r?t?t(e):e:(e&&e.then||(e=Promise.resolve(e)),t?e.then(t):e)}var n=Object.keys,o=Object.hasOwn,a=Array.isArray,i=["type","replaced","iterateIn","iterateUnsetNumeric","addLength"];function _async(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];try{return Promise.resolve(e.apply(this,t))}catch(e){return Promise.reject(e)}}}function nestedPathsFirst(e,t){var r,n;if(""===e.keypath)return -1;var o=null!==(r=e.keypath.match(/\./g))&&void 0!==r?r:0,a=null!==(n=t.keypath.match(/\./g))&&void 0!==n?n:0;return o&&(o=o.length),a&&(a=a.length),o>a?-1:o<a?1:e.keypath<t.keypath?-1:e.keypath>t.keypath?1:0}var c=function(){function Typeson(e){_classCallCheck(this,Typeson),this.options=e,this.plainObjectReplacers=[],this.nonplainObjectReplacers=[],this.revivers={},this.types={};}return _createClass(Typeson,[{key:"stringify",value:function stringify(e,t,r,n){n=_objectSpread2(_objectSpread2(_objectSpread2({},this.options),n),{},{stringification:!0});var o=this.encapsulate(e,null,n);return a(o)?JSON.stringify(o[0],t,r):o.then((function(e){return JSON.stringify(e,t,r)}))}},{key:"stringifySync",value:function stringifySync(e,t,r,n){return this.stringify(e,t,r,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},n),{},{sync:!0}))}},{key:"stringifyAsync",value:function stringifyAsync(e,t,r,n){return this.stringify(e,t,r,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},n),{},{sync:!1}))}},{key:"parse",value:function parse(e,t,r){return r=_objectSpread2(_objectSpread2(_objectSpread2({},this.options),r),{},{parse:!0}),this.revive(JSON.parse(e,t),r)}},{key:"parseSync",value:function parseSync(e,t,r){return this.parse(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!0}))}},{key:"parseAsync",value:function parseAsync(e,t,r){return this.parse(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!1}))}},{key:"specialTypeNames",value:function specialTypeNames(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.returnTypeNames=!0,this.encapsulate(e,t,r)}},{key:"rootTypeName",value:function rootTypeName(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.iterateNone=!0,this.encapsulate(e,t,r)}},{key:"encapsulate",value:function encapsulate(t,r,c){var s=this,u=_objectSpread2(_objectSpread2({sync:!0},this.options),c),l=u.sync,f={},y=[],p=[],d=[],v=!("cyclic"in u)||u.cyclic,b=u.encapsulateObserver,m=function finish(e){var t=Object.values(f);if(u.iterateNone)return t.length?t[0]:getJSONType(e);if(t.length){if(u.returnTypeNames)return function _toConsumableArray(e){return function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}(e)||function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||_unsupportedIterableToArray(e)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(new Set(t));e&&isPlainObject(e)&&!o(e,"$types")?e.$types=f:e={$:e,$types:{$:f}};}else isObject(e)&&o(e,"$types")&&(e={$:e,$types:!0});return !u.returnTypeNames&&e},h=_async((function(t,r){return _await(Promise.all(r.map((function(e){return e[1].p}))),(function(n){return _await(Promise.all(n.map(_async((function(n){var o=!1,a=[],i=_slicedToArray(r.splice(0,1),1),c=_slicedToArray(i[0],7),s=c[0],u=c[2],l=c[3],f=c[4],y=c[5],p=c[6],d=O(s,n,u,l,a,!0,p),v=hasConstructorOf(d,e);return function _invoke(e,t){var r=e();return r&&r.then?r.then(t):t(r)}((function(){if(s&&v)return _await(d.p,(function(e){f[y]=e;var r=h(t,a);return o=!0,r}))}),(function(e){return o?e:(s?f[y]=d:t=v?d.p:d,h(t,a))}))})))),(function(){return t}))}))})),g=function _adaptBuiltinStateObjectProperties(e,t,r){Object.assign(e,t);var n=i.map((function(t){var r=e[t];return delete e[t],r}));r(),i.forEach((function(t,r){e[t]=n[r];}));},O=function _encapsulate(t,r,i,c,l,d,v){var m,h={},O=_typeof(r),w=b?function(n){var o,a=null!==(o=null!=v?v:c.type)&&void 0!==o?o:getJSONType(r);b(Object.assign(null!=n?n:h,{keypath:t,value:r,cyclic:i,stateObj:c,promisesData:l,resolvingTypesonPromise:d,awaitingTypesonPromise:hasConstructorOf(r,e)},{type:a}));}:null;if(["string","boolean","number","undefined"].includes(O))return void 0===r||Number.isNaN(r)||r===Number.NEGATIVE_INFINITY||r===Number.POSITIVE_INFINITY||0===r?(m=c.replaced?r:_(t,r,c,l,!1,d,w))!==r&&(h={replaced:m}):m=r,w&&w(),m;if(null===r)return w&&w(),r;if(i&&!c.iterateIn&&!c.iterateUnsetNumeric&&r&&"object"===_typeof(r)){var A=y.indexOf(r);if(!(A<0))return f[t]="#",w&&w({cyclicKeypath:p[A]}),"#"+p[A];!0===i&&(y.push(r),p.push(t));}var S,j,T=isPlainObject(r),N=a(r),I=(T||N)&&(!s.plainObjectReplacers.length||c.replaced)||c.iterateIn?r:_(t,r,c,l,T||N,null,w);if(I!==r?(m=I,h={replaced:I}):""===t&&hasConstructorOf(r,e)?(l.push([t,r,i,c,void 0,void 0,c.type]),m=r):N&&"object"!==c.iterateIn||"array"===c.iterateIn?(S=new Array(r.length),h={clone:S}):(["function","symbol"].includes(_typeof(r))||"toJSON"in r||hasConstructorOf(r,e)||hasConstructorOf(r,Promise)||hasConstructorOf(r,ArrayBuffer))&&!T&&"object"!==c.iterateIn?m=r:(S={},c.addLength&&(S.length=r.length),h={clone:S}),w&&w(),u.iterateNone)return null!==(j=S)&&void 0!==j?j:m;if(!S)return m;if(c.iterateIn){var P=function _loop(n){var a={ownKeys:o(r,n)};g(c,a,(function(){var o=t+(t?".":"")+escapeKeyPathComponent(n),a=_encapsulate(o,r[n],Boolean(i),c,l,d);hasConstructorOf(a,e)?l.push([o,a,Boolean(i),c,S,n,c.type]):void 0!==a&&(S[n]=a);}));};for(var E in r)P(E);w&&w({endIterateIn:!0,end:!0});}else n(r).forEach((function(n){var o=t+(t?".":"")+escapeKeyPathComponent(n);g(c,{ownKeys:!0},(function(){var t=_encapsulate(o,r[n],Boolean(i),c,l,d);hasConstructorOf(t,e)?l.push([o,t,Boolean(i),c,S,n,c.type]):void 0!==t&&(S[n]=t);}));})),w&&w({endIterateOwn:!0,end:!0});if(c.iterateUnsetNumeric){for(var x=r.length,C=function _loop2(n){if(!(n in r)){var o="".concat(t).concat(t?".":"").concat(n);g(c,{ownKeys:!1},(function(){var t=_encapsulate(o,void 0,Boolean(i),c,l,d);hasConstructorOf(t,e)?l.push([o,t,Boolean(i),c,S,n,c.type]):void 0!==t&&(S[n]=t);}));}},k=0;k<x;k++)C(k);w&&w({endIterateUnsetNumeric:!0,end:!0});}return S},_=function replace(e,t,r,n,o,a,i){for(var c=o?s.plainObjectReplacers:s.nonplainObjectReplacers,u=c.length;u--;){var y=c[u];if(y.test(t,r)){var p=y.type;if(s.revivers[p]){var d=f[e];f[e]=d?[p].concat(d):p;}if(Object.assign(r,{type:p,replaced:!0}),(l||!y.replaceAsync)&&!y.replace)return i&&i({typeDetected:!0}),O(e,t,v&&"readonly",r,n,a,p);i&&i({replacing:!0});var b=void 0;if(l||!y.replaceAsync){if(void 0===y.replace)throw new TypeError("Missing replacer");b=y.replace(t,r);}else b=y.replaceAsync(t,r);return O(e,b,v&&"readonly",r,n,a,p)}}return t},w=O("",t,v,null!=r?r:{},d);if(d.length)return l&&u.throwOnBadSyncType?function(){throw new TypeError("Sync method requested but async result obtained")}():Promise.resolve(h(w,d)).then(m);if(!l&&u.throwOnBadSyncType)throw new TypeError("Async method requested but sync result obtained");return u.stringification&&l?[m(w)]:l?m(w):Promise.resolve(m(w))}},{key:"encapsulateSync",value:function encapsulateSync(e,t,r){return this.encapsulate(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!0}))}},{key:"encapsulateAsync",value:function encapsulateAsync(e,t,r){return this.encapsulate(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!1}))}},{key:"revive",value:function revive(t,r){var o=this,i=_objectSpread2(_objectSpread2({sync:!0},this.options),r),c=i.sync;function finishRevival(e){if(c)return e;if(i.throwOnBadSyncType)throw new TypeError("Async method requested but sync result obtained");return Promise.resolve(e)}if(!t||"object"!==_typeof(t)||Array.isArray(t))return finishRevival(t);var u=t.$types;if(!0===u)return finishRevival(t.$);if(!u||"object"!==_typeof(u)||Array.isArray(u))return finishRevival(t);var l=[],f={},y=!0;u.$&&isPlainObject(u.$)&&(t=t.$,u=u.$,y=!1);var p=function executeReviver(e,t){var r,n=_slicedToArray(null!==(r=o.revivers[e])&&void 0!==r?r:[],1)[0];if(!n)throw new Error("Unregistered type: "+e);if(c&&!("revive"in n))return t;if(!c&&n.reviveAsync)return n.reviveAsync(t,f);if(n.revive)return n.revive(t,f);throw new Error("Missing reviver")},d=[];function checkUndefined(e){return hasConstructorOf(e,s)?void 0:e}var v,b=function revivePlainObjects(){var r=[];if(!u)throw new Error("Found bad `types`");if(Object.entries(u).forEach((function(e){var t=_slicedToArray(e,2),n=t[0],a=t[1];"#"!==a&&[].concat(a).forEach((function(e){var t;_slicedToArray(null!==(t=o.revivers[e])&&void 0!==t?t:[null,{}],2)[1].plain&&(r.push({keypath:n,type:e}),delete u[n]);}));})),r.length)return r.sort(nestedPathsFirst).reduce((function reducer(r,n){var o=n.keypath,a=n.type;if(isThenable(r))return r.then((function(e){return reducer(e,{keypath:o,type:a})}));var i=getByKeyPath(t,o);if(hasConstructorOf(i=p(a,i),e))return i.then((function(e){var r=setAtKeyPath(t,o,e);r===e&&(t=r);}));var c=setAtKeyPath(t,o,i);c===i&&(t=c);}),void 0)}();return hasConstructorOf(b,e)?v=b.then((function(){return t})):(v=function _revive(t,r,o,i,c){if(!y||"$types"!==t){var f=u[t],v=a(r);if(v||isPlainObject(r)){var b=v?new Array(r.length):{};for(n(r).forEach((function(n){var a=_revive(t+(t?".":"")+escapeKeyPathComponent(n),r[n],null!=o?o:b,b,n),i=function set(e){return hasConstructorOf(e,s)?b[n]=void 0:void 0!==e&&(b[n]=e),e};hasConstructorOf(a,e)?d.push(a.then((function(e){return i(e)}))):i(a);})),r=b;l.length;){var m=_slicedToArray(l[0],4),h=m[0],g=m[1],O=m[2],_=m[3],w=getByKeyPath(h,g);if(void 0===w)break;O[_]=w,l.splice(0,1);}}if(!f)return r;if("#"===f){var A=getByKeyPath(o,r.slice(1));return void 0===A&&l.push([o,r.slice(1),i,c]),A}return [].concat(f).reduce((function reducer(t,r){if(hasConstructorOf(t,e))return t.then((function(e){return reducer(e,r)}));if("string"!=typeof r)throw new TypeError("Bad type JSON");return p(r,t)}),r)}}("",t,null),d.length&&(v=e.resolve(v).then((function(t){return e.all([t].concat(d))})).then((function(e){return _slicedToArray(e,1)[0]})))),isThenable(v)?c&&i.throwOnBadSyncType?function(){throw new TypeError("Sync method requested but async result obtained")}():hasConstructorOf(v,e)?v.p.then(checkUndefined):v:!c&&i.throwOnBadSyncType?function(){throw new TypeError("Async method requested but sync result obtained")}():c?checkUndefined(v):Promise.resolve(checkUndefined(v))}},{key:"reviveSync",value:function reviveSync(e,t){return this.revive(e,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},t),{},{sync:!0}))}},{key:"reviveAsync",value:function reviveAsync(e,t){return this.revive(e,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},t),{},{sync:!1}))}},{key:"register",value:function register(e,t){var r=this,o=null!=t?t:{},i=function R(e){a(e)?e.forEach((function(e){return R(e)})):n(e).forEach((function(t){var n;if("#"===t)throw new TypeError("# cannot be used as a type name as it is reserved for cyclic objects");if(u.includes(t))throw new TypeError("Plain JSON object types are reserved as type names");var i=e[t],c=i&&"function"!=typeof i&&!Array.isArray(i)&&i.testPlainObjects?r.plainObjectReplacers:r.nonplainObjectReplacers,s=c.filter((function(e){return e.type===t}));if(s.length&&(c.splice(c.indexOf(s[0]),1),delete r.revivers[t],delete r.types[t]),"function"==typeof i){var l=i;i={test:function test(e){return e&&e.constructor===l},replace:function replace(e){return _objectSpread2({},e)},revive:function revive(e){return Object.assign(Object.create(l.prototype),e)}};}else if(a(i)){var f=_slicedToArray(i,3);i={test:f[0],replace:f[1],revive:f[2]};}if(null!==(n=i)&&void 0!==n&&n.test){var y={type:t,test:i.test.bind(i)};i.replace&&(y.replace=i.replace.bind(i)),i.replaceAsync&&(y.replaceAsync=i.replaceAsync.bind(i));var p="number"==typeof o.fallback?o.fallback:o.fallback?0:Number.POSITIVE_INFINITY;if(i.testPlainObjects?r.plainObjectReplacers.splice(p,0,y):r.nonplainObjectReplacers.splice(p,0,y),i.revive||i.reviveAsync){var d={};i.revive&&(d.revive=i.revive.bind(i)),i.reviveAsync&&(d.reviveAsync=i.reviveAsync.bind(i)),r.revivers[t]=[d,{plain:i.testPlainObjects}];}r.types[t]=i;}}));};return [].concat(e).forEach((function(e){return i(e)})),this}}]),Typeson}(),s=_createClass((function Undefined(){_classCallCheck(this,Undefined);}));s.__typeson__type__="TypesonUndefined";for(var u=["null","boolean","number","string","array","object"],l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=new Uint8Array(256),y=0;y<64;y++)f[l.codePointAt(y)]=y;var p=function encode(e,t,r){null==r&&(r=e.byteLength);for(var n=new Uint8Array(e,t||0,r),o=n.length,a="",i=0;i<o;i+=3)a+=l[n[i]>>2],a+=l[(3&n[i])<<4|n[i+1]>>4],a+=l[(15&n[i+1])<<2|n[i+2]>>6],a+=l[63&n[i+2]];return o%3==2?a=a.slice(0,-1)+"=":o%3==1&&(a=a.slice(0,-2)+"=="),a},d=function decode(e){var t=e.length;if(t%4)throw new Error("Bad base64 length: not divisible by four");var r,n,o,a,i=.75*e.length,c=0;"="===e[e.length-1]&&(i--,"="===e[e.length-2]&&i--);for(var s=new ArrayBuffer(i),u=new Uint8Array(s),l=0;l<t;l+=4)r=f[e.codePointAt(l)],n=f[e.codePointAt(l+1)],o=f[e.codePointAt(l+2)],a=f[e.codePointAt(l+3)],u[c++]=r<<2|n>>4,u[c++]=(15&n)<<4|o>>2,u[c++]=(3&o)<<6|63&a;return s};const v={arraybuffer:{test:e=>"ArrayBuffer"===toStringTag(e),replace(e,t){t.buffers||(t.buffers=[]);const r=t.buffers.indexOf(e);return r>-1?{index:r}:(t.buffers.push(e),p(e))},revive(e,t){if(t.buffers||(t.buffers=[]),"object"==typeof e)return t.buffers[e.index];const r=d(e);return t.buffers.push(r),r}}},b={bigintObject:{test:e=>"object"==typeof e&&hasConstructorOf(e,BigInt),replace:String,revive:e=>new Object(BigInt(e))}},m={bigint:{test:e=>"bigint"==typeof e,replace:String,revive:e=>BigInt(e)}};function string2arraybuffer(e){const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t.buffer}const h={blob:{test:e=>"Blob"===toStringTag(e),replace(e){const t=new XMLHttpRequest;if(t.overrideMimeType("text/plain; charset=x-user-defined"),t.open("GET",URL.createObjectURL(e),!1),t.send(),200!==t.status&&0!==t.status)throw new Error("Bad Blob access: "+t.status);return {type:e.type,stringContents:t.responseText}},revive(e){const{type:t,stringContents:r}=e;return new Blob([string2arraybuffer(r)],{type:t})},replaceAsync:t=>new e(((e,r)=>{const n=new FileReader;n.addEventListener("load",(()=>{e({type:t.type,stringContents:n.result});})),n.addEventListener("error",(()=>{r(n.error);})),n.readAsBinaryString(t);}))}};const _={cryptokey:{test:e=>"CryptoKey"===toStringTag(e)&&e.extractable,replaceAsync:t=>new e((async(e,r)=>{let n;try{n=await crypto.subtle.exportKey("jwk",t);}catch(e){return void r(e)}e({jwk:n,algorithm:t.algorithm,usages:t.usages});})),revive(e){const{jwk:t,algorithm:r,usages:n}=e;return crypto.subtle.importKey("jwk",t,r,!0,n)}}},w={dataview:{test:e=>"DataView"===toStringTag(e),replace({buffer:e,byteOffset:t,byteLength:r},n){n.buffers||(n.buffers=[]);const o=n.buffers.indexOf(e);return o>-1?{index:o,byteOffset:t,byteLength:r}:(n.buffers.push(e),{encoded:p(e),byteOffset:t,byteLength:r})},revive(e,t){t.buffers||(t.buffers=[]);const{byteOffset:r,byteLength:n,encoded:o,index:a}=e;let i;return "index"in e?i=t.buffers[a]:(i=d(o),t.buffers.push(i)),new DataView(i,r,n)}}},A={date:{test:e=>"Date"===toStringTag(e),replace(e){const t=e.getTime();return Number.isNaN(t)?"NaN":t},revive:e=>"NaN"===e?new Date(Number.NaN):new Date(e)}},S={domexception:{test:e=>"DOMException"===toStringTag(e),replace:e=>({name:e.name,message:e.message}),revive:({message:e,name:t})=>new DOMException(e,t)}},j={dommatrix:{test:e=>"DOMMatrix"===toStringTag(e),replace:e=>e.is2D?{a:e.a,b:e.b,c:e.c,d:e.d,e:e.e,f:e.f}:{m11:e.m11,m12:e.m12,m13:e.m13,m14:e.m14,m21:e.m21,m22:e.m22,m23:e.m23,m24:e.m24,m31:e.m31,m32:e.m32,m33:e.m33,m34:e.m34,m41:e.m41,m42:e.m42,m43:e.m43,m44:e.m44},revive:e=>Object.hasOwn(e,"a")?new DOMMatrix([e.a,e.b,e.c,e.d,e.e,e.f]):new DOMMatrix([e.m11,e.m12,e.m13,e.m14,e.m21,e.m22,e.m23,e.m24,e.m31,e.m32,e.m33,e.m34,e.m41,e.m42,e.m43,e.m44])}},T={dompoint:{test:e=>"DOMPoint"===toStringTag(e),replace:e=>({x:e.x,y:e.y,z:e.z,w:e.w}),revive:({x:e,y:t,z:r,w:n})=>new DOMPoint(e,t,r,n)}},N={domrect:{test:e=>"DOMRect"===toStringTag(e),replace:e=>({x:e.x,y:e.y,width:e.width,height:e.height}),revive:({x:e,y:t,width:r,height:n})=>new DOMRect(e,t,r,n)}},I={error:{test:e=>"Error"===toStringTag(e),replace:({name:e,message:t,cause:r,stack:n,fileName:o,lineNumber:a,columnNumber:i})=>({name:e,message:t,cause:r,stack:n,fileName:o,lineNumber:a,columnNumber:i}),revive(e){const t=new Error(e.message);return t.name=e.name,t.cause=e.cause,t.stack=e.stack,t.fileName=e.fileName,t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}}},P={};function create$2(e){P[e.name.toLowerCase()]={test:t=>hasConstructorOf(t,e),replace:({name:e,message:t,cause:r,stack:n,fileName:o,lineNumber:a,columnNumber:i,errors:c})=>({name:e,message:t,cause:r,stack:n,fileName:o,lineNumber:a,columnNumber:i,errors:c}),revive(t){const r="undefined"!=typeof AggregateError&&e===AggregateError,n=r?new e(t.errors,t.message):new e(t.message);return n.name=t.name,n.cause=t.cause,n.stack=t.stack,n.fileName=t.fileName,n.lineNumber=t.lineNumber,n.columnNumber=t.columnNumber,r&&(n.errors=t.errors),n}};}[TypeError,RangeError,SyntaxError,ReferenceError,EvalError,URIError].forEach((e=>create$2(e))),"undefined"!=typeof AggregateError&&create$2(AggregateError),"function"==typeof InternalError&&create$2(InternalError);const E={file:{test:e=>"File"===toStringTag(e),replace(e){const t=new XMLHttpRequest;if(t.overrideMimeType("text/plain; charset=x-user-defined"),t.open("GET",URL.createObjectURL(e),!1),t.send(),200!==t.status&&0!==t.status)throw new Error("Bad File access: "+t.status);return {type:e.type,stringContents:t.responseText,name:e.name,lastModified:e.lastModified}},revive:({name:e,type:t,stringContents:r,lastModified:n})=>new File([string2arraybuffer(r)],e,{type:t,lastModified:n}),replaceAsync:t=>new e((function(e,r){const n=new FileReader;n.addEventListener("load",(function(){e({type:t.type,stringContents:n.result,name:t.name,lastModified:t.lastModified});})),n.addEventListener("error",(function(){r(n.error);})),n.readAsBinaryString(t);}))}},x={file:E.file,filelist:{test:e=>"FileList"===toStringTag(e),replace(e){const t=[];for(let r=0;r<e.length;r++)t[r]=e.item(r);return t},revive(e){class FileList{constructor(){this._files=arguments[0],this.length=this._files.length;}item(e){return this._files[e]}get[Symbol.toStringTag](){return "FileList"}}return new FileList(e)}}},C={imagebitmap:{test:e=>"ImageBitmap"===toStringTag(e)||e&&e.dataset&&"ImageBitmap"===e.dataset.toStringTag,replace(e){const t=document.createElement("canvas");return t.getContext("2d").drawImage(e,0,0),t.toDataURL()},revive(e){const t=document.createElement("canvas"),r=t.getContext("2d"),n=document.createElement("img");return n.addEventListener("load",(function(){r.drawImage(n,0,0);})),n.src=e,t},reviveAsync(t){const r=document.createElement("canvas"),n=r.getContext("2d"),o=document.createElement("img");return o.addEventListener("load",(function(){n.drawImage(o,0,0);})),o.src=t,new e((async(e,t)=>{try{e(await createImageBitmap(r));}catch(e){t(e);}}))}}},k={imagedata:{test:e=>"ImageData"===toStringTag(e),replace:e=>({array:[...e.data],width:e.width,height:e.height}),revive:e=>new ImageData(new Uint8ClampedArray(e.array),e.width,e.height)}},B={infinity:{test:e=>e===Number.POSITIVE_INFINITY,replace:()=>"Infinity",revive:()=>Number.POSITIVE_INFINITY}},D={map:{test:e=>"Map"===toStringTag(e),replace:e=>[...e.entries()],revive:e=>new Map(e)}},K={nan:{test:e=>Number.isNaN(e),replace:()=>"NaN",revive:()=>Number.NaN}},L={negativeInfinity:{test:e=>e===Number.NEGATIVE_INFINITY,replace:()=>"-Infinity",revive:()=>Number.NEGATIVE_INFINITY}},F={negativeZero:{test:e=>Object.is(e,-0),replace:()=>0,revive:()=>-0}},J={StringObject:{test:e=>"String"===toStringTag(e)&&"object"==typeof e,replace:String,revive:e=>new String(e)},BooleanObject:{test:e=>"Boolean"===toStringTag(e)&&"object"==typeof e,replace:Boolean,revive:e=>new Boolean(e)},NumberObject:{test:e=>"Number"===toStringTag(e)&&"object"==typeof e,replace:Number,revive:e=>new Number(e)}},V={regexp:{test:e=>"RegExp"===toStringTag(e),replace:e=>({source:e.source,flags:(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.sticky?"y":"")+(e.unicode?"u":"")}),revive:({source:e,flags:t})=>new RegExp(e,t)}},W={set:{test:e=>"Set"===toStringTag(e),replace:e=>[...e.values()],revive:e=>new Set(e)}},G={};"function"==typeof Int8Array&&[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,..."function"==typeof BigInt64Array?[BigInt64Array,BigUint64Array]:[]].forEach((e=>function create$1(e){const t=e.name;G[t.toLowerCase()]={test:e=>toStringTag(e)===t,replace:e=>(0===e.byteOffset&&e.byteLength===e.buffer.byteLength?e:e.slice(0)).buffer,revive:t=>"ArrayBuffer"===toStringTag(t)?new e(t):t};}(e)));const H={};"function"==typeof Int8Array&&[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,..."function"==typeof BigInt64Array?[BigInt64Array,BigUint64Array]:[]].forEach((e=>function create(e){const t=e.name;H[t.toLowerCase()]={test:e=>toStringTag(e)===t,replace({buffer:e,byteOffset:t,length:r},n){n.buffers||(n.buffers=[]);const o=n.buffers.indexOf(e);return o>-1?{index:o,byteOffset:t,length:r}:(n.buffers.push(e),{encoded:p(e),byteOffset:t,length:r})},revive(t,r){r.buffers||(r.buffers=[]);const{byteOffset:n,length:o,encoded:a,index:i}=t;let c;return "index"in t?c=r.buffers[i]:(c=d(a),r.buffers.push(c)),new e(c,n,o)}};}(e)));const z={undef:{test:(e,t)=>void 0===e&&(t.ownKeys||!("ownKeys"in t)),replace:()=>0,revive:()=>new s}},X={userObject:{test:e=>isUserObject(e),replace:e=>({...e}),revive:e=>e}},Z=[{arrayNonindexKeys:{testPlainObjects:!0,test:(e,t)=>!!Array.isArray(e)&&(Object.keys(e).some((e=>String(Number.parseInt(e))!==e))&&(t.iterateIn="object",t.addLength=!0),!0),replace:(e,t)=>(t.iterateUnsetNumeric=!0,e),revive(e){if(Array.isArray(e))return e;const t=[];return Object.entries(e).forEach((([e,r])=>{t[e]=r;})),t}}},{sparseUndefined:{test:(e,t)=>void 0===e&&!1===t.ownKeys,replace:()=>0,revive(){}}}],Q=[K,B,L,F],oe=[X,z,Z,J,Q,A,V,k,C,E,x,h,I,P].concat("function"==typeof Map?D:[],"function"==typeof Set?W:[],"function"==typeof ArrayBuffer?v:[],"function"==typeof Uint8Array?H:[],"function"==typeof DataView?w:[],"undefined"!=typeof crypto?_:[],"undefined"!=typeof BigInt?[m,b]:[],"undefined"!=typeof DOMException?S:[],"undefined"!=typeof DOMRect?N:[],"undefined"!=typeof DOMPoint?T:[],"undefined"!=typeof DOMMatrix?j:[]),ae=oe.concat({checkDataCloneException:{test(e){const t={}.toString.call(e).slice(8,-1);if(["symbol","function"].includes(typeof e)||["Arguments","Module","Promise","WeakMap","WeakSet","Event","MessageChannel"].includes(t)||e&&"object"==typeof e&&"number"==typeof e.nodeType&&"function"==typeof e.insertBefore)throw new DOMException("The object cannot be cloned.","DataCloneError");return !1}}});
|
|
2318
|
+
function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n);}return r}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach((function(t){_defineProperty(e,t,r[t]);})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t));}));}return e}function _typeof(e){return _typeof="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},_typeof(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,_toPropertyKey(n.key),n);}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty(e,t,r){return (t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _slicedToArray(e,t){return function _arrayWithHoles(e){if(Array.isArray(e))return e}(e)||function _iterableToArrayLimit(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,i,c=[],s=!0,u=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1;}else for(;!(s=(n=o.call(r)).done)&&(c.push(n.value),c.length!==t);s=!0);}catch(e){u=!0,a=e;}finally{try{if(!s&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||_unsupportedIterableToArray(e,t)||function _nonIterableRest(){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 _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return "Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _toPropertyKey(e){var t=function _toPrimitive(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return ("string"===t?String:Number)(e)}(e,"string");return "symbol"==typeof t?t:String(t)}var e=_createClass((function TypesonPromise(e){_classCallCheck(this,TypesonPromise),this.p=new Promise(e);}));e.__typeson__type__="TypesonPromise","undefined"!=typeof Symbol&&Object.defineProperty(e.prototype,Symbol.toStringTag,{get:function get(){return "TypesonPromise"}}),e.prototype.then=function(t,r){var n=this;return new e((function(e,a){n.p.then((function(r){e(t?t(r):r);})).catch((function(e){return r?r(e):Promise.reject(e)})).then(e,a);}))},e.prototype.catch=function(e){return this.then((function(){}),e)},e.resolve=function(t){return new e((function(e){e(t);}))},e.reject=function(t){return new e((function(e,r){r(t);}))},e.all=function(t){return new e((function(e,r){Promise.all(t.map((function(e){return null!=e&&e.constructor&&"__typeson__type__"in e.constructor&&"TypesonPromise"===e.constructor.__typeson__type__?e.p:e}))).then(e,r);}))},e.race=function(t){return new e((function(e,r){Promise.race(t.map((function(e){return null!=e&&e.constructor&&"__typeson__type__"in e.constructor&&"TypesonPromise"===e.constructor.__typeson__type__?e.p:e}))).then(e,r);}))},e.allSettled=function(t){return new e((function(e,r){Promise.allSettled(t.map((function(e){return null!=e&&e.constructor&&"__typeson__type__"in e.constructor&&"TypesonPromise"===e.constructor.__typeson__type__?e.p:e}))).then(e,r);}))};var t=Object.hasOwn,r=Object.getPrototypeOf;function isThenable(e,t){return isObject(e)&&"function"==typeof e.then&&(!t||"function"==typeof e.catch)}function toStringTag(e){return Object.prototype.toString.call(e).slice(8,-1)}function hasConstructorOf(e,n){if(!e||"object"!==_typeof(e))return !1;var a=r(e);if(!a)return null===n;var o=t(a,"constructor")&&a.constructor;return "function"!=typeof o?null===n:n===o||null!==n&&Function.prototype.toString.call(o)===Function.prototype.toString.call(n)||"function"==typeof n&&"string"==typeof o.__typeson__type__&&o.__typeson__type__===n.__typeson__type__}function isPlainObject(e){return !(!e||"Object"!==toStringTag(e))&&(!r(e)||hasConstructorOf(e,Object))}function isUserObject(e){if(!e||"Object"!==toStringTag(e))return !1;var t=r(e);return !t||hasConstructorOf(e,Object)||isUserObject(t)}function isObject(e){return null!==e&&"object"===_typeof(e)}function escapeKeyPathComponent(e){return e.replaceAll("''","''''").replace(/^$/,"''").replaceAll("~","~0").replaceAll(".","~1")}function unescapeKeyPathComponent(e){return e.replaceAll("~1",".").replaceAll("~0","~").replace(/^''$/,"").replaceAll("''''","''")}function getByKeyPath(e,t){if(""===t)return e;if(null===e||"object"!==_typeof(e))throw new TypeError("Unexpected non-object type");var r=t.indexOf(".");if(r>-1){var n=e[unescapeKeyPathComponent(t.slice(0,r))];return void 0===n?void 0:getByKeyPath(n,t.slice(r+1))}return e[unescapeKeyPathComponent(t)]}function setAtKeyPath(e,t,r){if(""===t)return r;if(!e||"object"!==_typeof(e))throw new TypeError("Unexpected non-object type");var n=t.indexOf(".");return n>-1?setAtKeyPath(e[unescapeKeyPathComponent(t.slice(0,n))],t.slice(n+1),r):(e[unescapeKeyPathComponent(t)]=r,e)}function getJSONType(e){return null===e?"null":Array.isArray(e)?"array":_typeof(e)}function _await(e,t,r){return r?t?t(e):e:(e&&e.then||(e=Promise.resolve(e)),t?e.then(t):e)}var n=Object.keys,a=Object.hasOwn,o=Array.isArray,i=["type","replaced","iterateIn","iterateUnsetNumeric","addLength"];function _async(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];try{return Promise.resolve(e.apply(this,t))}catch(e){return Promise.reject(e)}}}function nestedPathsFirst(e,t){var r,n;if(""===e.keypath)return -1;var a=null!==(r=e.keypath.match(/\./g))&&void 0!==r?r:0,o=null!==(n=t.keypath.match(/\./g))&&void 0!==n?n:0;return a&&(a=a.length),o&&(o=o.length),a>o?-1:a<o?1:e.keypath<t.keypath?-1:e.keypath>t.keypath?1:0}var c=function(){function Typeson(e){_classCallCheck(this,Typeson),this.options=e,this.plainObjectReplacers=[],this.nonplainObjectReplacers=[],this.revivers={},this.types={};}return _createClass(Typeson,[{key:"stringify",value:function stringify(e,t,r,n){n=_objectSpread2(_objectSpread2(_objectSpread2({},this.options),n),{},{stringification:!0});var a=this.encapsulate(e,null,n);return o(a)?JSON.stringify(a[0],t,r):a.then((function(e){return JSON.stringify(e,t,r)}))}},{key:"stringifySync",value:function stringifySync(e,t,r,n){return this.stringify(e,t,r,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},n),{},{sync:!0}))}},{key:"stringifyAsync",value:function stringifyAsync(e,t,r,n){return this.stringify(e,t,r,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},n),{},{sync:!1}))}},{key:"parse",value:function parse(e,t,r){return r=_objectSpread2(_objectSpread2(_objectSpread2({},this.options),r),{},{parse:!0}),this.revive(JSON.parse(e,t),r)}},{key:"parseSync",value:function parseSync(e,t,r){return this.parse(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!0}))}},{key:"parseAsync",value:function parseAsync(e,t,r){return this.parse(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!1}))}},{key:"specialTypeNames",value:function specialTypeNames(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.returnTypeNames=!0,this.encapsulate(e,t,r)}},{key:"rootTypeName",value:function rootTypeName(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.iterateNone=!0,this.encapsulate(e,t,r)}},{key:"encapsulate",value:function encapsulate(t,r,c){var s=this,u=_objectSpread2(_objectSpread2({sync:!0},this.options),c),l=u.sync,f={},y=[],p=[],d=[],v=!("cyclic"in u)||u.cyclic,b=u.encapsulateObserver,m=function finish(e){var t=Object.values(f);if(u.iterateNone)return t.length?t[0]:getJSONType(e);if(t.length){if(u.returnTypeNames)return function _toConsumableArray(e){return function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}(e)||function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||_unsupportedIterableToArray(e)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(new Set(t));e&&isPlainObject(e)&&!a(e,"$types")?e.$types=f:e={$:e,$types:{$:f}};}else isObject(e)&&a(e,"$types")&&(e={$:e,$types:!0});return !u.returnTypeNames&&e},h=_async((function(t,r){return _await(Promise.all(r.map((function(e){return e[1].p}))),(function(n){return _await(Promise.all(n.map(_async((function(n){var a=!1,o=[],i=_slicedToArray(r.splice(0,1),1),c=_slicedToArray(i[0],7),s=c[0],u=c[2],l=c[3],f=c[4],y=c[5],p=c[6],d=O(s,n,u,l,o,!0,p),v=hasConstructorOf(d,e);return function _invoke(e,t){var r=e();return r&&r.then?r.then(t):t(r)}((function(){if(s&&v)return _await(d.p,(function(e){f[y]=e;var r=h(t,o);return a=!0,r}))}),(function(e){return a?e:(s?f[y]=d:t=v?d.p:d,h(t,o))}))})))),(function(){return t}))}))})),g=function _adaptBuiltinStateObjectProperties(e,t,r){Object.assign(e,t);var n=i.map((function(t){var r=e[t];return delete e[t],r}));r(),i.forEach((function(t,r){e[t]=n[r];}));},O=function _encapsulate(t,r,i,c,l,d,v){var m,h={},O=_typeof(r),w=b?function(n){var a,o=null!==(a=null!=v?v:c.type)&&void 0!==a?a:getJSONType(r);b(Object.assign(null!=n?n:h,{keypath:t,value:r,cyclic:i,stateObj:c,promisesData:l,resolvingTypesonPromise:d,awaitingTypesonPromise:hasConstructorOf(r,e)},{type:o}));}:null;if(["string","boolean","number","undefined"].includes(O))return void 0===r||Number.isNaN(r)||r===Number.NEGATIVE_INFINITY||r===Number.POSITIVE_INFINITY||0===r?(m=c.replaced?r:_(t,r,c,l,!1,d,w))!==r&&(h={replaced:m}):m=r,w&&w(),m;if(null===r)return w&&w(),r;if(i&&!c.iterateIn&&!c.iterateUnsetNumeric&&r&&"object"===_typeof(r)){var A=y.indexOf(r);if(!(A<0))return f[t]="#",w&&w({cyclicKeypath:p[A]}),"#"+p[A];!0===i&&(y.push(r),p.push(t));}var S,j,T=isPlainObject(r),N=o(r),I=(T||N)&&(!s.plainObjectReplacers.length||c.replaced)||c.iterateIn?r:_(t,r,c,l,T||N,null,w);if(I!==r?(m=I,h={replaced:I}):""===t&&hasConstructorOf(r,e)?(l.push([t,r,i,c,void 0,void 0,c.type]),m=r):N&&"object"!==c.iterateIn||"array"===c.iterateIn?(S=new Array(r.length),h={clone:S}):(["function","symbol"].includes(_typeof(r))||"toJSON"in r||hasConstructorOf(r,e)||hasConstructorOf(r,Promise)||hasConstructorOf(r,ArrayBuffer))&&!T&&"object"!==c.iterateIn?m=r:(S={},c.addLength&&(S.length=r.length),h={clone:S}),w&&w(),u.iterateNone)return null!==(j=S)&&void 0!==j?j:m;if(!S)return m;if(c.iterateIn){var P=function _loop(n){var o={ownKeys:a(r,n)};g(c,o,(function(){var a=t+(t?".":"")+escapeKeyPathComponent(n),o=_encapsulate(a,r[n],Boolean(i),c,l,d);hasConstructorOf(o,e)?l.push([a,o,Boolean(i),c,S,n,c.type]):void 0!==o&&(S[n]=o);}));};for(var E in r)P(E);w&&w({endIterateIn:!0,end:!0});}else n(r).forEach((function(n){var a=t+(t?".":"")+escapeKeyPathComponent(n);g(c,{ownKeys:!0},(function(){var t=_encapsulate(a,r[n],Boolean(i),c,l,d);hasConstructorOf(t,e)?l.push([a,t,Boolean(i),c,S,n,c.type]):void 0!==t&&(S[n]=t);}));})),w&&w({endIterateOwn:!0,end:!0});if(c.iterateUnsetNumeric){for(var x=r.length,C=function _loop2(n){if(!(n in r)){var a="".concat(t).concat(t?".":"").concat(n);g(c,{ownKeys:!1},(function(){var t=_encapsulate(a,void 0,Boolean(i),c,l,d);hasConstructorOf(t,e)?l.push([a,t,Boolean(i),c,S,n,c.type]):void 0!==t&&(S[n]=t);}));}},k=0;k<x;k++)C(k);w&&w({endIterateUnsetNumeric:!0,end:!0});}return S},_=function replace(e,t,r,n,a,o,i){for(var c=a?s.plainObjectReplacers:s.nonplainObjectReplacers,u=c.length;u--;){var y=c[u];if(y.test(t,r)){var p=y.type;if(s.revivers[p]){var d=f[e];f[e]=d?[p].concat(d):p;}if(Object.assign(r,{type:p,replaced:!0}),(l||!y.replaceAsync)&&!y.replace)return i&&i({typeDetected:!0}),O(e,t,v&&"readonly",r,n,o,p);i&&i({replacing:!0});var b=void 0;if(l||!y.replaceAsync){if(void 0===y.replace)throw new TypeError("Missing replacer");b=y.replace(t,r);}else b=y.replaceAsync(t,r);return O(e,b,v&&"readonly",r,n,o,p)}}return t},w=O("",t,v,null!=r?r:{},d);if(d.length)return l&&u.throwOnBadSyncType?function(){throw new TypeError("Sync method requested but async result obtained")}():Promise.resolve(h(w,d)).then(m);if(!l&&u.throwOnBadSyncType)throw new TypeError("Async method requested but sync result obtained");return u.stringification&&l?[m(w)]:l?m(w):Promise.resolve(m(w))}},{key:"encapsulateSync",value:function encapsulateSync(e,t,r){return this.encapsulate(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!0}))}},{key:"encapsulateAsync",value:function encapsulateAsync(e,t,r){return this.encapsulate(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!1}))}},{key:"revive",value:function revive(t,r){var a=this,i=_objectSpread2(_objectSpread2({sync:!0},this.options),r),c=i.sync;function finishRevival(e){if(c)return e;if(i.throwOnBadSyncType)throw new TypeError("Async method requested but sync result obtained");return Promise.resolve(e)}if(!t||"object"!==_typeof(t)||Array.isArray(t))return finishRevival(t);var u=t.$types;if(!0===u)return finishRevival(t.$);if(!u||"object"!==_typeof(u)||Array.isArray(u))return finishRevival(t);var l=[],f={},y=!0;u.$&&isPlainObject(u.$)&&(t=t.$,u=u.$,y=!1);var p=function executeReviver(e,t){var r,n=_slicedToArray(null!==(r=a.revivers[e])&&void 0!==r?r:[],1)[0];if(!n)throw new Error("Unregistered type: "+e);if(c&&!("revive"in n))return t;if(!c&&n.reviveAsync)return n.reviveAsync(t,f);if(n.revive)return n.revive(t,f);throw new Error("Missing reviver")},d=[];function checkUndefined(e){return hasConstructorOf(e,s)?void 0:e}var v,b=function revivePlainObjects(){var r=[];if(!u)throw new Error("Found bad `types`");if(Object.entries(u).forEach((function(e){var t=_slicedToArray(e,2),n=t[0],o=t[1];"#"!==o&&[].concat(o).forEach((function(e){var t;_slicedToArray(null!==(t=a.revivers[e])&&void 0!==t?t:[null,{}],2)[1].plain&&(r.push({keypath:n,type:e}),delete u[n]);}));})),r.length)return r.sort(nestedPathsFirst).reduce((function reducer(r,n){var a=n.keypath,o=n.type;if(isThenable(r))return r.then((function(e){return reducer(e,{keypath:a,type:o})}));var i=getByKeyPath(t,a);if(hasConstructorOf(i=p(o,i),e))return i.then((function(e){var r=setAtKeyPath(t,a,e);r===e&&(t=r);}));var c=setAtKeyPath(t,a,i);c===i&&(t=c);}),void 0)}();return hasConstructorOf(b,e)?v=b.then((function(){return t})):(v=function _revive(t,r,a,i,c){if(!y||"$types"!==t){var f=u[t],v=o(r);if(v||isPlainObject(r)){var b=v?new Array(r.length):{};for(n(r).forEach((function(n){var o=_revive(t+(t?".":"")+escapeKeyPathComponent(n),r[n],null!=a?a:b,b,n),i=function set(e){return hasConstructorOf(e,s)?b[n]=void 0:void 0!==e&&(b[n]=e),e};hasConstructorOf(o,e)?d.push(o.then((function(e){return i(e)}))):i(o);})),r=b;l.length;){var m=_slicedToArray(l[0],4),h=m[0],g=m[1],O=m[2],_=m[3],w=getByKeyPath(h,g);if(void 0===w)break;O[_]=w,l.splice(0,1);}}if(!f)return r;if("#"===f){var A=getByKeyPath(a,r.slice(1));return void 0===A&&l.push([a,r.slice(1),i,c]),A}return [].concat(f).reduce((function reducer(t,r){if(hasConstructorOf(t,e))return t.then((function(e){return reducer(e,r)}));if("string"!=typeof r)throw new TypeError("Bad type JSON");return p(r,t)}),r)}}("",t,null),d.length&&(v=e.resolve(v).then((function(t){return e.all([t].concat(d))})).then((function(e){return _slicedToArray(e,1)[0]})))),isThenable(v)?c&&i.throwOnBadSyncType?function(){throw new TypeError("Sync method requested but async result obtained")}():hasConstructorOf(v,e)?v.p.then(checkUndefined):v:!c&&i.throwOnBadSyncType?function(){throw new TypeError("Async method requested but sync result obtained")}():c?checkUndefined(v):Promise.resolve(checkUndefined(v))}},{key:"reviveSync",value:function reviveSync(e,t){return this.revive(e,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},t),{},{sync:!0}))}},{key:"reviveAsync",value:function reviveAsync(e,t){return this.revive(e,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},t),{},{sync:!1}))}},{key:"register",value:function register(e,t){var r=this,a=null!=t?t:{},i=function R(e){o(e)?e.forEach((function(e){return R(e)})):n(e).forEach((function(t){var n;if("#"===t)throw new TypeError("# cannot be used as a type name as it is reserved for cyclic objects");if(u.includes(t))throw new TypeError("Plain JSON object types are reserved as type names");var i=e[t],c=i&&"function"!=typeof i&&!Array.isArray(i)&&i.testPlainObjects?r.plainObjectReplacers:r.nonplainObjectReplacers,s=c.filter((function(e){return e.type===t}));if(s.length&&(c.splice(c.indexOf(s[0]),1),delete r.revivers[t],delete r.types[t]),"function"==typeof i){var l=i;i={test:function test(e){return e&&e.constructor===l},replace:function replace(e){return _objectSpread2({},e)},revive:function revive(e){return Object.assign(Object.create(l.prototype),e)}};}else if(o(i)){var f=_slicedToArray(i,3);i={test:f[0],replace:f[1],revive:f[2]};}if(null!==(n=i)&&void 0!==n&&n.test){var y={type:t,test:i.test.bind(i)};i.replace&&(y.replace=i.replace.bind(i)),i.replaceAsync&&(y.replaceAsync=i.replaceAsync.bind(i));var p="number"==typeof a.fallback?a.fallback:a.fallback?0:Number.POSITIVE_INFINITY;if(i.testPlainObjects?r.plainObjectReplacers.splice(p,0,y):r.nonplainObjectReplacers.splice(p,0,y),i.revive||i.reviveAsync){var d={};i.revive&&(d.revive=i.revive.bind(i)),i.reviveAsync&&(d.reviveAsync=i.reviveAsync.bind(i)),r.revivers[t]=[d,{plain:i.testPlainObjects}];}r.types[t]=i;}}));};return [].concat(e).forEach((function(e){return i(e)})),this}}]),Typeson}(),s=_createClass((function Undefined(){_classCallCheck(this,Undefined);}));s.__typeson__type__="TypesonUndefined";for(var u=["null","boolean","number","string","array","object"],l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=new Uint8Array(256),y=0;y<64;y++)f[l.codePointAt(y)]=y;var p=function encode(e,t,r){null==r&&(r=e.byteLength);for(var n=new Uint8Array(e,t||0,r),a=n.length,o="",i=0;i<a;i+=3)o+=l[n[i]>>2],o+=l[(3&n[i])<<4|n[i+1]>>4],o+=l[(15&n[i+1])<<2|n[i+2]>>6],o+=l[63&n[i+2]];return a%3==2?o=o.slice(0,-1)+"=":a%3==1&&(o=o.slice(0,-2)+"=="),o},d=function decode(e){var t=e.length;if(t%4)throw new Error("Bad base64 length: not divisible by four");var r,n,a,o,i=.75*e.length,c=0;"="===e[e.length-1]&&(i--,"="===e[e.length-2]&&i--);for(var s=new ArrayBuffer(i),u=new Uint8Array(s),l=0;l<t;l+=4)r=f[e.codePointAt(l)],n=f[e.codePointAt(l+1)],a=f[e.codePointAt(l+2)],o=f[e.codePointAt(l+3)],u[c++]=r<<2|n>>4,u[c++]=(15&n)<<4|a>>2,u[c++]=(3&a)<<6|63&o;return s};const v={arraybuffer:{test:e=>"ArrayBuffer"===toStringTag(e),replace(e,t){t.buffers||(t.buffers=[]);const r=t.buffers.indexOf(e);return r>-1?{index:r}:(t.buffers.push(e),p(e))},revive(e,t){if(t.buffers||(t.buffers=[]),"object"==typeof e)return t.buffers[e.index];const r=d(e);return t.buffers.push(r),r}}},b={bigintObject:{test:e=>"object"==typeof e&&hasConstructorOf(e,BigInt),replace:String,revive:e=>new Object(BigInt(e))}},m={bigint:{test:e=>"bigint"==typeof e,replace:String,revive:e=>BigInt(e)}};function string2arraybuffer(e){const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t.buffer}const h={blob:{test:e=>"Blob"===toStringTag(e),replace(e){const t=new XMLHttpRequest;if(t.overrideMimeType("text/plain; charset=x-user-defined"),t.open("GET",URL.createObjectURL(e),!1),t.send(),200!==t.status&&0!==t.status)throw new Error("Bad Blob access: "+t.status);return {type:e.type,stringContents:t.responseText}},revive(e){const{type:t,stringContents:r}=e;return new Blob([string2arraybuffer(r)],{type:t})},replaceAsync:t=>new e(((e,r)=>{const n=new FileReader;n.addEventListener("load",(()=>{e({type:t.type,stringContents:n.result});})),n.addEventListener("error",(()=>{r(n.error);})),n.readAsBinaryString(t);}))}};function generateUUID(){let e=Date.now()+("undefined"!=typeof performance&&"function"==typeof performance.now?performance.now():0);return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replaceAll(/[xy]/gu,(function(t){const r=Math.trunc((e+16*Math.random())%16);return e=Math.floor(e/16),("x"===t?r:3&r|8).toString(16)}))}const _={cryptokey:{test:e=>"CryptoKey"===toStringTag(e)&&e.extractable,replaceAsync:t=>new e((async(e,r)=>{let n;try{n=await crypto.subtle.exportKey("jwk",t);}catch(e){return void r(e)}e({jwk:n,algorithm:t.algorithm,usages:t.usages});})),revive(e){const{jwk:t,algorithm:r,usages:n}=e;return crypto.subtle.importKey("jwk",t,r,!0,n)}}},w={dataview:{test:e=>"DataView"===toStringTag(e),replace({buffer:e,byteOffset:t,byteLength:r},n){n.buffers||(n.buffers=[]);const a=n.buffers.indexOf(e);return a>-1?{index:a,byteOffset:t,byteLength:r}:(n.buffers.push(e),{encoded:p(e),byteOffset:t,byteLength:r})},revive(e,t){t.buffers||(t.buffers=[]);const{byteOffset:r,byteLength:n,encoded:a,index:o}=e;let i;return "index"in e?i=t.buffers[o]:(i=d(a),t.buffers.push(i)),new DataView(i,r,n)}}},A={date:{test:e=>"Date"===toStringTag(e),replace(e){const t=e.getTime();return Number.isNaN(t)?"NaN":t},revive:e=>"NaN"===e?new Date(Number.NaN):new Date(e)}},S={domexception:{test:e=>"DOMException"===toStringTag(e),replace:e=>({name:e.name,message:e.message}),revive:({message:e,name:t})=>new DOMException(e,t)}},j={};function create$5(e){j[e.name.toLowerCase()]={test:t=>toStringTag(t)===e.name,replace:e=>e.is2D?{a:e.a,b:e.b,c:e.c,d:e.d,e:e.e,f:e.f}:{m11:e.m11,m12:e.m12,m13:e.m13,m14:e.m14,m21:e.m21,m22:e.m22,m23:e.m23,m24:e.m24,m31:e.m31,m32:e.m32,m33:e.m33,m34:e.m34,m41:e.m41,m42:e.m42,m43:e.m43,m44:e.m44},revive:t=>Object.hasOwn(t,"a")?new e([t.a,t.b,t.c,t.d,t.e,t.f]):new e([t.m11,t.m12,t.m13,t.m14,t.m21,t.m22,t.m23,t.m24,t.m31,t.m32,t.m33,t.m34,t.m41,t.m42,t.m43,t.m44])};}"undefined"!=typeof DOMMatrix&&create$5(DOMMatrix),"undefined"!=typeof DOMMatrixReadOnly&&create$5(DOMMatrixReadOnly);const T={};function create$4(e){T[e.name.toLowerCase()]={test:t=>toStringTag(t)===e.name,replace:e=>({x:e.x,y:e.y,z:e.z,w:e.w}),revive:({x:t,y:r,z:n,w:a})=>new e(t,r,n,a)};}"undefined"!=typeof DOMPoint&&create$4(DOMPoint),"undefined"!=typeof DOMPointReadOnly&&create$4(DOMPointReadOnly);const N={domquad:{test:e=>"DOMQuad"===toStringTag(e),replace:e=>({p1:e.p1,p2:e.p2,p3:e.p3,p4:e.p4}),revive:({p1:e,p2:t,p3:r,p4:n})=>new DOMQuad(e,t,r,n)}},I={};function create$3(e){I[e.name.toLowerCase()]={test:t=>toStringTag(t)===e.name,replace:e=>({x:e.x,y:e.y,width:e.width,height:e.height}),revive:({x:t,y:r,width:n,height:a})=>new e(t,r,n,a)};}"undefined"!=typeof DOMRect&&create$3(DOMRect),"undefined"!=typeof DOMRectReadOnly&&create$3(DOMRectReadOnly);const P={error:{test:e=>"Error"===toStringTag(e),replace:({name:e,message:t,cause:r,stack:n,fileName:a,lineNumber:o,columnNumber:i})=>({name:e,message:t,cause:r,stack:n,fileName:a,lineNumber:o,columnNumber:i}),revive(e){const t=new Error(e.message);return t.name=e.name,t.cause=e.cause,t.stack=e.stack,t.fileName=e.fileName,t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}}},E={};function create$2(e){E[e.name.toLowerCase()]={test:t=>hasConstructorOf(t,e),replace:({name:e,message:t,cause:r,stack:n,fileName:a,lineNumber:o,columnNumber:i,errors:c})=>({name:e,message:t,cause:r,stack:n,fileName:a,lineNumber:o,columnNumber:i,errors:c}),revive(t){const r="undefined"!=typeof AggregateError&&e===AggregateError?new e(t.errors,t.message):new e(t.message);return r.name=t.name,r.cause=t.cause,r.stack=t.stack,r.fileName=t.fileName,r.lineNumber=t.lineNumber,r.columnNumber=t.columnNumber,r}};}[TypeError,RangeError,SyntaxError,ReferenceError,EvalError,URIError].forEach((e=>create$2(e))),"undefined"!=typeof AggregateError&&create$2(AggregateError),"function"==typeof InternalError&&create$2(InternalError);const x={file:{test:e=>"File"===toStringTag(e),replace(e){const t=new XMLHttpRequest;if(t.overrideMimeType("text/plain; charset=x-user-defined"),t.open("GET",URL.createObjectURL(e),!1),t.send(),200!==t.status&&0!==t.status)throw new Error("Bad File access: "+t.status);return {type:e.type,stringContents:t.responseText,name:e.name,lastModified:e.lastModified}},revive:({name:e,type:t,stringContents:r,lastModified:n})=>new File([string2arraybuffer(r)],e,{type:t,lastModified:n}),replaceAsync:t=>new e((function(e,r){const n=new FileReader;n.addEventListener("load",(function(){e({type:t.type,stringContents:n.result,name:t.name,lastModified:t.lastModified});})),n.addEventListener("error",(function(){r(n.error);})),n.readAsBinaryString(t);}))}},C={file:x.file,filelist:{test:e=>"FileList"===toStringTag(e),replace(e){const t=[];for(let r=0;r<e.length;r++)t[r]=e.item(r);return t},revive(e){class FileList{constructor(){this._files=arguments[0],this.length=this._files.length;}item(e){return this._files[e]}get[Symbol.toStringTag](){return "FileList"}}return new FileList(e)}}},k={imagebitmap:{test:e=>"ImageBitmap"===toStringTag(e)||e&&e.dataset&&"ImageBitmap"===e.dataset.toStringTag,replace(e){const t=document.createElement("canvas");return t.getContext("2d").drawImage(e,0,0),t.toDataURL()},revive(e){const t=document.createElement("canvas"),r=t.getContext("2d"),n=document.createElement("img");return n.addEventListener("load",(function(){r.drawImage(n,0,0);})),n.src=e,t},reviveAsync(t){const r=document.createElement("canvas"),n=r.getContext("2d"),a=document.createElement("img");return a.addEventListener("load",(function(){n.drawImage(a,0,0);})),a.src=t,new e((async(e,t)=>{try{e(await createImageBitmap(r));}catch(e){t(e);}}))}}},B={imagedata:{test:e=>"ImageData"===toStringTag(e),replace:e=>({array:[...e.data],width:e.width,height:e.height}),revive:e=>new ImageData(new Uint8ClampedArray(e.array),e.width,e.height)}},U$1={infinity:{test:e=>e===Number.POSITIVE_INFINITY,replace:()=>"Infinity",revive:()=>Number.POSITIVE_INFINITY}},K={map:{test:e=>"Map"===toStringTag(e),replace:e=>[...e.entries()],revive:e=>new Map(e)}},L={nan:{test:e=>Number.isNaN(e),replace:()=>"NaN",revive:()=>Number.NaN}},F={negativeInfinity:{test:e=>e===Number.NEGATIVE_INFINITY,replace:()=>"-Infinity",revive:()=>Number.NEGATIVE_INFINITY}},$$1={negativeZero:{test:e=>Object.is(e,-0),replace:()=>0,revive:()=>-0}},V={StringObject:{test:e=>"String"===toStringTag(e)&&"object"==typeof e,replace:String,revive:e=>new String(e)},BooleanObject:{test:e=>"Boolean"===toStringTag(e)&&"object"==typeof e,replace:Boolean,revive:e=>new Boolean(e)},NumberObject:{test:e=>"Number"===toStringTag(e)&&"object"==typeof e,replace:Number,revive:e=>new Number(e)}},q={regexp:{test:e=>"RegExp"===toStringTag(e),replace:e=>({source:e.source,flags:(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.sticky?"y":"")+(e.unicode?"u":"")}),revive:({source:e,flags:t})=>new RegExp(e,t)}},Y={},W={resurrectable:{test:e=>e&&!Array.isArray(e)&&["object","function","symbol"].includes(typeof e),replace(e){const t=generateUUID();return Y[t]=e,t},revive:e=>Y[e]}},G={set:{test:e=>"Set"===toStringTag(e),replace:e=>[...e.values()],revive:e=>new Set(e)}},H={};"function"==typeof Int8Array&&[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,..."function"==typeof BigInt64Array?[BigInt64Array,BigUint64Array]:[]].forEach((e=>function create$1(e){const t=e.name;H[t.toLowerCase()]={test:e=>toStringTag(e)===t,replace:e=>(0===e.byteOffset&&e.byteLength===e.buffer.byteLength?e:e.slice(0)).buffer,revive:t=>"ArrayBuffer"===toStringTag(t)?new e(t):t};}(e)));const z={};"function"==typeof Int8Array&&[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,..."function"==typeof BigInt64Array?[BigInt64Array,BigUint64Array]:[]].forEach((e=>function create(e){const t=e.name;z[t.toLowerCase()]={test:e=>toStringTag(e)===t,replace({buffer:e,byteOffset:t,length:r},n){n.buffers||(n.buffers=[]);const a=n.buffers.indexOf(e);return a>-1?{index:a,byteOffset:t,length:r}:(n.buffers.push(e),{encoded:p(e),byteOffset:t,length:r})},revive(t,r){r.buffers||(r.buffers=[]);const{byteOffset:n,length:a,encoded:o,index:i}=t;let c;return "index"in t?c=r.buffers[i]:(c=d(o),r.buffers.push(c)),new e(c,n,a)}};}(e)));const Q={undef:{test:(e,t)=>void 0===e&&(t.ownKeys||!("ownKeys"in t)),replace:()=>0,revive:()=>new s}},X={userObject:{test:e=>isUserObject(e),replace:e=>({...e}),revive:e=>e}},Z=[{arrayNonindexKeys:{testPlainObjects:!0,test:(e,t)=>!!Array.isArray(e)&&(Object.keys(e).some((e=>String(Number.parseInt(e))!==e))&&(t.iterateIn="object",t.addLength=!0),!0),replace:(e,t)=>(t.iterateUnsetNumeric=!0,e),revive(e){if(Array.isArray(e))return e;const t=[];return Object.entries(e).forEach((([e,r])=>{t[e]=r;})),t}}},{sparseUndefined:{test:(e,t)=>void 0===e&&!1===t.ownKeys,replace:()=>0,revive(){}}}],ee=[L,U$1,F,$$1],oe=[X,Q,Z,V,ee,A,q,B,k,x,C,h,P,E].concat("function"==typeof Map?K:[],"function"==typeof Set?G:[],"function"==typeof ArrayBuffer?v:[],"function"==typeof Uint8Array?z:[],"function"==typeof DataView?w:[],"undefined"!=typeof crypto?_:[],"undefined"!=typeof BigInt?[m,b]:[],"undefined"!=typeof DOMException?S:[],"undefined"!=typeof DOMRect?I:[],"undefined"!=typeof DOMPoint?T:[],"undefined"!=typeof DOMQuad?N:[],"undefined"!=typeof DOMMatrix?j:[]),ie=oe.concat({checkDataCloneException:{test(e){const t={}.toString.call(e).slice(8,-1);if(["symbol","function"].includes(typeof e)||["Arguments","Module","Promise","WeakMap","WeakSet","Event","MessageChannel"].includes(t)||e&&"object"==typeof e&&"number"==typeof e.nodeType&&"function"==typeof e.insertBefore)throw new DOMException("The object cannot be cloned.","DataCloneError");return !1}}});
|
|
2319
2319
|
|
|
2320
2320
|
const nbsp = '\u00A0';
|
|
2321
2321
|
const upArrow = '\u2191';
|
|
@@ -3082,6 +3082,15 @@ const json = {
|
|
|
3082
3082
|
}
|
|
3083
3083
|
};
|
|
3084
3084
|
|
|
3085
|
+
// We modify resurrectable in hopes an including application doesn't need it
|
|
3086
|
+
/** @type {import('typeson').TypeSpecSet} */ (
|
|
3087
|
+
W.resurrectable
|
|
3088
|
+
).test = /** @type {import('typeson').Tester} */ (x) => {
|
|
3089
|
+
return x && typeof x === 'object' && !Array.isArray(x) &&
|
|
3090
|
+
// Could be a user object with a string tag, but we can't tell
|
|
3091
|
+
toStringTag(x) !== 'Object';
|
|
3092
|
+
};
|
|
3093
|
+
|
|
3085
3094
|
/**
|
|
3086
3095
|
* @typedef {(info: {
|
|
3087
3096
|
* propName: string,
|
|
@@ -3164,8 +3173,6 @@ const encapsulateObserver = (stateObj) => {
|
|
|
3164
3173
|
return;
|
|
3165
3174
|
}
|
|
3166
3175
|
|
|
3167
|
-
// console.log('observerObj', observerObj);
|
|
3168
|
-
|
|
3169
3176
|
/** @type {import('../types.js').AvailableType} */
|
|
3170
3177
|
let newType;
|
|
3171
3178
|
let newValue = value;
|
|
@@ -3469,15 +3476,49 @@ const canonicalToAvailableType = (
|
|
|
3469
3476
|
const structuredCloning = {
|
|
3470
3477
|
iterate (records, stateObj) {
|
|
3471
3478
|
// console.log('records', records);
|
|
3479
|
+
/* istanbul ignore if -- Just a guard */
|
|
3472
3480
|
if (!stateObj.format) {
|
|
3473
3481
|
stateObj.format = 'structuredCloning';
|
|
3474
3482
|
}
|
|
3475
3483
|
// Todo: Replace this with async typeson?
|
|
3476
3484
|
// eslint-disable-next-line promise/avoid-new
|
|
3477
3485
|
return new Promise((resolve, reject) => {
|
|
3486
|
+
const structuredCloningFixed = ie.filter(
|
|
3487
|
+
(typeSpecSet) => {
|
|
3488
|
+
return ![
|
|
3489
|
+
// Not yet supported within JSOE
|
|
3490
|
+
'imagedata',
|
|
3491
|
+
'imagebitmap',
|
|
3492
|
+
'arraybuffer',
|
|
3493
|
+
'dataview',
|
|
3494
|
+
'cryptokey',
|
|
3495
|
+
'domquad',
|
|
3496
|
+
|
|
3497
|
+
'bigint64array',
|
|
3498
|
+
'biguint64array',
|
|
3499
|
+
'float32array',
|
|
3500
|
+
'float64array',
|
|
3501
|
+
'int8array',
|
|
3502
|
+
'int16array',
|
|
3503
|
+
'int32array',
|
|
3504
|
+
'uint8array',
|
|
3505
|
+
'uint8clampedarray',
|
|
3506
|
+
'uint16array',
|
|
3507
|
+
'uint32array'
|
|
3508
|
+
].some((prop) => {
|
|
3509
|
+
return Object.hasOwn(typeSpecSet, prop);
|
|
3510
|
+
});
|
|
3511
|
+
}
|
|
3512
|
+
);
|
|
3513
|
+
structuredCloningFixed.splice(
|
|
3514
|
+
// Add after userObjects
|
|
3515
|
+
1,
|
|
3516
|
+
0,
|
|
3517
|
+
W
|
|
3518
|
+
);
|
|
3478
3519
|
const typeson = new c({
|
|
3479
3520
|
encapsulateObserver: encapsulateObserver(stateObj)
|
|
3480
|
-
}).register(
|
|
3521
|
+
}).register(structuredCloningFixed);
|
|
3481
3522
|
typeson.encapsulate(records);
|
|
3482
3523
|
// Todo (low): We might want to run async encapsulate for
|
|
3483
3524
|
// async types (and put this after Promise resolves)
|
|
@@ -3555,11 +3596,12 @@ const structuredCloning = {
|
|
|
3555
3596
|
'domexception',
|
|
3556
3597
|
'domrect',
|
|
3557
3598
|
'dompoint',
|
|
3558
|
-
'dommatrix'
|
|
3599
|
+
'dommatrix',
|
|
3600
|
+
'resurrectable'
|
|
3559
3601
|
|
|
3560
3602
|
// Ok, but will need some work and/or decisions on how to present:
|
|
3561
3603
|
// 'cryptokey',
|
|
3562
|
-
|
|
3604
|
+
// 'domquad',
|
|
3563
3605
|
// 'arraybuffer',
|
|
3564
3606
|
// 'dataview', 'imagedata', 'imagebitmap',
|
|
3565
3607
|
/*
|
|
@@ -3927,7 +3969,7 @@ const blobHTMLType = {
|
|
|
3927
3969
|
);
|
|
3928
3970
|
},
|
|
3929
3971
|
getValue ({root}) {
|
|
3930
|
-
return this.toValue(
|
|
3972
|
+
return /** @type {import('../types.js').ToValue} */ (this.toValue)(
|
|
3931
3973
|
'data:text/html,' + /** @type {SCEditorTextarea} */ (
|
|
3932
3974
|
this.getInput({root})
|
|
3933
3975
|
).sceditorInstance.val()
|
|
@@ -4400,7 +4442,9 @@ const objectReferenceType = {
|
|
|
4400
4442
|
type: 'object',
|
|
4401
4443
|
stringRegex: /^objectRef\((?:|\/[^)]*)\)$/u,
|
|
4402
4444
|
toValue (...args) {
|
|
4403
|
-
return
|
|
4445
|
+
return /** @type {import('../types.js').ToValue} */ (
|
|
4446
|
+
arrayReferenceType.toValue
|
|
4447
|
+
).apply(this, args);
|
|
4404
4448
|
},
|
|
4405
4449
|
resolveReference (...args) {
|
|
4406
4450
|
return arrayReferenceType.resolveReference?.apply(
|
|
@@ -6190,7 +6234,9 @@ const arrayType = {
|
|
|
6190
6234
|
// and object reference checking?
|
|
6191
6235
|
if (![
|
|
6192
6236
|
'checkbox', 'radio', 'file',
|
|
6193
|
-
'datetime-local'
|
|
6237
|
+
'datetime-local',
|
|
6238
|
+
// For label radio clicks
|
|
6239
|
+
undefined
|
|
6194
6240
|
].includes(target.type)) {
|
|
6195
6241
|
e.preventDefault();
|
|
6196
6242
|
}
|
|
@@ -6211,7 +6257,7 @@ const arrayType = {
|
|
|
6211
6257
|
* @this {HTMLInputElement}
|
|
6212
6258
|
*/
|
|
6213
6259
|
change () {
|
|
6214
|
-
/*
|
|
6260
|
+
/* istanbul ignore if */
|
|
6215
6261
|
if (!this.files) {
|
|
6216
6262
|
return;
|
|
6217
6263
|
}
|
|
@@ -6248,7 +6294,9 @@ const objectType = {
|
|
|
6248
6294
|
stringRegexBegin: /^\{/u,
|
|
6249
6295
|
stringRegexEnd: /^\}/u,
|
|
6250
6296
|
toValue (...args) {
|
|
6251
|
-
return
|
|
6297
|
+
return /** @type {import('../types.js').ToValue} */ (
|
|
6298
|
+
arrayType.toValue
|
|
6299
|
+
).apply(this, args);
|
|
6252
6300
|
},
|
|
6253
6301
|
getValue (...args) {
|
|
6254
6302
|
return arrayType.getValue.apply(this, args);
|
|
@@ -6340,9 +6388,13 @@ const dateType = {
|
|
|
6340
6388
|
},
|
|
6341
6389
|
getValue ({root}) {
|
|
6342
6390
|
if (this.isInvalid({root})) {
|
|
6343
|
-
return
|
|
6391
|
+
return /** @type {import('../types.js').ToValue} */ (
|
|
6392
|
+
this.toValue
|
|
6393
|
+
)('NaN').value;
|
|
6344
6394
|
}
|
|
6345
|
-
return
|
|
6395
|
+
return /** @type {import('../types.js').ToValue} */ (
|
|
6396
|
+
this.toValue
|
|
6397
|
+
)(this.getInput({root}).value).value;
|
|
6346
6398
|
},
|
|
6347
6399
|
isValueInvalid (value) {
|
|
6348
6400
|
return value && Number.isNaN(value.getTime());
|
|
@@ -6429,7 +6481,9 @@ const setType = {
|
|
|
6429
6481
|
stringRegexBegin: /^Set\(/u,
|
|
6430
6482
|
stringRegexEnd: /^\)/u,
|
|
6431
6483
|
toValue (...args) {
|
|
6432
|
-
return
|
|
6484
|
+
return /** @type {import('../types.js').ToValue} */ (
|
|
6485
|
+
arrayType.toValue
|
|
6486
|
+
).apply(this, args);
|
|
6433
6487
|
},
|
|
6434
6488
|
getValue (...args) {
|
|
6435
6489
|
return arrayType.getValue.apply(this, args);
|
|
@@ -6460,7 +6514,9 @@ const mapType = {
|
|
|
6460
6514
|
stringRegexBegin: /^Map\(/u,
|
|
6461
6515
|
stringRegexEnd: /^\)/u,
|
|
6462
6516
|
toValue (...args) {
|
|
6463
|
-
return
|
|
6517
|
+
return /** @type {import('../types.js').ToValue} */ (
|
|
6518
|
+
arrayType.toValue
|
|
6519
|
+
).apply(this, args);
|
|
6464
6520
|
},
|
|
6465
6521
|
getValue (...args) {
|
|
6466
6522
|
return arrayType.getValue.apply(this, args);
|
|
@@ -6490,7 +6546,9 @@ const undefinedType = {
|
|
|
6490
6546
|
return {value: undefined};
|
|
6491
6547
|
},
|
|
6492
6548
|
getValue () {
|
|
6493
|
-
return
|
|
6549
|
+
return /** @type {import('../types.js').ToValue} */ (
|
|
6550
|
+
this.toValue
|
|
6551
|
+
)('').value;
|
|
6494
6552
|
},
|
|
6495
6553
|
viewUI (/* {value} */) {
|
|
6496
6554
|
return ['i', {dataset: {type: 'undef'}}, ['undefined']];
|
|
@@ -6640,7 +6698,9 @@ const BooleanObjectType = {
|
|
|
6640
6698
|
return /** @type {HTMLInputElement} */ ($e(root, 'input'));
|
|
6641
6699
|
},
|
|
6642
6700
|
getValue ({root}) {
|
|
6643
|
-
return
|
|
6701
|
+
return /** @type {import('../types.js').ToValue} */ (
|
|
6702
|
+
this.toValue
|
|
6703
|
+
)(String(/** @type {HTMLInputElement} */ (
|
|
6644
6704
|
this.getInput({root})
|
|
6645
6705
|
).checked)).value;
|
|
6646
6706
|
},
|
|
@@ -6697,7 +6757,9 @@ const NumberObjectType = {
|
|
|
6697
6757
|
return /** @type {HTMLInputElement} */ ($e(root, 'input'));
|
|
6698
6758
|
},
|
|
6699
6759
|
getValue ({root}) {
|
|
6700
|
-
return
|
|
6760
|
+
return /** @type {import('../types.js').ToValue} */ (
|
|
6761
|
+
this.toValue
|
|
6762
|
+
)(this.getInput({root}).value).value;
|
|
6701
6763
|
},
|
|
6702
6764
|
setValue ({root, value}) {
|
|
6703
6765
|
this.getInput({root}).value = String(value);
|
|
@@ -6732,7 +6794,9 @@ const StringObjectType = {
|
|
|
6732
6794
|
return /** @type {HTMLTextAreaElement} */ ($e(root, 'textarea'));
|
|
6733
6795
|
},
|
|
6734
6796
|
getValue ({root}) {
|
|
6735
|
-
return
|
|
6797
|
+
return /** @type {import('../types.js').ToValue} */ (
|
|
6798
|
+
this.toValue
|
|
6799
|
+
)(this.getInput({root}).value).value;
|
|
6736
6800
|
},
|
|
6737
6801
|
setValue ({root, value}) {
|
|
6738
6802
|
this.getInput({root}).value = value;
|
|
@@ -6752,7 +6816,7 @@ const StringObjectType = {
|
|
|
6752
6816
|
};
|
|
6753
6817
|
|
|
6754
6818
|
/**
|
|
6755
|
-
* @type {import('
|
|
6819
|
+
* @type {import('../types.js').SuperTypeObject}
|
|
6756
6820
|
*/
|
|
6757
6821
|
const SpecialRealNumberSuperType = {
|
|
6758
6822
|
option: ['Special Real Number', {title: '`Infinity`, `-Infinity`, `-0`'}],
|
|
@@ -6771,7 +6835,7 @@ const SpecialRealNumberSuperType = {
|
|
|
6771
6835
|
return /** @type {HTMLSelectElement} */ ($e(root, 'select'));
|
|
6772
6836
|
},
|
|
6773
6837
|
getValue ({root}) {
|
|
6774
|
-
return this.toValue(
|
|
6838
|
+
return /** @type {import('../types.js').ToValue} */ (this.toValue)(
|
|
6775
6839
|
/** @type {Required<import('../types.js').TypeObject>} */ (
|
|
6776
6840
|
this
|
|
6777
6841
|
).getSelect({root}).value
|
|
@@ -6812,13 +6876,7 @@ const SpecialRealNumberSuperType = {
|
|
|
6812
6876
|
};
|
|
6813
6877
|
|
|
6814
6878
|
/**
|
|
6815
|
-
* @
|
|
6816
|
-
* childTypes: string[]
|
|
6817
|
-
* }} SuperTypeObject
|
|
6818
|
-
*/
|
|
6819
|
-
|
|
6820
|
-
/**
|
|
6821
|
-
* @type {SuperTypeObject}
|
|
6879
|
+
* @type {import('../types.js').SuperTypeObject}
|
|
6822
6880
|
*/
|
|
6823
6881
|
const SpecialNumberSuperType = {
|
|
6824
6882
|
option: ['Special Number', {title: '`NaN`, `Infinity`, `-Infinity`, `-0`'}],
|
|
@@ -6843,7 +6901,7 @@ const SpecialNumberSuperType = {
|
|
|
6843
6901
|
return /** @type {HTMLSelectElement} */ ($e(root, 'select'));
|
|
6844
6902
|
},
|
|
6845
6903
|
getValue ({root}) {
|
|
6846
|
-
return this.toValue(
|
|
6904
|
+
return /** @type {import('../types.js').ToValue} */ (this.toValue)(
|
|
6847
6905
|
/** @type {Required<import('../types.js').TypeObject>} */ (
|
|
6848
6906
|
this
|
|
6849
6907
|
).getSelect({root}).value
|
|
@@ -6893,7 +6951,7 @@ const errorType = {
|
|
|
6893
6951
|
toValue (s) {
|
|
6894
6952
|
const obj = JSON.parse(s);
|
|
6895
6953
|
const errObj = /** @type {{revive: import('typeson-registry').Reviver}} */ (
|
|
6896
|
-
|
|
6954
|
+
P.error
|
|
6897
6955
|
).revive(obj, {});
|
|
6898
6956
|
return {value: errObj};
|
|
6899
6957
|
},
|
|
@@ -7340,7 +7398,7 @@ if (typeof InternalError !== 'undefined') {
|
|
|
7340
7398
|
const specialErrors = [...specialErrorsMap.keys()];
|
|
7341
7399
|
|
|
7342
7400
|
/**
|
|
7343
|
-
* @type {import('
|
|
7401
|
+
* @type {import('../types.js').SuperTypeObject}
|
|
7344
7402
|
*/
|
|
7345
7403
|
const errorsSpecialType = {
|
|
7346
7404
|
option: ['Special errors'],
|
|
@@ -7361,7 +7419,7 @@ const errorsSpecialType = {
|
|
|
7361
7419
|
|
|
7362
7420
|
const obj = JSON.parse(s);
|
|
7363
7421
|
const errObj = /** @type {{revive: import('typeson-registry').Reviver}} */ (
|
|
7364
|
-
|
|
7422
|
+
E[errorClass.toLowerCase()]
|
|
7365
7423
|
).revive(obj, {});
|
|
7366
7424
|
return {value: errObj};
|
|
7367
7425
|
},
|
|
@@ -8145,9 +8203,10 @@ async function getUserMedia (constraints) {
|
|
|
8145
8203
|
let stream = null;
|
|
8146
8204
|
try {
|
|
8147
8205
|
stream = await navigator.mediaDevices.getUserMedia(constraints);
|
|
8148
|
-
/* c8 ignore next 4 */
|
|
8149
8206
|
} catch (err) {
|
|
8207
|
+
/* istanbul ignore next */
|
|
8150
8208
|
console.error('err', err);
|
|
8209
|
+
/* istanbul ignore next */
|
|
8151
8210
|
return null;
|
|
8152
8211
|
}
|
|
8153
8212
|
return stream;
|
|
@@ -8163,8 +8222,8 @@ async function startScreenCapture (displayMediaOptions) {
|
|
|
8163
8222
|
try {
|
|
8164
8223
|
captureStream =
|
|
8165
8224
|
await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);
|
|
8166
|
-
/* c8 ignore next 3 */
|
|
8167
8225
|
} catch (err) {
|
|
8226
|
+
/* istanbul ignore next */
|
|
8168
8227
|
console.error(`Error: ${err}`);
|
|
8169
8228
|
}
|
|
8170
8229
|
return captureStream;
|
|
@@ -8299,7 +8358,7 @@ function binaryButton$1 (value, editable) {
|
|
|
8299
8358
|
['textarea', {
|
|
8300
8359
|
class: 'view-binary'
|
|
8301
8360
|
}, [
|
|
8302
|
-
/*
|
|
8361
|
+
/* istanbul ignore next */
|
|
8303
8362
|
/** @type {string|null} */ (reader.result) ?? ''
|
|
8304
8363
|
]]
|
|
8305
8364
|
])]
|
|
@@ -8307,12 +8366,13 @@ function binaryButton$1 (value, editable) {
|
|
|
8307
8366
|
});
|
|
8308
8367
|
});
|
|
8309
8368
|
// Seems not feasible to accurately simulate
|
|
8310
|
-
/* c8 ignore next 10 */
|
|
8311
8369
|
reader.addEventListener(
|
|
8312
8370
|
'error',
|
|
8313
|
-
/*
|
|
8371
|
+
/* istanbul ignore next */
|
|
8314
8372
|
async function () {
|
|
8373
|
+
/* istanbul ignore next */
|
|
8315
8374
|
console.error(reader.error);
|
|
8375
|
+
/* istanbul ignore next */
|
|
8316
8376
|
await dialogs.alert(/** @type {string} */ (
|
|
8317
8377
|
/** @type {DOMException} */ (reader.error).message
|
|
8318
8378
|
));
|
|
@@ -8391,18 +8451,19 @@ const fileType = {
|
|
|
8391
8451
|
'Text source',
|
|
8392
8452
|
['br'],
|
|
8393
8453
|
['textarea', {class: 'view-text'}, [
|
|
8394
|
-
/*
|
|
8454
|
+
/* istanbul ignore next */
|
|
8395
8455
|
/** @type {string|null} */ (reader.result) ?? ''
|
|
8396
8456
|
]]
|
|
8397
8457
|
]));
|
|
8398
8458
|
});
|
|
8399
8459
|
// Seems not feasible to accurately simulate
|
|
8400
|
-
/* c8 ignore next 10 */
|
|
8401
8460
|
reader.addEventListener(
|
|
8402
8461
|
'error',
|
|
8403
|
-
/*
|
|
8462
|
+
/* istanbul ignore next */
|
|
8404
8463
|
function () {
|
|
8464
|
+
/* istanbul ignore next */
|
|
8405
8465
|
console.error(reader.error);
|
|
8466
|
+
/* istanbul ignore next */
|
|
8406
8467
|
div.append(
|
|
8407
8468
|
/** @type {DOMException} */ (reader.error).message
|
|
8408
8469
|
);
|
|
@@ -8715,7 +8776,7 @@ const fileType = {
|
|
|
8715
8776
|
* @this {HTMLInputElement}
|
|
8716
8777
|
*/
|
|
8717
8778
|
change () {
|
|
8718
|
-
/*
|
|
8779
|
+
/* istanbul ignore if -- TS */
|
|
8719
8780
|
if (!this.files) {
|
|
8720
8781
|
return;
|
|
8721
8782
|
}
|
|
@@ -8863,7 +8924,7 @@ const fileType = {
|
|
|
8863
8924
|
|
|
8864
8925
|
if (constraints) {
|
|
8865
8926
|
const mediaStream = await getUserMedia(constraints);
|
|
8866
|
-
/*
|
|
8927
|
+
/* istanbul ignore if */
|
|
8867
8928
|
if (!mediaStream) {
|
|
8868
8929
|
await dialogs.alert('Error getting user media');
|
|
8869
8930
|
return;
|
|
@@ -8911,7 +8972,7 @@ const fileType = {
|
|
|
8911
8972
|
const mediaStream = await startScreenCapture(
|
|
8912
8973
|
screenShareConstraints
|
|
8913
8974
|
);
|
|
8914
|
-
/*
|
|
8975
|
+
/* istanbul ignore if */
|
|
8915
8976
|
if (!mediaStream) {
|
|
8916
8977
|
await dialogs.alert('Error getting user media');
|
|
8917
8978
|
return;
|
|
@@ -8994,7 +9055,7 @@ const fileType = {
|
|
|
8994
9055
|
'video.previewMedia'
|
|
8995
9056
|
));
|
|
8996
9057
|
|
|
8997
|
-
/*
|
|
9058
|
+
/* istanbul ignore if */
|
|
8998
9059
|
if (!previewMedia.srcObject) {
|
|
8999
9060
|
dialogs.alert('No stream found to record');
|
|
9000
9061
|
return;
|
|
@@ -9027,7 +9088,7 @@ const fileType = {
|
|
|
9027
9088
|
|
|
9028
9089
|
try {
|
|
9029
9090
|
mediaRecorder.start();
|
|
9030
|
-
/*
|
|
9091
|
+
/* istanbul ignore if */
|
|
9031
9092
|
} catch (err) {
|
|
9032
9093
|
dialogs.alert('Error starting media recorder');
|
|
9033
9094
|
return;
|
|
@@ -9167,7 +9228,7 @@ const fileType = {
|
|
|
9167
9228
|
($e(videoContainer, 'img.photo'));
|
|
9168
9229
|
|
|
9169
9230
|
canvas.toBlob((blob) => {
|
|
9170
|
-
/*
|
|
9231
|
+
/* istanbul ignore if */
|
|
9171
9232
|
if (!blob) {
|
|
9172
9233
|
dialogs.alert('Error converting canvas to Blob');
|
|
9173
9234
|
return;
|
|
@@ -9284,7 +9345,9 @@ const filelistType = {
|
|
|
9284
9345
|
stringRegexEnd: /^\)/u,
|
|
9285
9346
|
|
|
9286
9347
|
toValue (...args) {
|
|
9287
|
-
return
|
|
9348
|
+
return /** @type {import('../types.js').ToValue} */ (
|
|
9349
|
+
arrayType.toValue
|
|
9350
|
+
).apply(this, args);
|
|
9288
9351
|
},
|
|
9289
9352
|
getValue (...args) {
|
|
9290
9353
|
return arrayType.getValue.apply(this, args);
|
|
@@ -9411,7 +9474,7 @@ function binaryButton (value, editable) {
|
|
|
9411
9474
|
['textarea', {
|
|
9412
9475
|
class: 'view-binary'
|
|
9413
9476
|
}, [
|
|
9414
|
-
/*
|
|
9477
|
+
/* istanbul ignore next */
|
|
9415
9478
|
/** @type {string|null} */ (reader.result) ?? ''
|
|
9416
9479
|
]]
|
|
9417
9480
|
])]
|
|
@@ -9419,12 +9482,13 @@ function binaryButton (value, editable) {
|
|
|
9419
9482
|
});
|
|
9420
9483
|
});
|
|
9421
9484
|
// Seems not feasible to accurately simulate
|
|
9422
|
-
/* c8 ignore next 10 */
|
|
9423
9485
|
reader.addEventListener(
|
|
9424
9486
|
'error',
|
|
9425
|
-
/*
|
|
9487
|
+
/* istanbul ignore next */
|
|
9426
9488
|
async function () {
|
|
9489
|
+
/* istanbul ignore next */
|
|
9427
9490
|
console.error(reader.error);
|
|
9491
|
+
/* istanbul ignore next */
|
|
9428
9492
|
await dialogs.alert(/** @type {string} */ (
|
|
9429
9493
|
/** @type {DOMException} */ (reader.error).message
|
|
9430
9494
|
));
|
|
@@ -9492,18 +9556,19 @@ const blobType = {
|
|
|
9492
9556
|
'Text source',
|
|
9493
9557
|
['br'],
|
|
9494
9558
|
['textarea', {class: 'view-text'}, [
|
|
9495
|
-
/*
|
|
9559
|
+
/* istanbul ignore next */
|
|
9496
9560
|
/** @type {string|null} */ (reader.result) ?? ''
|
|
9497
9561
|
]]
|
|
9498
9562
|
]));
|
|
9499
9563
|
});
|
|
9500
9564
|
// Seems not feasible to accurately simulate
|
|
9501
|
-
/* c8 ignore next 10 */
|
|
9502
9565
|
reader.addEventListener(
|
|
9503
9566
|
'error',
|
|
9504
|
-
/*
|
|
9567
|
+
/* istanbul ignore next */
|
|
9505
9568
|
function () {
|
|
9569
|
+
/* istanbul ignore next */
|
|
9506
9570
|
console.error(reader.error);
|
|
9571
|
+
/* istanbul ignore next */
|
|
9507
9572
|
div.append(
|
|
9508
9573
|
/** @type {DOMException} */ (reader.error).message
|
|
9509
9574
|
);
|
|
@@ -9680,7 +9745,7 @@ const blobType = {
|
|
|
9680
9745
|
blob
|
|
9681
9746
|
).slice(8, -1) === 'Blob'
|
|
9682
9747
|
? /** @type {Blob} */ (blob)
|
|
9683
|
-
/*
|
|
9748
|
+
/* istanbul ignore next */
|
|
9684
9749
|
: undefined;
|
|
9685
9750
|
}
|
|
9686
9751
|
}
|
|
@@ -9750,7 +9815,7 @@ const blobType = {
|
|
|
9750
9815
|
* @this {HTMLInputElement}
|
|
9751
9816
|
*/
|
|
9752
9817
|
change () {
|
|
9753
|
-
/*
|
|
9818
|
+
/* istanbul ignore if -- TS */
|
|
9754
9819
|
if (!this.files) {
|
|
9755
9820
|
return;
|
|
9756
9821
|
}
|
|
@@ -9902,7 +9967,7 @@ const blobType = {
|
|
|
9902
9967
|
|
|
9903
9968
|
if (constraints) {
|
|
9904
9969
|
const mediaStream = await getUserMedia(constraints);
|
|
9905
|
-
/*
|
|
9970
|
+
/* istanbul ignore if */
|
|
9906
9971
|
if (!mediaStream) {
|
|
9907
9972
|
await dialogs.alert('Error getting user media');
|
|
9908
9973
|
return;
|
|
@@ -9950,7 +10015,7 @@ const blobType = {
|
|
|
9950
10015
|
const mediaStream = await startScreenCapture(
|
|
9951
10016
|
screenShareConstraints
|
|
9952
10017
|
);
|
|
9953
|
-
/*
|
|
10018
|
+
/* istanbul ignore if */
|
|
9954
10019
|
if (!mediaStream) {
|
|
9955
10020
|
await dialogs.alert('Error getting user media');
|
|
9956
10021
|
return;
|
|
@@ -10033,7 +10098,7 @@ const blobType = {
|
|
|
10033
10098
|
'video.previewMedia'
|
|
10034
10099
|
));
|
|
10035
10100
|
|
|
10036
|
-
/*
|
|
10101
|
+
/* istanbul ignore if */
|
|
10037
10102
|
if (!previewMedia.srcObject) {
|
|
10038
10103
|
dialogs.alert('No stream found to record');
|
|
10039
10104
|
return;
|
|
@@ -10066,9 +10131,11 @@ const blobType = {
|
|
|
10066
10131
|
|
|
10067
10132
|
try {
|
|
10068
10133
|
mediaRecorder.start();
|
|
10069
|
-
/*
|
|
10134
|
+
/* istanbul ignore next */
|
|
10070
10135
|
} catch (err) {
|
|
10136
|
+
/* istanbul ignore next */
|
|
10071
10137
|
dialogs.alert('Error starting media recorder');
|
|
10138
|
+
/* istanbul ignore next */
|
|
10072
10139
|
return;
|
|
10073
10140
|
}
|
|
10074
10141
|
mediaRecorder.addEventListener('stop', () => {
|
|
@@ -10199,7 +10266,7 @@ const blobType = {
|
|
|
10199
10266
|
($e(videoContainer, 'img.photo'));
|
|
10200
10267
|
|
|
10201
10268
|
canvas.toBlob((blob) => {
|
|
10202
|
-
/*
|
|
10269
|
+
/* istanbul ignore if */
|
|
10203
10270
|
if (!blob) {
|
|
10204
10271
|
dialogs.alert('Error converting canvas to Blob');
|
|
10205
10272
|
return;
|
|
@@ -10418,18 +10485,30 @@ const domexceptionType = {
|
|
|
10418
10485
|
}
|
|
10419
10486
|
};
|
|
10420
10487
|
|
|
10488
|
+
let idx$2 = 0;
|
|
10489
|
+
|
|
10421
10490
|
/**
|
|
10422
|
-
* @type {import('../types.js').
|
|
10491
|
+
* @type {import('../types.js').SuperTypeObject}
|
|
10423
10492
|
*/
|
|
10424
10493
|
const domrectType = {
|
|
10425
10494
|
option: ['DOMRect'],
|
|
10426
|
-
|
|
10427
|
-
|
|
10495
|
+
childTypes: ['domrectreadonly'],
|
|
10496
|
+
stringRegex: /^(?<domRectClass>DOMRect|DOMRectReadOnly)\((?<innerContent>.*)\)$/u,
|
|
10497
|
+
toValue (s, rootInfo) {
|
|
10498
|
+
const {groups: {
|
|
10499
|
+
domRectClass
|
|
10500
|
+
/* istanbul ignore next -- Should always be found */
|
|
10501
|
+
} = {}} = /** @type {RegExpMatchArray} */ (
|
|
10502
|
+
/** @type {import('../types.js').RootInfo} */ (rootInfo).match
|
|
10503
|
+
);
|
|
10428
10504
|
const {x, y, width, height} = JSON.parse(s);
|
|
10429
|
-
return {
|
|
10505
|
+
return {
|
|
10506
|
+
value: new (
|
|
10507
|
+
domRectClass === 'DOMRect' ? DOMRect : DOMRectReadOnly
|
|
10508
|
+
)(x, y, width, height)};
|
|
10430
10509
|
},
|
|
10431
10510
|
getInput ({root}) {
|
|
10432
|
-
return /** @type {HTMLInputElement} */ ($e(root, 'input'));
|
|
10511
|
+
return /** @type {HTMLInputElement} */ ($e(root, 'input:not([type])'));
|
|
10433
10512
|
},
|
|
10434
10513
|
setValue ({root, value}) {
|
|
10435
10514
|
/** @type {HTMLInputElement} */ (
|
|
@@ -10444,6 +10523,16 @@ const domrectType = {
|
|
|
10444
10523
|
/** @type {HTMLInputElement} */ (
|
|
10445
10524
|
$e(root, '.height')
|
|
10446
10525
|
).value = String(value.height);
|
|
10526
|
+
|
|
10527
|
+
if (toStringTag(value) === 'DOMRect') {
|
|
10528
|
+
/** @type {HTMLInputElement} */ (
|
|
10529
|
+
$e(root, '.domrect-readonly-readwrite')
|
|
10530
|
+
).checked = true;
|
|
10531
|
+
} else {
|
|
10532
|
+
/** @type {HTMLInputElement} */ (
|
|
10533
|
+
$e(root, '.domrect-readonly-readonly')
|
|
10534
|
+
).checked = true;
|
|
10535
|
+
}
|
|
10447
10536
|
},
|
|
10448
10537
|
getValue ({root}) {
|
|
10449
10538
|
const x = Number(/** @type {HTMLInputElement} */ (
|
|
@@ -10458,11 +10547,16 @@ const domrectType = {
|
|
|
10458
10547
|
const height = Number(/** @type {HTMLInputElement} */ (
|
|
10459
10548
|
$e(root, '.height')
|
|
10460
10549
|
).value);
|
|
10461
|
-
|
|
10550
|
+
|
|
10551
|
+
const isReadWrite = /** @type {HTMLInputElement} */ (
|
|
10552
|
+
$e(root, '.domrect-readonly-readwrite')
|
|
10553
|
+
).checked;
|
|
10554
|
+
return new (isReadWrite ? DOMRect : DOMRectReadOnly)(x, y, width, height);
|
|
10462
10555
|
},
|
|
10463
10556
|
viewUI ({value}) {
|
|
10557
|
+
const isReadWrite = toStringTag(value) === 'DOMRect';
|
|
10464
10558
|
return ['div', {dataset: {type: 'domrect'}}, [
|
|
10465
|
-
['b', {class: 'emphasis'}, ['DOMRect']],
|
|
10559
|
+
['b', {class: 'emphasis'}, [isReadWrite ? 'DOMRect' : 'DOMRectReadOnly']],
|
|
10466
10560
|
['br'],
|
|
10467
10561
|
['b', ['x ']],
|
|
10468
10562
|
value.x,
|
|
@@ -10483,8 +10577,32 @@ const domrectType = {
|
|
|
10483
10577
|
width: '',
|
|
10484
10578
|
height: ''
|
|
10485
10579
|
}}) {
|
|
10580
|
+
idx$2++;
|
|
10486
10581
|
// eslint-disable-next-line @stylistic/max-len -- Long
|
|
10487
10582
|
return ['div', {dataset: {type: 'domrect'}}, /** @type {import('jamilih').JamilihChildren} */ ([
|
|
10583
|
+
['div', [
|
|
10584
|
+
['label', [
|
|
10585
|
+
['input', {
|
|
10586
|
+
type: 'radio',
|
|
10587
|
+
class: 'domrect-readonly-readwrite',
|
|
10588
|
+
name: `${typeNamespace}-domrect-readonly-${idx$2}`,
|
|
10589
|
+
value: 'readwrite',
|
|
10590
|
+
checked: toStringTag(value) !== 'DOMRectReadOnly'
|
|
10591
|
+
}],
|
|
10592
|
+
'Readwrite'
|
|
10593
|
+
]],
|
|
10594
|
+
' ',
|
|
10595
|
+
['label', [
|
|
10596
|
+
['input', {
|
|
10597
|
+
type: 'radio',
|
|
10598
|
+
class: 'domrect-readonly-readonly',
|
|
10599
|
+
name: `${typeNamespace}-domrect-readonly-${idx$2}`,
|
|
10600
|
+
value: 'readonly',
|
|
10601
|
+
checked: toStringTag(value) === 'DOMRectReadOnly'
|
|
10602
|
+
}],
|
|
10603
|
+
'Read-only'
|
|
10604
|
+
]]
|
|
10605
|
+
]],
|
|
10488
10606
|
['label', [
|
|
10489
10607
|
'x: ',
|
|
10490
10608
|
['input', {
|
|
@@ -10520,18 +10638,29 @@ const domrectType = {
|
|
|
10520
10638
|
}
|
|
10521
10639
|
};
|
|
10522
10640
|
|
|
10641
|
+
let idx$1 = 0;
|
|
10642
|
+
|
|
10523
10643
|
/**
|
|
10524
|
-
* @type {import('../types.js').
|
|
10644
|
+
* @type {import('../types.js').SuperTypeObject}
|
|
10525
10645
|
*/
|
|
10526
10646
|
const dompointType = {
|
|
10527
10647
|
option: ['DOMPoint'],
|
|
10528
|
-
|
|
10529
|
-
|
|
10648
|
+
childTypes: ['dompointreadonly'],
|
|
10649
|
+
stringRegex: /^(?<domPointClass>DOMPoint|DOMPointReadOnly)\((?<innerContent>.*)\)$/u,
|
|
10650
|
+
toValue (s, rootInfo) {
|
|
10651
|
+
const {groups: {
|
|
10652
|
+
domPointClass
|
|
10653
|
+
/* istanbul ignore next -- Should always be found */
|
|
10654
|
+
} = {}} = /** @type {RegExpMatchArray} */ (
|
|
10655
|
+
/** @type {import('../types.js').RootInfo} */ (rootInfo).match
|
|
10656
|
+
);
|
|
10530
10657
|
const {x, y, z, w} = JSON.parse(s);
|
|
10531
|
-
return {value: new
|
|
10658
|
+
return {value: new (
|
|
10659
|
+
domPointClass === 'DOMPoint' ? DOMPoint : DOMPointReadOnly
|
|
10660
|
+
)(x, y, z, w)};
|
|
10532
10661
|
},
|
|
10533
10662
|
getInput ({root}) {
|
|
10534
|
-
return /** @type {HTMLInputElement} */ ($e(root, 'input'));
|
|
10663
|
+
return /** @type {HTMLInputElement} */ ($e(root, 'input:not([type])'));
|
|
10535
10664
|
},
|
|
10536
10665
|
setValue ({root, value}) {
|
|
10537
10666
|
/** @type {HTMLInputElement} */ (
|
|
@@ -10546,6 +10675,16 @@ const dompointType = {
|
|
|
10546
10675
|
/** @type {HTMLInputElement} */ (
|
|
10547
10676
|
$e(root, '.w')
|
|
10548
10677
|
).value = String(value.w);
|
|
10678
|
+
|
|
10679
|
+
if (toStringTag(value) === 'DOMPoint') {
|
|
10680
|
+
/** @type {HTMLInputElement} */ (
|
|
10681
|
+
$e(root, '.dompoint-readonly-readwrite')
|
|
10682
|
+
).checked = true;
|
|
10683
|
+
} else {
|
|
10684
|
+
/** @type {HTMLInputElement} */ (
|
|
10685
|
+
$e(root, '.dompoint-readonly-readonly')
|
|
10686
|
+
).checked = true;
|
|
10687
|
+
}
|
|
10549
10688
|
},
|
|
10550
10689
|
getValue ({root}) {
|
|
10551
10690
|
const x = Number(/** @type {HTMLInputElement} */ (
|
|
@@ -10560,11 +10699,18 @@ const dompointType = {
|
|
|
10560
10699
|
const w = Number(/** @type {HTMLInputElement} */ (
|
|
10561
10700
|
$e(root, '.w')
|
|
10562
10701
|
).value);
|
|
10563
|
-
|
|
10702
|
+
|
|
10703
|
+
const isReadWrite = /** @type {HTMLInputElement} */ (
|
|
10704
|
+
$e(root, '.dompoint-readonly-readwrite')
|
|
10705
|
+
).checked;
|
|
10706
|
+
return new (isReadWrite ? DOMPoint : DOMPointReadOnly)(x, y, z, w);
|
|
10564
10707
|
},
|
|
10565
10708
|
viewUI ({value}) {
|
|
10709
|
+
const isReadWrite = toStringTag(value) === 'DOMPoint';
|
|
10566
10710
|
return ['div', {dataset: {type: 'dompoint'}}, [
|
|
10567
|
-
['b', {class: 'emphasis'}, [
|
|
10711
|
+
['b', {class: 'emphasis'}, [
|
|
10712
|
+
isReadWrite ? 'DOMPoint' : 'DOMPointReadOnly'
|
|
10713
|
+
]],
|
|
10568
10714
|
['br'],
|
|
10569
10715
|
['b', ['x ']],
|
|
10570
10716
|
value.x,
|
|
@@ -10585,8 +10731,32 @@ const dompointType = {
|
|
|
10585
10731
|
z: '',
|
|
10586
10732
|
w: ''
|
|
10587
10733
|
}}) {
|
|
10734
|
+
idx$1++;
|
|
10588
10735
|
// eslint-disable-next-line @stylistic/max-len -- Long
|
|
10589
10736
|
return ['div', {dataset: {type: 'dompoint'}}, /** @type {import('jamilih').JamilihChildren} */ ([
|
|
10737
|
+
['div', [
|
|
10738
|
+
['label', [
|
|
10739
|
+
['input', {
|
|
10740
|
+
type: 'radio',
|
|
10741
|
+
class: 'dompoint-readonly-readwrite',
|
|
10742
|
+
name: `${typeNamespace}-dompoint-readonly-${idx$1}`,
|
|
10743
|
+
value: 'readwrite',
|
|
10744
|
+
checked: toStringTag(value) !== 'DOMPointReadOnly'
|
|
10745
|
+
}],
|
|
10746
|
+
'Readwrite'
|
|
10747
|
+
]],
|
|
10748
|
+
' ',
|
|
10749
|
+
['label', [
|
|
10750
|
+
['input', {
|
|
10751
|
+
type: 'radio',
|
|
10752
|
+
class: 'dompoint-readonly-readonly',
|
|
10753
|
+
name: `${typeNamespace}-dompoint-readonly-${idx$1}`,
|
|
10754
|
+
value: 'readonly',
|
|
10755
|
+
checked: toStringTag(value) === 'DOMPointReadOnly'
|
|
10756
|
+
}],
|
|
10757
|
+
'Read-only'
|
|
10758
|
+
]]
|
|
10759
|
+
]],
|
|
10590
10760
|
['label', [
|
|
10591
10761
|
'x: ',
|
|
10592
10762
|
['input', {
|
|
@@ -10625,17 +10795,28 @@ const dompointType = {
|
|
|
10625
10795
|
let idx = 0;
|
|
10626
10796
|
|
|
10627
10797
|
/**
|
|
10628
|
-
* @type {import('../types.js').
|
|
10798
|
+
* @type {import('../types.js').SuperTypeObject}
|
|
10629
10799
|
*/
|
|
10630
10800
|
const dommatrixType = {
|
|
10631
10801
|
option: ['DOMMatrix'],
|
|
10632
|
-
|
|
10633
|
-
|
|
10802
|
+
childTypes: ['dommatrixreadonly'],
|
|
10803
|
+
stringRegex: /^(?<domMatrixClass>DOMMatrix|DOMMatrixReadOnly)\((?<innerContent>.*)\)$/u,
|
|
10804
|
+
toValue (s, rootInfo) {
|
|
10805
|
+
const {groups: {
|
|
10806
|
+
domMatrixClass
|
|
10807
|
+
/* istanbul ignore next -- Should always be found */
|
|
10808
|
+
} = {}} = /** @type {RegExpMatchArray} */ (
|
|
10809
|
+
/** @type {import('../types.js').RootInfo} */ (rootInfo).match
|
|
10810
|
+
);
|
|
10634
10811
|
const o = JSON.parse(s);
|
|
10635
10812
|
|
|
10813
|
+
const DOMMatrixClass = domMatrixClass === 'DOMMatrix'
|
|
10814
|
+
? DOMMatrix
|
|
10815
|
+
: DOMMatrixReadOnly;
|
|
10816
|
+
|
|
10636
10817
|
const dommatrix = Object.hasOwn(o, 'a')
|
|
10637
|
-
? new
|
|
10638
|
-
: new
|
|
10818
|
+
? new DOMMatrixClass([o.a, o.b, o.c, o.d, o.e, o.f])
|
|
10819
|
+
: new DOMMatrixClass([
|
|
10639
10820
|
o.m11, o.m12, o.m13, o.m14,
|
|
10640
10821
|
o.m21, o.m22, o.m23, o.m24,
|
|
10641
10822
|
o.m31, o.m32, o.m33, o.m34,
|
|
@@ -10645,7 +10826,7 @@ const dommatrixType = {
|
|
|
10645
10826
|
return {value: dommatrix};
|
|
10646
10827
|
},
|
|
10647
10828
|
getInput ({root}) {
|
|
10648
|
-
return /** @type {HTMLInputElement} */ ($e(root, 'input'));
|
|
10829
|
+
return /** @type {HTMLInputElement} */ ($e(root, 'input:not([type])'));
|
|
10649
10830
|
},
|
|
10650
10831
|
setValue ({root, value: o}) {
|
|
10651
10832
|
const {is2D} = o;
|
|
@@ -10731,8 +10912,23 @@ const dommatrixType = {
|
|
|
10731
10912
|
$e(root, '.m44')
|
|
10732
10913
|
).value = o.m44;
|
|
10733
10914
|
}
|
|
10915
|
+
|
|
10916
|
+
if (toStringTag(o) === 'DOMMatrix') {
|
|
10917
|
+
/** @type {HTMLInputElement} */ (
|
|
10918
|
+
$e(root, '.dommatrix-readonly-readwrite')
|
|
10919
|
+
).checked = true;
|
|
10920
|
+
} else {
|
|
10921
|
+
/** @type {HTMLInputElement} */ (
|
|
10922
|
+
$e(root, '.dommatrix-readonly-readonly')
|
|
10923
|
+
).checked = true;
|
|
10924
|
+
}
|
|
10734
10925
|
},
|
|
10735
10926
|
getValue ({root}) {
|
|
10927
|
+
const isReadWrite = /** @type {HTMLInputElement} */ (
|
|
10928
|
+
$e(root, '.dommatrix-readonly-readwrite')
|
|
10929
|
+
).checked;
|
|
10930
|
+
const DOMMatrixClass = isReadWrite ? DOMMatrix : DOMMatrixReadOnly;
|
|
10931
|
+
|
|
10736
10932
|
const aType = /** @type {HTMLInputElement} */ (
|
|
10737
10933
|
$e(root, '.a')
|
|
10738
10934
|
).value;
|
|
@@ -10754,7 +10950,7 @@ const dommatrixType = {
|
|
|
10754
10950
|
const f = Number(/** @type {HTMLInputElement} */ (
|
|
10755
10951
|
$e(root, '.f')
|
|
10756
10952
|
).value);
|
|
10757
|
-
return new
|
|
10953
|
+
return new DOMMatrixClass([a, b, c, d, e, f]);
|
|
10758
10954
|
}
|
|
10759
10955
|
|
|
10760
10956
|
const m11 = Number(/** @type {HTMLInputElement} */ (
|
|
@@ -10809,7 +11005,7 @@ const dommatrixType = {
|
|
|
10809
11005
|
$e(root, '.m44')
|
|
10810
11006
|
).value);
|
|
10811
11007
|
|
|
10812
|
-
return new
|
|
11008
|
+
return new DOMMatrixClass([
|
|
10813
11009
|
m11, m12, m13, m14,
|
|
10814
11010
|
m21, m22, m23, m24,
|
|
10815
11011
|
m31, m32, m33, m34,
|
|
@@ -10817,8 +11013,11 @@ const dommatrixType = {
|
|
|
10817
11013
|
]);
|
|
10818
11014
|
},
|
|
10819
11015
|
viewUI ({value}) {
|
|
11016
|
+
const isReadWrite = toStringTag(value) === 'DOMMatrix';
|
|
10820
11017
|
return ['div', {dataset: {type: 'dommatrix'}}, [
|
|
10821
|
-
['b', {class: 'emphasis'}, [
|
|
11018
|
+
['b', {class: 'emphasis'}, [
|
|
11019
|
+
isReadWrite ? 'DOMMatrix' : 'DOMMatrixReadOnly'
|
|
11020
|
+
]],
|
|
10822
11021
|
value.is2D
|
|
10823
11022
|
? ['div', [
|
|
10824
11023
|
['b', ['a ']],
|
|
@@ -10898,11 +11097,34 @@ const dommatrixType = {
|
|
|
10898
11097
|
const {is2D} = value;
|
|
10899
11098
|
// eslint-disable-next-line @stylistic/max-len -- Long
|
|
10900
11099
|
return ['div', {dataset: {type: 'dommatrix'}}, /** @type {import('jamilih').JamilihChildren} */ ([
|
|
11100
|
+
['div', [
|
|
11101
|
+
['label', [
|
|
11102
|
+
['input', {
|
|
11103
|
+
type: 'radio',
|
|
11104
|
+
class: 'dommatrix-readonly-readwrite',
|
|
11105
|
+
name: `${typeNamespace}-dommatrix-readonly-${idx}`,
|
|
11106
|
+
value: 'readwrite',
|
|
11107
|
+
checked: toStringTag(value) !== 'DOMMatrixReadOnly'
|
|
11108
|
+
}],
|
|
11109
|
+
'Readwrite'
|
|
11110
|
+
]],
|
|
11111
|
+
' ',
|
|
11112
|
+
['label', [
|
|
11113
|
+
['input', {
|
|
11114
|
+
type: 'radio',
|
|
11115
|
+
class: 'dommatrix-readonly-readonly',
|
|
11116
|
+
name: `${typeNamespace}-dommatrix-readonly-${idx}`,
|
|
11117
|
+
value: 'readonly',
|
|
11118
|
+
checked: toStringTag(value) === 'DOMMatrixReadOnly'
|
|
11119
|
+
}],
|
|
11120
|
+
'Read-only'
|
|
11121
|
+
]]
|
|
11122
|
+
]],
|
|
10901
11123
|
['div', {
|
|
10902
11124
|
$on: {
|
|
10903
11125
|
click (e) {
|
|
10904
11126
|
const {target} = e;
|
|
10905
|
-
/*
|
|
11127
|
+
/* istanbul ignore if */
|
|
10906
11128
|
if (/** @type {HTMLInputElement} */ (target).type !== 'radio') {
|
|
10907
11129
|
return;
|
|
10908
11130
|
}
|
|
@@ -10977,6 +11199,89 @@ const dommatrixType = {
|
|
|
10977
11199
|
}
|
|
10978
11200
|
};
|
|
10979
11201
|
|
|
11202
|
+
/**
|
|
11203
|
+
* @type {import('../types.js').TypeObject}
|
|
11204
|
+
*/
|
|
11205
|
+
const noneditableType = {
|
|
11206
|
+
// Ideally, we would remove the option,
|
|
11207
|
+
// but edit forms currently need a pull-down option
|
|
11208
|
+
option: ['Non-editable'],
|
|
11209
|
+
getInput ({root}) {
|
|
11210
|
+
return /** @type {HTMLButtonElement} */ ($e(root, 'button'));
|
|
11211
|
+
},
|
|
11212
|
+
setValue ({root, value}) {
|
|
11213
|
+
/** @type {HTMLButtonElement & {$value: any}} */ (
|
|
11214
|
+
this.getInput({root})
|
|
11215
|
+
).$value = value;
|
|
11216
|
+
/** @type {HTMLSpanElement} */ (
|
|
11217
|
+
$e(root, '.stringTag')
|
|
11218
|
+
).textContent = value === undefined
|
|
11219
|
+
? '(None)'
|
|
11220
|
+
: toStringTag(value);
|
|
11221
|
+
},
|
|
11222
|
+
getValue ({root}) {
|
|
11223
|
+
return /** @type {HTMLButtonElement & {$value: any}} */ (
|
|
11224
|
+
this.getInput({root})
|
|
11225
|
+
).$value;
|
|
11226
|
+
},
|
|
11227
|
+
validate ({root}) {
|
|
11228
|
+
const val = /** @type {HTMLButtonElement & {$value: any}} */ (
|
|
11229
|
+
this.getInput({root})
|
|
11230
|
+
).$value;
|
|
11231
|
+
return {
|
|
11232
|
+
message: 'The non-editable type is only for passing on ' +
|
|
11233
|
+
'pre-existing content that is unknown or currently unsupported',
|
|
11234
|
+
valid: val !== undefined
|
|
11235
|
+
};
|
|
11236
|
+
},
|
|
11237
|
+
viewUI ({value}) {
|
|
11238
|
+
return ['div', {dataset: {type: 'resurrectable'}}, [
|
|
11239
|
+
['b', {class: 'emphasis'}, ['Non-editable']],
|
|
11240
|
+
['span', {
|
|
11241
|
+
title: 'There is no current support for editing this element\'s ' +
|
|
11242
|
+
'type, but its contents will be passed on transparently.'
|
|
11243
|
+
}, ['?']],
|
|
11244
|
+
['b', ['String tag: ']],
|
|
11245
|
+
toStringTag(value)
|
|
11246
|
+
]];
|
|
11247
|
+
},
|
|
11248
|
+
editUI ({typeNamespace, value}) {
|
|
11249
|
+
return ['div', {dataset: {type: 'resurrectable'}}, [
|
|
11250
|
+
['a', {
|
|
11251
|
+
// eslint-disable-next-line no-script-url -- Safe
|
|
11252
|
+
href: 'javascript:void(0)',
|
|
11253
|
+
$on: {
|
|
11254
|
+
click (e) {
|
|
11255
|
+
e.preventDefault();
|
|
11256
|
+
}
|
|
11257
|
+
},
|
|
11258
|
+
title: 'There is no current support for editing this element\'s ' +
|
|
11259
|
+
'type, but its contents will be passed on transparently.'
|
|
11260
|
+
}, ['?']],
|
|
11261
|
+
' ',
|
|
11262
|
+
['button', {
|
|
11263
|
+
$on: {
|
|
11264
|
+
click (e) {
|
|
11265
|
+
e.preventDefault();
|
|
11266
|
+
console.log(/** @type {HTMLButtonElement & {$value: any}} */ (
|
|
11267
|
+
this
|
|
11268
|
+
).$value);
|
|
11269
|
+
}
|
|
11270
|
+
},
|
|
11271
|
+
name: `${typeNamespace}-resurrectable`,
|
|
11272
|
+
$custom: {
|
|
11273
|
+
$value: value
|
|
11274
|
+
}
|
|
11275
|
+
}, [
|
|
11276
|
+
'Non-editable'
|
|
11277
|
+
]],
|
|
11278
|
+
['br'],
|
|
11279
|
+
['b', ['String tag: ']],
|
|
11280
|
+
['span', {class: 'stringTag'}, [value ? toStringTag(value) : '(None)']]
|
|
11281
|
+
]];
|
|
11282
|
+
}
|
|
11283
|
+
};
|
|
11284
|
+
|
|
10980
11285
|
/**
|
|
10981
11286
|
* Utility to retrieve the property value given a legend element.
|
|
10982
11287
|
* @param {HTMLLegendElement} legend
|
|
@@ -11201,6 +11506,16 @@ const getPropertyValueFromLegend = (legend) => {
|
|
|
11201
11506
|
* ) => void} TypeObjectSetValue
|
|
11202
11507
|
*/
|
|
11203
11508
|
|
|
11509
|
+
/**
|
|
11510
|
+
* @typedef {(
|
|
11511
|
+
* s: string, info?: RootInfo
|
|
11512
|
+
* ) => {
|
|
11513
|
+
* value?: StructuredCloneValue,
|
|
11514
|
+
* remnant?: string,
|
|
11515
|
+
* assign?: false
|
|
11516
|
+
* }} ToValue
|
|
11517
|
+
*/
|
|
11518
|
+
|
|
11204
11519
|
/**
|
|
11205
11520
|
* @typedef {object} TypeObject
|
|
11206
11521
|
* @property {[
|
|
@@ -11230,13 +11545,7 @@ const getPropertyValueFromLegend = (legend) => {
|
|
|
11230
11545
|
* check whether this subtype matches
|
|
11231
11546
|
* @property {string} [superType] The greater fundamental type to which
|
|
11232
11547
|
* the type belongs
|
|
11233
|
-
* @property {
|
|
11234
|
-
* s: string, info?: RootInfo
|
|
11235
|
-
* ) => {
|
|
11236
|
-
* value?: StructuredCloneValue,
|
|
11237
|
-
* remnant?: string,
|
|
11238
|
-
* assign?: false
|
|
11239
|
-
* }} toValue Converts from string to value. May use
|
|
11548
|
+
* @property {ToValue} [toValue] Converts from string to value. May use
|
|
11240
11549
|
* `stringRegex` to find components.
|
|
11241
11550
|
* @property {(info: {
|
|
11242
11551
|
* root: HTMLDivElement,
|
|
@@ -11305,9 +11614,15 @@ const getPropertyValueFromLegend = (legend) => {
|
|
|
11305
11614
|
* "int8array"|"uint8array"|"uint8clampedarray"|"int16array"|"uint16array"|
|
|
11306
11615
|
* "int32array"|"uint32array"|"float32array"|"float64array"|"ValidDate"|
|
|
11307
11616
|
* "arrayNonindexKeys"|"error"|"errors"|"blob"|"domexception"|"domrect"|
|
|
11308
|
-
* "dompoint"|"dommatrix"} AvailableType
|
|
11617
|
+
* "dompoint"|"dommatrix"|"resurrectable"} AvailableType
|
|
11309
11618
|
*/
|
|
11310
11619
|
|
|
11620
|
+
/**
|
|
11621
|
+
* @typedef {TypeObject & {
|
|
11622
|
+
* childTypes: string[]
|
|
11623
|
+
* }} SuperTypeObject
|
|
11624
|
+
*/
|
|
11625
|
+
|
|
11311
11626
|
/**
|
|
11312
11627
|
*
|
|
11313
11628
|
*/
|
|
@@ -11371,6 +11686,8 @@ class Types {
|
|
|
11371
11686
|
dompoint: dompointType,
|
|
11372
11687
|
dommatrix: dommatrixType,
|
|
11373
11688
|
|
|
11689
|
+
resurrectable: noneditableType,
|
|
11690
|
+
|
|
11374
11691
|
arraybuffer: {
|
|
11375
11692
|
option: ['ArrayBuffer']
|
|
11376
11693
|
},
|
|
@@ -11526,10 +11843,13 @@ class Types {
|
|
|
11526
11843
|
(Types.getTypeForRoot(root))
|
|
11527
11844
|
]
|
|
11528
11845
|
);
|
|
11529
|
-
// Ensure `stateObj` remains a reference
|
|
11846
|
+
// Ensure `stateObj` remains a reference if present
|
|
11530
11847
|
return typeObject.getValue({
|
|
11531
11848
|
root,
|
|
11532
|
-
|
|
11849
|
+
/* istanbul ignore next -- Guard */
|
|
11850
|
+
stateObj: stateObj ?? {
|
|
11851
|
+
types: this
|
|
11852
|
+
},
|
|
11533
11853
|
currentPath
|
|
11534
11854
|
});
|
|
11535
11855
|
}
|
|
@@ -11571,11 +11891,12 @@ class Types {
|
|
|
11571
11891
|
|
|
11572
11892
|
/** @type {GetOptionForType} */
|
|
11573
11893
|
getOptionForType (type) {
|
|
11894
|
+
const availableType = /** @type {TypeObject} */ (
|
|
11895
|
+
this.availableTypes[type]
|
|
11896
|
+
);
|
|
11574
11897
|
/** @type {[string, {value?: AvailableType, title?: string}?]} */
|
|
11575
11898
|
const optInfo = [
|
|
11576
|
-
...
|
|
11577
|
-
this.availableTypes[type]
|
|
11578
|
-
)).option
|
|
11899
|
+
...availableType.option
|
|
11579
11900
|
];
|
|
11580
11901
|
optInfo[1] = {value: type, ...(optInfo[1])};
|
|
11581
11902
|
return /** @type {[string, {value: AvailableType, title?: string}]} */ (
|
|
@@ -11591,6 +11912,7 @@ class Types {
|
|
|
11591
11912
|
if (!typesForFormatAndState) {
|
|
11592
11913
|
throw new Error('Unexpected type for format and state');
|
|
11593
11914
|
}
|
|
11915
|
+
|
|
11594
11916
|
return typesForFormatAndState.map((type) => {
|
|
11595
11917
|
return this.getOptionForType(type);
|
|
11596
11918
|
});
|
|
@@ -11773,7 +12095,12 @@ class Types {
|
|
|
11773
12095
|
// console.log('s0', s, '::', remnant, match);
|
|
11774
12096
|
let valObj;
|
|
11775
12097
|
try {
|
|
11776
|
-
|
|
12098
|
+
const typeObj = /** @type {TypeObject} */ (found[1]);
|
|
12099
|
+
/* istanbul ignore if -- TS guard */
|
|
12100
|
+
if (!typeObj.toValue) {
|
|
12101
|
+
throw new Error('Type has no `toValue` method');
|
|
12102
|
+
}
|
|
12103
|
+
valObj = typeObj.toValue(
|
|
11777
12104
|
mtch.groups?.innerContent || innerContent || s, {
|
|
11778
12105
|
types: this,
|
|
11779
12106
|
format,
|
|
@@ -11813,7 +12140,7 @@ class Types {
|
|
|
11813
12140
|
}
|
|
11814
12141
|
if (firstRun) {
|
|
11815
12142
|
const typeson = new c().register(
|
|
11816
|
-
|
|
12143
|
+
ie
|
|
11817
12144
|
);
|
|
11818
12145
|
try {
|
|
11819
12146
|
const topRoot = typeson.revive(value);
|