/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/arson@0.2.6/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
var UNDEFINED_INDEX=-1,ARRAY_HOLE_INDEX=-2,NAN_INDEX=-3,POS_INF_INDEX=-4,NEG_INF_INDEX=-5,customTypes=Object.create(null);exports.registerType=function(e,r){function t(t){if("function"!=typeof r[t])throw new Error("second argument to ARSON.registerType("+JSON.stringify(e)+", ...) must be an object with a "+t+" method")}return t("deconstruct"),t("reconstruct"),customTypes[e]=r,exports},require("./custom.js"),exports.encode=exports.stringify=function(e){return JSON.stringify(toTable(e))};var HOLY_ARRAY=[];function getArrayOfHoles(e){var r=HOLY_ARRAY.length;if(e>r){HOLY_ARRAY.length=e;for(var t=r;t<e;++t)HOLY_ARRAY[t]=ARRAY_HOLE_INDEX}return HOLY_ARRAY.slice(0,e)}function toTable(e){var r=[],t=makeGetIndexFunction(r);function n(e){var r=e;if(e&&"object"==typeof e){var n=Object.keys(e);if(isPlainObject(e))r={};else if(Array.isArray(e))r=getArrayOfHoles(e.length);else{for(var o in customTypes){var i=customTypes[o].deconstruct(e);if(i){for(var f=0;f<i.length;++f)i[f]=t(i[f]);return i.unshift(o),i}}r={}}n.forEach((function(n){r[n]=t(e[n])}))}return r}var o=t(e);if(o<0)return o;for(var i=[],f=0;f<r.length;++f)i[f]=n(r[f]);return i}function isPlainObject(e){return!(!e||"object"!=typeof e)&&(Object.getPrototypeOf?Object.getPrototypeOf(e):e.__proto__)===Object.prototype}function makeGetIndexFunction(e){var r="function"==typeof Map&&new Map;return function(t){switch(typeof t){case"undefined":return UNDEFINED_INDEX;case"number":if(isNaN(t))return NAN_INDEX;if(!isFinite(t))return t<0?NEG_INF_INDEX:POS_INF_INDEX}var n;return r?void 0===(n=r.get(t))&&(n=e.push(t)-1,r.set(t,n)):(n=e.indexOf(t))<0&&(n=e.push(t)-1),n}}function fromTable(e){if("number"==typeof e&&e<0)return n(e);var r=new Array(e.length);function t(e){return e in r?r[e]:r[e]=n(e)}function n(r){if(r<0){if(r===UNDEFINED_INDEX)return;if(r===ARRAY_HOLE_INDEX)return;if(r===NAN_INDEX)return NaN;if(r===POS_INF_INDEX)return 1/0;if(r===NEG_INF_INDEX)return-1/0;throw new Error("invalid ARSON index: "+r)}var n=e[r];if(n&&"object"==typeof n){if(Array.isArray(n)){var f=n[0];if("string"==typeof f&&f in customTypes){var u=customTypes[f].reconstruct,c=u();return c&&o.push({reconstruct:u,empty:c,argIndexes:n.slice(1)}),e[r]=c||u(n.slice(1).map(t))}}i.push(n)}return n}var o=[],i=[];return e.forEach((function(e,r){t(r)})),o.forEach((function(e){e.args=e.argIndexes.map(t)})),i.forEach((function(r){Object.keys(r).forEach((function(n){var o=r[n];if("number"==typeof o)if(o<0){if(o===ARRAY_HOLE_INDEX)return void delete r[n];r[n]=t(o)}else r[n]=e[o]}))})),o.forEach((function(e){e.reconstruct.call(e.empty,e.args)})),e[0]}exports.decode=exports.parse=function(e){return fromTable(JSON.parse(e))};
//# sourceMappingURL=/sm/7ec02dab1a5fc5882dea691b0b64a04649a6f30601d0614f9f7f6592a5e34b42.map