@qubit-ltd/json 1.1.4 → 1.2.1

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/dist/json.cjs CHANGED
@@ -6,7 +6,7 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
6
6
  var _createClass = require('@babel/runtime/helpers/createClass');
7
7
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
8
8
 
9
- var T$1=Object.defineProperty;var C$1=(t,a)=>T$1(t,"name",{value:a,configurable:!0});/**
9
+ var T$1=Object.defineProperty;var C$1=(t,a)=>T$1(t,"name",{value:a,configurable:true});/**
10
10
  * https://github.com/jawj/json-custom-numbers
11
11
  * @copyright Copyright (c) 2023 George MacKerron
12
12
  * @license MIT
@@ -28,7 +28,7 @@ return "\\n";if(t===9)return "\\t";const p=t.toString(16),y="0000".slice(p.lengt
28
28
  p;return (t>31?`'${a}${String.fromCharCode(t)}' or `:"")+`\\u${y}`}C$1(O,"chDesc");
29
29
  function R(t,a){const p=Object.keys(a),y=p.length;for(let d=0;d<y;d++){const n=p[d],
30
30
  e=t.call(a,n,a[n]);e!==void 0?a[n]=e:delete a[n];}}C$1(R,"revive");function q$1(t,a,p){
31
- const y=p===!0?" in array":p===!1?" in object":"",d=t.slice(0,a),n=d.match(/[^\n]{0,69}$/)[0],
31
+ const y=p===true?" in array":p===false?" in object":"",d=t.slice(0,a),n=d.match(/[^\n]{0,69}$/)[0],
32
32
  e=n.length<d.length?"..."+n:n,o=a-(d.length-e.length),u=t.slice(a),r=u.match(/[^\n]{0,5}/)[0],
33
33
  c=r.length<u.length?r+"...":r,A=e+c,I=" ".repeat(o<1?0:o-1)+"^";return `${y}
34
34
  At position ${a} in JSON:
@@ -39,7 +39,7 @@ typeof y=="number"?y:(U=y.maxDepth)!=null?U:N.maxDepth;let n=0,e,o,u,r,c;functio
39
39
  throw new SyntaxError(l+q$1(t,n,u))}C$1(A,"err");function I(){A(`JSON structure too \
40
40
  deeply nested (current max depth: ${d})`);}C$1(I,"tooDeep");function b(l){A(`Unexpe\
41
41
  cted ${O(e)}, expecting ${l}`);}C$1(b,"expected");function E(){const l=n-1;if(D$1.lastIndex=
42
- l,D$1.test(t)!==!0&&b("JSON value"),n=D$1.lastIndex,e<102){const g=t.slice(l,n);return p?
42
+ l,D$1.test(t)!==true&&b("JSON value"),n=D$1.lastIndex,e<102){const g=t.slice(l,n);return p?
43
43
  p.call(o,r,g):+g}return e===110?null:e===116}C$1(E,"word");function S(){let l="";e:
44
44
  for(;;){v.lastIndex=n,v.test(t);const f=v.lastIndex;for(f>n&&(l+=t.slice(n,f),n=
45
45
  f),e=t.charCodeAt(n++);;){switch(e){case 34:return l;case 92:if(e=t.charCodeAt(n++),
@@ -49,33 +49,33 @@ XX escape in string");}const g=j[e];if(g!==""&&g!==void 0){l+=g;break}A(`Invalid
49
49
  escape sequence: ${O(e,"\\")} in string`);default:e>=0||A("Unterminated string"),
50
50
  A(`Invalid unescaped ${O(e)} in string`);}if(e=t.charCodeAt(n),e!==92&&e!==34)continue e;
51
51
  n++;}}}C$1(S,"string");e:{do e=t.charCodeAt(n++);while(e<=32&&(e===32||e===10||e===
52
- 13||e===9));switch(e){case 123:d===0&&I(),o={},r=void 0,u=!1;break;case 91:d===0&&
53
- I(),o=[],r=0,u=!0;break;case 34:c=S();break e;default:c=E();break e}const l=d+d-
54
- 2,f=[],g=X.test(t);let s=0;t:for(;;)if(u===!0)for(;;){g===!0&&s>2&&(h.lastIndex=
52
+ 13||e===9));switch(e){case 123:d===0&&I(),o={},r=void 0,u=false;break;case 91:d===0&&
53
+ I(),o=[],r=0,u=true;break;case 34:c=S();break e;default:c=E();break e}const l=d+d-
54
+ 2,f=[],g=X.test(t);let s=0;t:for(;;)if(u===true)for(;;){g===true&&s>2&&(h.lastIndex=
55
55
  n,h.test(t),n=h.lastIndex);do e=t.charCodeAt(n++);while(e<=32&&(e===32||e===10||
56
56
  e===13||e===9));if(e===93){if(a!==void 0&&R(a,o),c=o,s===0)break e;if(o=f[--s],r=
57
- f[--s],u=typeof r=="number",u===!0){o[r++]=c;continue}else {o[r]=c;continue t}}if(r!==
58
- 0){e!==44&&b("',' or ']' after value"),g===!0&&s>2&&(h.lastIndex=n,h.test(t),n=h.
57
+ f[--s],u=typeof r=="number",u===true){o[r++]=c;continue}else {o[r]=c;continue t}}if(r!==
58
+ 0){e!==44&&b("',' or ']' after value"),g===true&&s>2&&(h.lastIndex=n,h.test(t),n=h.
59
59
  lastIndex);do e=t.charCodeAt(n++);while(e<=32&&(e===32||e===10||e===13||e===9))}
60
60
  switch(e){case 34:o[r++]=S();continue;case 123:s===l&&I(),f[s++]=r,f[s++]=o,o={},
61
- r=void 0,u=!1;continue t;case 91:s===l&&I(),f[s++]=r,f[s++]=o,o=[],r=0;continue;default:
62
- o[r++]=E();}}else for(;;){g===!0&&s>2&&(h.lastIndex=n,h.test(t),n=h.lastIndex);do
61
+ r=void 0,u=false;continue t;case 91:s===l&&I(),f[s++]=r,f[s++]=o,o=[],r=0;continue;default:
62
+ o[r++]=E();}}else for(;;){g===true&&s>2&&(h.lastIndex=n,h.test(t),n=h.lastIndex);do
63
63
  e=t.charCodeAt(n++);while(e<=32&&(e===32||e===10||e===13||e===9));if(e===125){if(a!==
64
- void 0&&R(a,o),c=o,s===0)break e;if(o=f[--s],r=f[--s],u=typeof r=="number",u===!0){
64
+ void 0&&R(a,o),c=o,s===0)break e;if(o=f[--s],r=f[--s],u=typeof r=="number",u===true){
65
65
  o[r++]=c;continue t}else {o[r]=c;continue}}if(r!==void 0){e!==44&&b("',' or '}' a\
66
- fter value"),g===!0&&s>2&&(h.lastIndex=n,h.test(t),n=h.lastIndex);do e=t.charCodeAt(
66
+ fter value"),g===true&&s>2&&(h.lastIndex=n,h.test(t),n=h.lastIndex);do e=t.charCodeAt(
67
67
  n++);while(e<=32&&(e===32||e===10||e===13||e===9))}e!==34&&b("'}' or double-quot\
68
68
  ed key"),r=S();do e=t.charCodeAt(n++);while(e<=32&&(e===32||e===10||e===13||e===
69
69
  9));e!==58&&b("':' after key");do e=t.charCodeAt(n++);while(e<=32&&(e===32||e===
70
70
  10||e===13||e===9));switch(e){case 34:o[r]=S();continue;case 123:s===l&&I(),f[s++]=
71
71
  r,f[s++]=o,o={},r=void 0;continue;case 91:s===l&&I(),f[s++]=r,f[s++]=o,o=[],r=0,
72
- u=!0;continue t;default:o[r]=E();}}}return J.lastIndex=n,J.test(t)===!1&&A("Unexp\
72
+ u=true;continue t;default:o[r]=E();}}}return J.lastIndex=n,J.test(t)===false&&A("Unexp\
73
73
  ected data after end of JSON input"),a!==void 0&&(c={"":c},R(a,c),c=c[""]),c}C$1(K$1,
74
74
  "parse");
75
75
 
76
- var E=Object.defineProperty;var T=Object.getOwnPropertySymbols;var F=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable;var D=(t,e,i)=>e in t?E(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):
76
+ var E=Object.defineProperty;var T=Object.getOwnPropertySymbols;var F=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable;var D=(t,e,i)=>e in t?E(t,e,{enumerable:true,configurable:true,writable:true,value:i}):
77
77
  t[e]=i,u=(t,e)=>{for(var i in e||(e={}))F.call(e,i)&&D(t,i,e[i]);if(T)for(var i of T(
78
- e))V.call(e,i)&&D(t,i,e[i]);return t};var K=(t,e)=>E(t,"name",{value:e,configurable:!0});/**
78
+ e))V.call(e,i)&&D(t,i,e[i]);return t};var K=(t,e)=>E(t,"name",{value:e,configurable:true});/**
79
79
  * https://github.com/jawj/json-custom-numbers
80
80
  * @copyright Copyright (c) 2023 George MacKerron
81
81
  * @license MIT
@@ -84,27 +84,27 @@ e))V.call(e,i)&&D(t,i,e[i]);return t};var K=(t,e)=>E(t,"name",{value:e,configura
84
84
  * precisely match native `JSON.stringify` behaviour but also allow for custom
85
85
  * stringifying of numbers.
86
86
  */const x=/["\\\u0000-\u001f]/,q=Object.prototype.hasOwnProperty,z={maxDepth:5e4,
87
- skipToJSON:!1};function C(t,e,i,j,g={}){typeof g=="number"&&(g={maxDepth:g}),g=u(
87
+ skipToJSON:false};function C(t,e,i,j,g={}){typeof g=="number"&&(g={maxDepth:g}),g=u(
88
88
  u({},z),g);const{maxDepth:J,skipToJSON:L}=g;let O,S;e!==void 0&&(typeof e=="func\
89
89
  tion"?O=e:Array.isArray(e)&&(S=e.map(l=>String(l)))),i!==void 0&&(i=typeof i=="s\
90
90
  tring"?i.slice(0,10):typeof i=="number"?" ".slice(0,i):void 0);const P=J*
91
- (i===void 0?5:6);let r,s={"":t},d=0,c=[""],h=!1,k=1,f=[],n=0,y="",b=`
91
+ (i===void 0?5:6);let r,s={"":t},d=0,c=[""],h=false,k=1,f=[],n=0,y="",b=`
92
92
  `,o,p=new Set([]);do{if(d===k){p.delete(s),i!==void 0&&(b=f[--n],y+=b),y+=c===void 0?
93
93
  "]":"}",k=f[--n],h=f[--n],c=f[--n],d=f[--n],s=f[--n];continue}let l,w;c===void 0?
94
- (r=String(d),t=s[d]):(r=c[d],t=s[r]);let a=typeof t;if(L===!1&&t&&a==="object"&&
94
+ (r=String(d),t=s[d]):(r=c[d],t=s[r]);let a=typeof t;if(L===false&&t&&a==="object"&&
95
95
  typeof t.toJSON=="function"&&(t=t.toJSON(r),a=typeof t),O!==void 0&&(t=O.call(s,
96
- r,t),a=typeof t),j===void 0||(o=j(r,t,a))===void 0)switch(a){case"string":o=x.test(
97
- t)?JSON.stringify(t):'"'+t+'"';break;case"number":o=isFinite(t)?String(t):"null";
98
- break;case"boolean":o=t===!0?"true":"false";break;case"object":if(t===null){o="n\
96
+ r,t),a=typeof t),j===void 0||(o=j(r,t,a))===void 0)switch(a){case "string":o=x.test(
97
+ t)?JSON.stringify(t):'"'+t+'"';break;case "number":o=isFinite(t)?String(t):"null";
98
+ break;case "boolean":o=t===true?"true":"false";break;case "object":if(t===null){o="n\
99
99
  ull";break}if(Array.isArray(t)){const m=t.length;m===0?o="[]":(o="[",l=void 0,w=
100
100
  m);break}const N=S===void 0?Object.keys(t):S.filter(m=>q.call(t,m)),A=N.length;A===
101
- 0?o="{}":(o="{",l=N,w=A);break;case"bigint":throw new TypeError("Do not know how\
101
+ 0?o="{}":(o="{",l=N,w=A);break;case "bigint":throw new TypeError("Do not know how\
102
102
  to serialize a BigInt: please provide a custom serializer function");default:o=
103
103
  void 0;}if(c===void 0?(d>0&&(y+=","),i!==void 0&&(y+=b),y+=o===void 0?"null":o):o!==
104
- void 0&&(h?y+=",":h=!0,n>0&&(y+=i===void 0?(x.test(r)?JSON.stringify(r):'"'+r+'"')+
104
+ void 0&&(h?y+=",":h=true,n>0&&(y+=i===void 0?(x.test(r)?JSON.stringify(r):'"'+r+'"')+
105
105
  ":":b+(x.test(r)?JSON.stringify(r):'"'+r+'"')+": "),y+=o),d++,w!==void 0){if(f[n++]=
106
106
  s,f[n++]=d,f[n++]=c,f[n++]=h,f[n++]=k,i!==void 0&&(f[n++]=b,b+=i),s=t,d=0,c=l,h=
107
- !1,k=w,n>P)throw new RangeError(`Maximum nesting depth exceeded (current maximum\
107
+ false,k=w,n>P)throw new RangeError(`Maximum nesting depth exceeded (current maximum\
108
108
  is ${J})`);if(p.has(s))throw new TypeError("Cannot stringify circular structure");
109
109
  p.add(s);}}while(n!==0);return y||void 0}K(C,"stringify");
110
110
 
@@ -173,6 +173,36 @@ function extractSignificantDigits(value) {
173
173
  .replace(LEADING_MINUS_AND_ZEROS_REGEX, ''); // from "-025" to "25"
174
174
  }
175
175
 
176
+ ////////////////////////////////////////////////////////////////////////////////
177
+ //
178
+ // Copyright (c) 2022 - 2024.
179
+ // Haixing Hu, Qubit Co. Ltd.
180
+ //
181
+ // All rights reserved.
182
+ //
183
+ ////////////////////////////////////////////////////////////////////////////////
184
+
185
+ /**
186
+ * A regular expression for testing whether a string represents a number.
187
+ *
188
+ * @type {RegExp}
189
+ * @see http://stackoverflow.com/questions/13340717/json-numbers-regular-expression
190
+ * @private
191
+ */
192
+ var NUMBER_REGEX = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;
193
+
194
+ /**
195
+ * Test whether a string represents a number
196
+ *
197
+ * @param {string} value
198
+ * The string to test.
199
+ * @return {boolean}
200
+ * true if the string contains a number; false otherwise.
201
+ */
202
+ function isNumber(value) {
203
+ return NUMBER_REGEX.test(value);
204
+ }
205
+
176
206
  ////////////////////////////////////////////////////////////////////////////////
177
207
  //
178
208
  // Copyright (c) 2022 - 2024.
@@ -206,8 +236,12 @@ var DEFAULT_REQUIRED_DIGITS = 14;
206
236
  * otherwise.
207
237
  */
208
238
  function isSafeNumber(value) {
209
- var _options$approx;
239
+ var _options$approx, _options$requiredDigi;
210
240
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
241
+ // handle the edge cases
242
+ if (!isNumber(value) || value === '' || value === 'NaN') {
243
+ return false;
244
+ }
211
245
  var num = parseFloat(value);
212
246
  var str = String(num);
213
247
  if (value === str) {
@@ -218,49 +252,42 @@ function isSafeNumber(value) {
218
252
  if (v === s) {
219
253
  return true;
220
254
  }
255
+
256
+ // use the default options
221
257
  var approx = (_options$approx = options === null || options === void 0 ? void 0 : options.approx) !== null && _options$approx !== void 0 ? _options$approx : DEFAULT_APPROX;
222
- if (approx === true) {
223
- var _options$requiredDigi;
224
- // A value is approximately equal when:
225
- // 1. it is a floating point number, not an integer
226
- // 2. it has at least requiredDigits digits
227
- // 3. the first requiredDigits digits are equal
228
- var requiredDigits = (_options$requiredDigi = options === null || options === void 0 ? void 0 : options.requiredDigits) !== null && _options$requiredDigi !== void 0 ? _options$requiredDigi : DEFAULT_REQUIRED_DIGITS;
229
- if (!isInteger(value) && s.length >= requiredDigits && v.startsWith(s.substring(0, requiredDigits))) {
230
- return true;
231
- }
258
+ if (!approx) {
259
+ return false;
232
260
  }
233
- return false;
234
- }
235
261
 
236
- ////////////////////////////////////////////////////////////////////////////////
237
- //
238
- // Copyright (c) 2022 - 2024.
239
- // Haixing Hu, Qubit Co. Ltd.
240
- //
241
- // All rights reserved.
242
- //
243
- ////////////////////////////////////////////////////////////////////////////////
262
+ // A value is approximately equal when:
263
+ // 1. it is a floating point number, not an integer
264
+ // 2. both v and s have at least requiredDigits digits
265
+ // 3. the first requiredDigits digits are equal
266
+ var requiredDigits = (_options$requiredDigi = options === null || options === void 0 ? void 0 : options.requiredDigits) !== null && _options$requiredDigi !== void 0 ? _options$requiredDigi : DEFAULT_REQUIRED_DIGITS;
244
267
 
245
- /**
246
- * A regular expression for testing whether a string represents a number.
247
- *
248
- * @type {RegExp}
249
- * @see http://stackoverflow.com/questions/13340717/json-numbers-regular-expression
250
- * @private
251
- */
252
- var NUMBER_REGEX = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;
268
+ // check if the value is an integer
269
+ var isIntegerVal = isInteger(value);
270
+ if (isIntegerVal) {
271
+ return true; // when the input is an integer and approx=true, return true
272
+ }
253
273
 
254
- /**
255
- * Test whether a string represents a number
256
- *
257
- * @param {string} value
258
- * The string to test.
259
- * @return {boolean}
260
- * true if the string contains a number; false otherwise.
261
- */
262
- function isNumber(value) {
263
- return NUMBER_REGEX.test(value);
274
+ // check if s has at least requiredDigits digits
275
+ var sLengthOk = s.length >= requiredDigits;
276
+ if (!sLengthOk) {
277
+ return false;
278
+ }
279
+
280
+ // check if v has at least requiredDigits digits
281
+ var vLengthOk = v.length >= requiredDigits;
282
+ if (vLengthOk) {
283
+ // check if the first requiredDigits digits are equal
284
+ var vPrefix = v.substring(0, requiredDigits);
285
+ var sPrefix = s.substring(0, requiredDigits);
286
+ return vPrefix === sPrefix;
287
+ } else {
288
+ // if v length is not enough, return true
289
+ return true;
290
+ }
264
291
  }
265
292
 
266
293
  ////////////////////////////////////////////////////////////////////////////////
package/dist/json.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"json.cjs","sources":["../node_modules/json-custom-numbers/parse.mjs","../node_modules/json-custom-numbers/stringify.mjs","../src/utils/is-integer.js","../src/utils/extract-significant-digits.js","../src/utils/is-safe-number.js","../src/utils/is-number.js","../src/utils/get-unsafe-reason.js","../src/utils/lossless-number.js","../src/parse-number.js","../src/format-number.js","../src/collection-replacer.js","../src/json.js","../src/utils/is-bigint.js","../src/utils/to-safe-number-or-throw.js","../src/index.js"],"sourcesContent":["var T=Object.defineProperty;var C=(t,a)=>T(t,\"name\",{value:a,configurable:!0});/**\n * https://github.com/jawj/json-custom-numbers\n * @copyright Copyright (c) 2023 George MacKerron\n * @license MIT\n * \n * This file implements a non-recursive JSON parser that's intended to\n * precisely match native `JSON.parse` behaviour but also allow for custom\n * number parsing.\n */const v=/[^\"\\\\\\u0000-\\u001f]*/y,D=/-?(0|[1-9][0-9]*)([.][0-9]+)?([eE][-+]?[0-9]+)?|true|false|null/y,\nJ=/[ \\n\\t\\r]*$/y,X=/^.{0,32}\\n[ \\t]/,h=/[ \\n\\t\\r]*/y,j=`........................\\\n..........\"............./.............................................\\\\......\\b..\\\n..\\f........\n....\\r..\t`.split(\".\"),x=C(()=>new Uint32Array(103),\"hlArr\"),k=x(),m=x(),w=x(),$=x();\nlet i=0;for(;i<48;i++)k[i]=m[i]=w[i]=$[i]=65536;for(;i<58;i++)k[i]=(m[i]=(w[i]=($[i]=\ni-48)<<4)<<4)<<4;for(;i<65;i++)k[i]=m[i]=w[i]=$[i]=65536;for(;i<71;i++)k[i]=(m[i]=\n(w[i]=($[i]=i-55)<<4)<<4)<<4;for(;i<97;i++)k[i]=m[i]=w[i]=$[i]=65536;for(;i<103;i++)\nk[i]=(m[i]=(w[i]=($[i]=i-87)<<4)<<4)<<4;function O(t,a=\"\"){if(!(t>=0))return\"end\\\n of JSON input\";if(t>31&&t<127)return`'${a}${String.fromCharCode(t)}'`;if(t===10)\nreturn\"\\\\n\";if(t===9)return\"\\\\t\";const p=t.toString(16),y=\"0000\".slice(p.length)+\np;return(t>31?`'${a}${String.fromCharCode(t)}' or `:\"\")+`\\\\u${y}`}C(O,\"chDesc\");\nfunction R(t,a){const p=Object.keys(a),y=p.length;for(let d=0;d<y;d++){const n=p[d],\ne=t.call(a,n,a[n]);e!==void 0?a[n]=e:delete a[n]}}C(R,\"revive\");function q(t,a,p){\nconst y=p===!0?\" in array\":p===!1?\" in object\":\"\",d=t.slice(0,a),n=d.match(/[^\\n]{0,69}$/)[0],\ne=n.length<d.length?\"...\"+n:n,o=a-(d.length-e.length),u=t.slice(a),r=u.match(/[^\\n]{0,5}/)[0],\nc=r.length<u.length?r+\"...\":r,A=e+c,I=\" \".repeat(o<1?0:o-1)+\"^\";return`${y}\nAt position ${a} in JSON:\n${A}\n${I}`}C(q,\"errContext\");const N={maxDepth:1/0};function K(t,a,p,y){var U;typeof t!=\n\"string\"&&(t=String(t)),typeof a!=\"function\"&&(a=void 0);const d=y===void 0?N.maxDepth:\ntypeof y==\"number\"?y:(U=y.maxDepth)!=null?U:N.maxDepth;let n=0,e,o,u,r,c;function A(l){\nthrow new SyntaxError(l+q(t,n,u))}C(A,\"err\");function I(){A(`JSON structure too \\\ndeeply nested (current max depth: ${d})`)}C(I,\"tooDeep\");function b(l){A(`Unexpe\\\ncted ${O(e)}, expecting ${l}`)}C(b,\"expected\");function E(){const l=n-1;if(D.lastIndex=\nl,D.test(t)!==!0&&b(\"JSON value\"),n=D.lastIndex,e<102){const g=t.slice(l,n);return p?\np.call(o,r,g):+g}return e===110?null:e===116}C(E,\"word\");function S(){let l=\"\";e:\nfor(;;){v.lastIndex=n,v.test(t);const f=v.lastIndex;for(f>n&&(l+=t.slice(n,f),n=\nf),e=t.charCodeAt(n++);;){switch(e){case 34:return l;case 92:if(e=t.charCodeAt(n++),\ne===117){const s=k[t.charCodeAt(n++)]+m[t.charCodeAt(n++)]+w[t.charCodeAt(n++)]+\n$[t.charCodeAt(n++)];if(s<65536){l+=String.fromCharCode(s);break}A(\"Invalid \\\\uXX\\\nXX escape in string\")}const g=j[e];if(g!==\"\"&&g!==void 0){l+=g;break}A(`Invalid \\\nescape sequence: ${O(e,\"\\\\\")} in string`);default:e>=0||A(\"Unterminated string\"),\nA(`Invalid unescaped ${O(e)} in string`)}if(e=t.charCodeAt(n),e!==92&&e!==34)continue e;\nn++}}}C(S,\"string\");e:{do e=t.charCodeAt(n++);while(e<=32&&(e===32||e===10||e===\n13||e===9));switch(e){case 123:d===0&&I(),o={},r=void 0,u=!1;break;case 91:d===0&&\nI(),o=[],r=0,u=!0;break;case 34:c=S();break e;default:c=E();break e}const l=d+d-\n2,f=[],g=X.test(t);let s=0;t:for(;;)if(u===!0)for(;;){g===!0&&s>2&&(h.lastIndex=\nn,h.test(t),n=h.lastIndex);do e=t.charCodeAt(n++);while(e<=32&&(e===32||e===10||\ne===13||e===9));if(e===93){if(a!==void 0&&R(a,o),c=o,s===0)break e;if(o=f[--s],r=\nf[--s],u=typeof r==\"number\",u===!0){o[r++]=c;continue}else{o[r]=c;continue t}}if(r!==\n0){e!==44&&b(\"',' or ']' after value\"),g===!0&&s>2&&(h.lastIndex=n,h.test(t),n=h.\nlastIndex);do e=t.charCodeAt(n++);while(e<=32&&(e===32||e===10||e===13||e===9))}\nswitch(e){case 34:o[r++]=S();continue;case 123:s===l&&I(),f[s++]=r,f[s++]=o,o={},\nr=void 0,u=!1;continue t;case 91:s===l&&I(),f[s++]=r,f[s++]=o,o=[],r=0;continue;default:\no[r++]=E()}}else for(;;){g===!0&&s>2&&(h.lastIndex=n,h.test(t),n=h.lastIndex);do\ne=t.charCodeAt(n++);while(e<=32&&(e===32||e===10||e===13||e===9));if(e===125){if(a!==\nvoid 0&&R(a,o),c=o,s===0)break e;if(o=f[--s],r=f[--s],u=typeof r==\"number\",u===!0){\no[r++]=c;continue t}else{o[r]=c;continue}}if(r!==void 0){e!==44&&b(\"',' or '}' a\\\nfter value\"),g===!0&&s>2&&(h.lastIndex=n,h.test(t),n=h.lastIndex);do e=t.charCodeAt(\nn++);while(e<=32&&(e===32||e===10||e===13||e===9))}e!==34&&b(\"'}' or double-quot\\\ned key\"),r=S();do e=t.charCodeAt(n++);while(e<=32&&(e===32||e===10||e===13||e===\n9));e!==58&&b(\"':' after key\");do e=t.charCodeAt(n++);while(e<=32&&(e===32||e===\n10||e===13||e===9));switch(e){case 34:o[r]=S();continue;case 123:s===l&&I(),f[s++]=\nr,f[s++]=o,o={},r=void 0;continue;case 91:s===l&&I(),f[s++]=r,f[s++]=o,o=[],r=0,\nu=!0;continue t;default:o[r]=E()}}}return J.lastIndex=n,J.test(t)===!1&&A(\"Unexp\\\nected data after end of JSON input\"),a!==void 0&&(c={\"\":c},R(a,c),c=c[\"\"]),c}C(K,\n\"parse\");export{K as parse};\n","var E=Object.defineProperty;var T=Object.getOwnPropertySymbols;var F=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable;var D=(t,e,i)=>e in t?E(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):\nt[e]=i,u=(t,e)=>{for(var i in e||(e={}))F.call(e,i)&&D(t,i,e[i]);if(T)for(var i of T(\ne))V.call(e,i)&&D(t,i,e[i]);return t};var K=(t,e)=>E(t,\"name\",{value:e,configurable:!0});/**\n * https://github.com/jawj/json-custom-numbers\n * @copyright Copyright (c) 2023 George MacKerron\n * @license MIT\n * \n * This file implements a non-recursive JSON stringifier that's intended to\n * precisely match native `JSON.stringify` behaviour but also allow for custom\n * stringifying of numbers.\n */const x=/[\"\\\\\\u0000-\\u001f]/,q=Object.prototype.hasOwnProperty,z={maxDepth:5e4,\nskipToJSON:!1};function C(t,e,i,j,g={}){typeof g==\"number\"&&(g={maxDepth:g}),g=u(\nu({},z),g);const{maxDepth:J,skipToJSON:L}=g;let O,S;e!==void 0&&(typeof e==\"func\\\ntion\"?O=e:Array.isArray(e)&&(S=e.map(l=>String(l)))),i!==void 0&&(i=typeof i==\"s\\\ntring\"?i.slice(0,10):typeof i==\"number\"?\" \".slice(0,i):void 0);const P=J*\n(i===void 0?5:6);let r,s={\"\":t},d=0,c=[\"\"],h=!1,k=1,f=[],n=0,y=\"\",b=`\n`,o,p=new Set([]);do{if(d===k){p.delete(s),i!==void 0&&(b=f[--n],y+=b),y+=c===void 0?\n\"]\":\"}\",k=f[--n],h=f[--n],c=f[--n],d=f[--n],s=f[--n];continue}let l,w;c===void 0?\n(r=String(d),t=s[d]):(r=c[d],t=s[r]);let a=typeof t;if(L===!1&&t&&a===\"object\"&&\ntypeof t.toJSON==\"function\"&&(t=t.toJSON(r),a=typeof t),O!==void 0&&(t=O.call(s,\nr,t),a=typeof t),j===void 0||(o=j(r,t,a))===void 0)switch(a){case\"string\":o=x.test(\nt)?JSON.stringify(t):'\"'+t+'\"';break;case\"number\":o=isFinite(t)?String(t):\"null\";\nbreak;case\"boolean\":o=t===!0?\"true\":\"false\";break;case\"object\":if(t===null){o=\"n\\\null\";break}if(Array.isArray(t)){const m=t.length;m===0?o=\"[]\":(o=\"[\",l=void 0,w=\nm);break}const N=S===void 0?Object.keys(t):S.filter(m=>q.call(t,m)),A=N.length;A===\n0?o=\"{}\":(o=\"{\",l=N,w=A);break;case\"bigint\":throw new TypeError(\"Do not know how\\\n to serialize a BigInt: please provide a custom serializer function\");default:o=\nvoid 0}if(c===void 0?(d>0&&(y+=\",\"),i!==void 0&&(y+=b),y+=o===void 0?\"null\":o):o!==\nvoid 0&&(h?y+=\",\":h=!0,n>0&&(y+=i===void 0?(x.test(r)?JSON.stringify(r):'\"'+r+'\"')+\n\":\":b+(x.test(r)?JSON.stringify(r):'\"'+r+'\"')+\": \"),y+=o),d++,w!==void 0){if(f[n++]=\ns,f[n++]=d,f[n++]=c,f[n++]=h,f[n++]=k,i!==void 0&&(f[n++]=b,b+=i),s=t,d=0,c=l,h=\n!1,k=w,n>P)throw new RangeError(`Maximum nesting depth exceeded (current maximum\\\n is ${J})`);if(p.has(s))throw new TypeError(\"Cannot stringify circular structure\");\np.add(s)}}while(n!==0);return y||void 0}K(C,\"stringify\");export{C as stringify};\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A regular expression for testing whether a string represents an integer.\n *\n * @type {RegExp}\n * @private\n */\nconst INTEGER_REGEX = /^[+-]?\\d+$/;\n\n/**\n * Test whether a string represents an integer.\n *\n * @param value\n * The string to test.\n * @return {boolean}\n * true if the string contains an integer; false otherwise.\n */\nfunction isInteger(value) {\n return INTEGER_REGEX.test(value);\n}\n\nexport default isInteger;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\n\nconst EXPONENTIAL_PART_REGEX = /[eE][+-]?\\d+$/;\nconst LEADING_MINUS_AND_ZEROS_REGEX = /^-?(0*)?/;\nconst DOT_REGEX = /\\./;\nconst TRAILING_ZEROS_REGEX = /0+$/;\n\n/**\n * Get the significant digits of a number.\n *\n * For example:\n * - '2.34' returns '234'\n * - '-77' returns '77'\n * - '0.003400' returns '34'\n * - '120.5e+30' returns '1205'\n *\n * @param {string} value\n * The string representation of the number.\n * @return {string}\n * The significant digits of the number.\n * @private\n */\nfunction extractSignificantDigits(value) {\n return value\n .replace(EXPONENTIAL_PART_REGEX, '') // from \"-0.250e+30\" to \"-0.250\"\n .replace(DOT_REGEX, '') // from \"-0.250\" to \"-0250\"\n .replace(TRAILING_ZEROS_REGEX, '') // from \"-0250\" to \"-025\"\n .replace(LEADING_MINUS_AND_ZEROS_REGEX, ''); // from \"-025\" to \"25\"\n}\n\nexport default extractSignificantDigits;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\nimport isInteger from './is-integer';\nimport extractSignificantDigits from './extract-significant-digits';\n\nconst DEFAULT_APPROX = false;\nconst DEFAULT_REQUIRED_DIGITS = 14;\n\n/**\n * Test whether a string can be safely represented with a number without\n * information loss.\n *\n * When the argument `approx` is true, floating point numbers that lose a few\n * digits but are still approximately equal in value are considered safe too.\n * Integer numbers must still be exactly equal.\n *\n * @param {string} value\n * The string to test.\n * @param {object} options\n * The options of the test. It may contain the following properties:\n * - `approx: boolean`: indicates whether to consider approximately equal\n * floating point numbers as safe. Default is `false`.\n * - `requiredDigits: number`: the number of significant digits required for\n * a floating point number to be considered approximately equal. Default\n * is `14`.\n * @return {boolean}\n * true if the string can be safely represented with a number; false\n * otherwise.\n */\nfunction isSafeNumber(value, options = undefined) {\n const num = parseFloat(value);\n const str = String(num);\n if (value === str) {\n return true;\n }\n const v = extractSignificantDigits(value);\n const s = extractSignificantDigits(str);\n if (v === s) {\n return true;\n }\n const approx = options?.approx ?? DEFAULT_APPROX;\n if (approx === true) {\n // A value is approximately equal when:\n // 1. it is a floating point number, not an integer\n // 2. it has at least requiredDigits digits\n // 3. the first requiredDigits digits are equal\n const requiredDigits = options?.requiredDigits ?? DEFAULT_REQUIRED_DIGITS;\n if (!isInteger(value)\n && (s.length >= requiredDigits)\n && v.startsWith(s.substring(0, requiredDigits))) {\n return true;\n }\n }\n return false;\n}\n\nexport {\n DEFAULT_APPROX,\n DEFAULT_REQUIRED_DIGITS,\n isSafeNumber,\n};\n\nexport default isSafeNumber;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A regular expression for testing whether a string represents a number.\n *\n * @type {RegExp}\n * @see http://stackoverflow.com/questions/13340717/json-numbers-regular-expression\n * @private\n */\nconst NUMBER_REGEX = /^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$/;\n\n/**\n * Test whether a string represents a number\n *\n * @param {string} value\n * The string to test.\n * @return {boolean}\n * true if the string contains a number; false otherwise.\n */\nfunction isNumber(value) {\n return NUMBER_REGEX.test(value);\n}\n\nexport default isNumber;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\nimport isInteger from './is-integer';\nimport extractSignificantDigits from './extract-significant-digits';\n\n/**\n * When the provided value is an unsafe number, describe what the reason is\n * - `'overflow'`\n * - `'underflow'`\n * - `'truncate_integer'`\n * - `'truncate_float'`\n * - `'none'` (when the value is safe)\n *\n * @param {string} value\n * The string represents a number to test.\n * @return {string}\n * The reason why the value is unsafe. Returns `'none'` when the value is safe.\n */\nfunction getUnsafeReason(value) {\n const num = parseFloat(value);\n const str = String(num);\n if (value === str) {\n return 'none';\n }\n const v = extractSignificantDigits(value);\n const s = extractSignificantDigits(str);\n if (v === s) {\n return 'none';\n }\n if (isInteger(value)) {\n return 'truncate_integer';\n }\n if (!Number.isFinite(num)) {\n return 'overflow';\n }\n if (num === 0) {\n return 'underflow';\n }\n return 'truncate_float';\n}\n\nexport default getUnsafeReason;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\nimport isNumber from './is-number';\nimport getUnsafeReason from './get-unsafe-reason';\n\n/**\n * The class of lossless numbers, which stores its numeric value as string.\n */\nclass LosslessNumber {\n /**\n * The string representation of the number.\n *\n * @type {string}\n */\n value = '';\n\n /**\n * Whether the value is a lossless number.\n *\n * @type {boolean}\n */\n isLosslessNumber = true;\n\n /**\n * Constructs a new instance of `LosslessNumber`.\n *\n * @param {string} value\n * The string representation of the number.\n */\n constructor(value) {\n if (!isNumber(value)) {\n throw new Error(`Invalid number (value: \"${value}\")`);\n }\n this.value = value;\n }\n\n /**\n * Get the value of the LosslessNumber as number or bigint.\n *\n * - a number is returned for safe numbers and decimal values that only lose\n * some insignificant digits;\n * - a bigint is returned for big integer numbers;\n * - an Error is thrown for values that will overflow or underflow;\n *\n * Note that you can implement your own strategy for conversion by just\n * getting the value as string via `.toString()`, and using util functions\n * like `isInteger`, `isSafeNumber`, `getUnsafeReason`, and `toSafeNumberOrThrow`\n * to convert it to a numeric value.\n *\n * @return {number|bigint}\n * the numeric value of the LosslessNumber, as number or bigint.\n */\n valueOf() {\n const unsafeReason = getUnsafeReason(this.value);\n switch (unsafeReason) {\n case 'none':\n return parseFloat(this.value);\n case 'truncate_float':\n return parseFloat(this.value);\n case 'truncate_integer':\n return BigInt(this.value);\n case 'overflow':\n case 'underflow':\n throw new Error('Cannot safely CONVERT TO NUMBER: '\n + `the value '${this.value}' would ${unsafeReason} `\n + `and become ${parseFloat(this.value)}`);\n default:\n throw new Error('Unknown unsafe reason');\n }\n }\n\n /**\n * Get the value of this `LosslessNumber` as string.\n *\n * @return {string}\n * the string representation of this `LosslessNumber`.\n */\n toString() {\n return this.value;\n }\n\n // Note: we do NOT implement a .toJSON() method, and you should not implement\n // or use that, it cannot safely turn the numeric value in the string into\n // stringified JSON since it has to be parsed into a number first.\n}\n\nexport default LosslessNumber;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\nimport isInteger from './utils/is-integer';\nimport isSafeNumber from './utils/is-safe-number';\nimport LosslessNumber from './utils/lossless-number';\n\n/**\n * A custom function to parse a number from a string, which supports lossless\n * number parsing.\n *\n * @param {string} key\n * The key of the property.\n * @param {string} value\n * The value of the property.\n * @return {any}\n * The parsed value.\n * @private\n */\nfunction parseNumber(key, value) {\n // if (isBigInt(value)) {\n // return BigInt(value.slice(0, -1));\n // }\n if (isSafeNumber(value, { approx: false })) {\n return parseFloat(value);\n }\n if (isInteger(value)) {\n return BigInt(value);\n }\n return new LosslessNumber(value);\n}\n\nexport default parseNumber;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\nimport LosslessNumber from './utils/lossless-number';\n\n/**\n * Formats a number value.\n *\n * @param {string} key\n * The key of the property.\n * @param {string} value\n * The value of the property.\n * @param {string} type\n * The type of the value.\n * @return {undefined|string}\n * The formatted value. If the value is not a number, then return undefined.\n * @private\n */\nfunction formatNumber(key, value, type) {\n switch (type) {\n case 'bigint':\n return value.toString();\n case 'object':\n // if (value instanceof Set) {\n // return Array.from(value);\n // }\n // if (value instanceof Map) {\n // return Array.from(value);\n // }\n if (value instanceof LosslessNumber) {\n return value.toString();\n }\n return undefined;\n default:\n return undefined;\n }\n}\n\nexport default formatNumber;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A JSON replacer which serialize collections as arrays.\n *\n * @param {string} key\n * The key of the property.\n * @param {any} value\n * The value of the property.\n * @param {undefined|null|function} fallbackReplacer\n * The fallback replacer.\n * @return {any}\n * The serialized value.\n * @private\n */\nfunction collectionReplacer(key, value, fallbackReplacer) {\n if (value instanceof Set) {\n return Array.from(value);\n }\n if (value instanceof Map) {\n return Array.from(value);\n }\n if (fallbackReplacer) {\n return fallbackReplacer(key, value);\n }\n return value;\n}\n\nexport default collectionReplacer;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\nimport { parse, stringify } from 'json-custom-numbers';\nimport parseNumber from './parse-number';\nimport formatNumber from './format-number';\nimport collectionReplacer from './collection-replacer';\n\n/**\n * A customized JSON object which supports lossless number parsing and stringifying.\n *\n * This object provides two methods: `parse` and `stringify`, which are the same as the\n * `JSON.parse` and `JSON.stringify` methods, except that they support lossless number\n * parsing and stringifying.\n *\n * @type {object}\n */\nconst json = {\n parse: (text, reviver) => parse(text, reviver, parseNumber),\n stringify: (value, replacer, space) => stringify(value,\n (k, v) => collectionReplacer(k, v, replacer),\n space,\n formatNumber),\n};\n\njson[Symbol.toStringTag] = 'JSON';\n\nexport default json;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\n/**\n * A regular expression for testing whether a string represents a BigInt.\n *\n * @type {RegExp}\n * @private\n */\nconst BIG_INTEGER_REGEX = /^[+-]?\\d+n$/;\n\n/**\n * Test whether a string represents a BigInt.\n *\n * @param value\n * The string to test.\n * @return {boolean}\n * true if the string contains a BigInt; false otherwise.\n */\nfunction isBigInt(value) {\n return BIG_INTEGER_REGEX.test(value);\n}\n\nexport default isBigInt;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\nimport getUnsafeReason from './get-unsafe-reason';\nimport { DEFAULT_APPROX } from './is-safe-number';\n\n/**\n * Convert a string into a number when it is safe to do so.\n * Throws an error otherwise, explaining the reason.\n *\n * @param {string} value\n * The string to convert into a number.\n * @param {object} options\n * The options for conversion.\n * @return {number}\n * The converted safe number.\n * @throws {Error}\n * When the value is not safe to convert.\n */\nexport function toSafeNumberOrThrow(value, options = undefined) {\n const number = parseFloat(value);\n const unsafeReason = getUnsafeReason(value);\n if (unsafeReason === 'none') {\n return number;\n }\n const approx = options?.approx ?? DEFAULT_APPROX;\n // when approx is true, we allow truncating float values\n if (approx && (unsafeReason === 'truncate_float')) {\n return number;\n }\n const unsafeReasonText = unsafeReason?.replace(/_/, ' ');\n throw new Error('Cannot safely convert to number: '\n + `the value '${value}' would ${unsafeReasonText} and become ${number}`);\n}\n\nexport default toSafeNumberOrThrow;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\nimport Json from './json';\nimport LosslessNumber from './utils/lossless-number';\nimport isBigInt from './utils/is-bigint';\nimport isInteger from './utils/is-integer';\nimport isNumber from './utils/is-number';\nimport isSafeNumber from './utils/is-safe-number';\nimport getUnsafeReason from './utils/get-unsafe-reason';\nimport toSafeNumberOrThrow from './utils/to-safe-number-or-throw';\n\nexport {\n getUnsafeReason,\n isBigInt,\n isInteger,\n isNumber,\n isSafeNumber,\n Json,\n LosslessNumber,\n toSafeNumberOrThrow,\n};\n\nexport default Json;\n"],"names":["T","C","D","x","q","K","INTEGER_REGEX","isInteger","value","test","EXPONENTIAL_PART_REGEX","LEADING_MINUS_AND_ZEROS_REGEX","DOT_REGEX","TRAILING_ZEROS_REGEX","extractSignificantDigits","replace","DEFAULT_APPROX","DEFAULT_REQUIRED_DIGITS","isSafeNumber","_options$approx","options","arguments","length","undefined","num","parseFloat","str","String","v","s","approx","_options$requiredDigi","requiredDigits","startsWith","substring","NUMBER_REGEX","isNumber","getUnsafeReason","Number","isFinite","LosslessNumber","_classCallCheck","_defineProperty","Error","concat","_createClass","key","valueOf","unsafeReason","BigInt","toString","parseNumber","formatNumber","type","collectionReplacer","fallbackReplacer","Set","Array","from","Map","json","parse","text","reviver","stringify","replacer","space","k","Symbol","toStringTag","BIG_INTEGER_REGEX","isBigInt","toSafeNumberOrThrow","number","unsafeReasonText"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"json.cjs","sources":["../node_modules/json-custom-numbers/parse.mjs","../node_modules/json-custom-numbers/stringify.mjs","../src/utils/is-integer.js","../src/utils/extract-significant-digits.js","../src/utils/is-number.js","../src/utils/is-safe-number.js","../src/utils/get-unsafe-reason.js","../src/utils/lossless-number.js","../src/parse-number.js","../src/format-number.js","../src/collection-replacer.js","../src/json.js","../src/utils/is-bigint.js","../src/utils/to-safe-number-or-throw.js","../src/index.js"],"sourcesContent":["var T=Object.defineProperty;var C=(t,a)=>T(t,\"name\",{value:a,configurable:!0});/**\n * https://github.com/jawj/json-custom-numbers\n * @copyright Copyright (c) 2023 George MacKerron\n * @license MIT\n * \n * This file implements a non-recursive JSON parser that's intended to\n * precisely match native `JSON.parse` behaviour but also allow for custom\n * number parsing.\n */const v=/[^\"\\\\\\u0000-\\u001f]*/y,D=/-?(0|[1-9][0-9]*)([.][0-9]+)?([eE][-+]?[0-9]+)?|true|false|null/y,\nJ=/[ \\n\\t\\r]*$/y,X=/^.{0,32}\\n[ \\t]/,h=/[ \\n\\t\\r]*/y,j=`........................\\\n..........\"............./.............................................\\\\......\\b..\\\n..\\f........\n....\\r..\t`.split(\".\"),x=C(()=>new Uint32Array(103),\"hlArr\"),k=x(),m=x(),w=x(),$=x();\nlet i=0;for(;i<48;i++)k[i]=m[i]=w[i]=$[i]=65536;for(;i<58;i++)k[i]=(m[i]=(w[i]=($[i]=\ni-48)<<4)<<4)<<4;for(;i<65;i++)k[i]=m[i]=w[i]=$[i]=65536;for(;i<71;i++)k[i]=(m[i]=\n(w[i]=($[i]=i-55)<<4)<<4)<<4;for(;i<97;i++)k[i]=m[i]=w[i]=$[i]=65536;for(;i<103;i++)\nk[i]=(m[i]=(w[i]=($[i]=i-87)<<4)<<4)<<4;function O(t,a=\"\"){if(!(t>=0))return\"end\\\n of JSON input\";if(t>31&&t<127)return`'${a}${String.fromCharCode(t)}'`;if(t===10)\nreturn\"\\\\n\";if(t===9)return\"\\\\t\";const p=t.toString(16),y=\"0000\".slice(p.length)+\np;return(t>31?`'${a}${String.fromCharCode(t)}' or `:\"\")+`\\\\u${y}`}C(O,\"chDesc\");\nfunction R(t,a){const p=Object.keys(a),y=p.length;for(let d=0;d<y;d++){const n=p[d],\ne=t.call(a,n,a[n]);e!==void 0?a[n]=e:delete a[n]}}C(R,\"revive\");function q(t,a,p){\nconst y=p===!0?\" in array\":p===!1?\" in object\":\"\",d=t.slice(0,a),n=d.match(/[^\\n]{0,69}$/)[0],\ne=n.length<d.length?\"...\"+n:n,o=a-(d.length-e.length),u=t.slice(a),r=u.match(/[^\\n]{0,5}/)[0],\nc=r.length<u.length?r+\"...\":r,A=e+c,I=\" \".repeat(o<1?0:o-1)+\"^\";return`${y}\nAt position ${a} in JSON:\n${A}\n${I}`}C(q,\"errContext\");const N={maxDepth:1/0};function K(t,a,p,y){var U;typeof t!=\n\"string\"&&(t=String(t)),typeof a!=\"function\"&&(a=void 0);const d=y===void 0?N.maxDepth:\ntypeof y==\"number\"?y:(U=y.maxDepth)!=null?U:N.maxDepth;let n=0,e,o,u,r,c;function A(l){\nthrow new SyntaxError(l+q(t,n,u))}C(A,\"err\");function I(){A(`JSON structure too \\\ndeeply nested (current max depth: ${d})`)}C(I,\"tooDeep\");function b(l){A(`Unexpe\\\ncted ${O(e)}, expecting ${l}`)}C(b,\"expected\");function E(){const l=n-1;if(D.lastIndex=\nl,D.test(t)!==!0&&b(\"JSON value\"),n=D.lastIndex,e<102){const g=t.slice(l,n);return p?\np.call(o,r,g):+g}return e===110?null:e===116}C(E,\"word\");function S(){let l=\"\";e:\nfor(;;){v.lastIndex=n,v.test(t);const f=v.lastIndex;for(f>n&&(l+=t.slice(n,f),n=\nf),e=t.charCodeAt(n++);;){switch(e){case 34:return l;case 92:if(e=t.charCodeAt(n++),\ne===117){const s=k[t.charCodeAt(n++)]+m[t.charCodeAt(n++)]+w[t.charCodeAt(n++)]+\n$[t.charCodeAt(n++)];if(s<65536){l+=String.fromCharCode(s);break}A(\"Invalid \\\\uXX\\\nXX escape in string\")}const g=j[e];if(g!==\"\"&&g!==void 0){l+=g;break}A(`Invalid \\\nescape sequence: ${O(e,\"\\\\\")} in string`);default:e>=0||A(\"Unterminated string\"),\nA(`Invalid unescaped ${O(e)} in string`)}if(e=t.charCodeAt(n),e!==92&&e!==34)continue e;\nn++}}}C(S,\"string\");e:{do e=t.charCodeAt(n++);while(e<=32&&(e===32||e===10||e===\n13||e===9));switch(e){case 123:d===0&&I(),o={},r=void 0,u=!1;break;case 91:d===0&&\nI(),o=[],r=0,u=!0;break;case 34:c=S();break e;default:c=E();break e}const l=d+d-\n2,f=[],g=X.test(t);let s=0;t:for(;;)if(u===!0)for(;;){g===!0&&s>2&&(h.lastIndex=\nn,h.test(t),n=h.lastIndex);do e=t.charCodeAt(n++);while(e<=32&&(e===32||e===10||\ne===13||e===9));if(e===93){if(a!==void 0&&R(a,o),c=o,s===0)break e;if(o=f[--s],r=\nf[--s],u=typeof r==\"number\",u===!0){o[r++]=c;continue}else{o[r]=c;continue t}}if(r!==\n0){e!==44&&b(\"',' or ']' after value\"),g===!0&&s>2&&(h.lastIndex=n,h.test(t),n=h.\nlastIndex);do e=t.charCodeAt(n++);while(e<=32&&(e===32||e===10||e===13||e===9))}\nswitch(e){case 34:o[r++]=S();continue;case 123:s===l&&I(),f[s++]=r,f[s++]=o,o={},\nr=void 0,u=!1;continue t;case 91:s===l&&I(),f[s++]=r,f[s++]=o,o=[],r=0;continue;default:\no[r++]=E()}}else for(;;){g===!0&&s>2&&(h.lastIndex=n,h.test(t),n=h.lastIndex);do\ne=t.charCodeAt(n++);while(e<=32&&(e===32||e===10||e===13||e===9));if(e===125){if(a!==\nvoid 0&&R(a,o),c=o,s===0)break e;if(o=f[--s],r=f[--s],u=typeof r==\"number\",u===!0){\no[r++]=c;continue t}else{o[r]=c;continue}}if(r!==void 0){e!==44&&b(\"',' or '}' a\\\nfter value\"),g===!0&&s>2&&(h.lastIndex=n,h.test(t),n=h.lastIndex);do e=t.charCodeAt(\nn++);while(e<=32&&(e===32||e===10||e===13||e===9))}e!==34&&b(\"'}' or double-quot\\\ned key\"),r=S();do e=t.charCodeAt(n++);while(e<=32&&(e===32||e===10||e===13||e===\n9));e!==58&&b(\"':' after key\");do e=t.charCodeAt(n++);while(e<=32&&(e===32||e===\n10||e===13||e===9));switch(e){case 34:o[r]=S();continue;case 123:s===l&&I(),f[s++]=\nr,f[s++]=o,o={},r=void 0;continue;case 91:s===l&&I(),f[s++]=r,f[s++]=o,o=[],r=0,\nu=!0;continue t;default:o[r]=E()}}}return J.lastIndex=n,J.test(t)===!1&&A(\"Unexp\\\nected data after end of JSON input\"),a!==void 0&&(c={\"\":c},R(a,c),c=c[\"\"]),c}C(K,\n\"parse\");export{K as parse};\n","var E=Object.defineProperty;var T=Object.getOwnPropertySymbols;var F=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable;var D=(t,e,i)=>e in t?E(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):\nt[e]=i,u=(t,e)=>{for(var i in e||(e={}))F.call(e,i)&&D(t,i,e[i]);if(T)for(var i of T(\ne))V.call(e,i)&&D(t,i,e[i]);return t};var K=(t,e)=>E(t,\"name\",{value:e,configurable:!0});/**\n * https://github.com/jawj/json-custom-numbers\n * @copyright Copyright (c) 2023 George MacKerron\n * @license MIT\n * \n * This file implements a non-recursive JSON stringifier that's intended to\n * precisely match native `JSON.stringify` behaviour but also allow for custom\n * stringifying of numbers.\n */const x=/[\"\\\\\\u0000-\\u001f]/,q=Object.prototype.hasOwnProperty,z={maxDepth:5e4,\nskipToJSON:!1};function C(t,e,i,j,g={}){typeof g==\"number\"&&(g={maxDepth:g}),g=u(\nu({},z),g);const{maxDepth:J,skipToJSON:L}=g;let O,S;e!==void 0&&(typeof e==\"func\\\ntion\"?O=e:Array.isArray(e)&&(S=e.map(l=>String(l)))),i!==void 0&&(i=typeof i==\"s\\\ntring\"?i.slice(0,10):typeof i==\"number\"?\" \".slice(0,i):void 0);const P=J*\n(i===void 0?5:6);let r,s={\"\":t},d=0,c=[\"\"],h=!1,k=1,f=[],n=0,y=\"\",b=`\n`,o,p=new Set([]);do{if(d===k){p.delete(s),i!==void 0&&(b=f[--n],y+=b),y+=c===void 0?\n\"]\":\"}\",k=f[--n],h=f[--n],c=f[--n],d=f[--n],s=f[--n];continue}let l,w;c===void 0?\n(r=String(d),t=s[d]):(r=c[d],t=s[r]);let a=typeof t;if(L===!1&&t&&a===\"object\"&&\ntypeof t.toJSON==\"function\"&&(t=t.toJSON(r),a=typeof t),O!==void 0&&(t=O.call(s,\nr,t),a=typeof t),j===void 0||(o=j(r,t,a))===void 0)switch(a){case\"string\":o=x.test(\nt)?JSON.stringify(t):'\"'+t+'\"';break;case\"number\":o=isFinite(t)?String(t):\"null\";\nbreak;case\"boolean\":o=t===!0?\"true\":\"false\";break;case\"object\":if(t===null){o=\"n\\\null\";break}if(Array.isArray(t)){const m=t.length;m===0?o=\"[]\":(o=\"[\",l=void 0,w=\nm);break}const N=S===void 0?Object.keys(t):S.filter(m=>q.call(t,m)),A=N.length;A===\n0?o=\"{}\":(o=\"{\",l=N,w=A);break;case\"bigint\":throw new TypeError(\"Do not know how\\\n to serialize a BigInt: please provide a custom serializer function\");default:o=\nvoid 0}if(c===void 0?(d>0&&(y+=\",\"),i!==void 0&&(y+=b),y+=o===void 0?\"null\":o):o!==\nvoid 0&&(h?y+=\",\":h=!0,n>0&&(y+=i===void 0?(x.test(r)?JSON.stringify(r):'\"'+r+'\"')+\n\":\":b+(x.test(r)?JSON.stringify(r):'\"'+r+'\"')+\": \"),y+=o),d++,w!==void 0){if(f[n++]=\ns,f[n++]=d,f[n++]=c,f[n++]=h,f[n++]=k,i!==void 0&&(f[n++]=b,b+=i),s=t,d=0,c=l,h=\n!1,k=w,n>P)throw new RangeError(`Maximum nesting depth exceeded (current maximum\\\n is ${J})`);if(p.has(s))throw new TypeError(\"Cannot stringify circular structure\");\np.add(s)}}while(n!==0);return y||void 0}K(C,\"stringify\");export{C as stringify};\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A regular expression for testing whether a string represents an integer.\n *\n * @type {RegExp}\n * @private\n */\nconst INTEGER_REGEX = /^[+-]?\\d+$/;\n\n/**\n * Test whether a string represents an integer.\n *\n * @param value\n * The string to test.\n * @return {boolean}\n * true if the string contains an integer; false otherwise.\n */\nfunction isInteger(value) {\n return INTEGER_REGEX.test(value);\n}\n\nexport default isInteger;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\n\nconst EXPONENTIAL_PART_REGEX = /[eE][+-]?\\d+$/;\nconst LEADING_MINUS_AND_ZEROS_REGEX = /^-?(0*)?/;\nconst DOT_REGEX = /\\./;\nconst TRAILING_ZEROS_REGEX = /0+$/;\n\n/**\n * Get the significant digits of a number.\n *\n * For example:\n * - '2.34' returns '234'\n * - '-77' returns '77'\n * - '0.003400' returns '34'\n * - '120.5e+30' returns '1205'\n *\n * @param {string} value\n * The string representation of the number.\n * @return {string}\n * The significant digits of the number.\n * @private\n */\nfunction extractSignificantDigits(value) {\n return value\n .replace(EXPONENTIAL_PART_REGEX, '') // from \"-0.250e+30\" to \"-0.250\"\n .replace(DOT_REGEX, '') // from \"-0.250\" to \"-0250\"\n .replace(TRAILING_ZEROS_REGEX, '') // from \"-0250\" to \"-025\"\n .replace(LEADING_MINUS_AND_ZEROS_REGEX, ''); // from \"-025\" to \"25\"\n}\n\nexport default extractSignificantDigits;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A regular expression for testing whether a string represents a number.\n *\n * @type {RegExp}\n * @see http://stackoverflow.com/questions/13340717/json-numbers-regular-expression\n * @private\n */\nconst NUMBER_REGEX = /^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$/;\n\n/**\n * Test whether a string represents a number\n *\n * @param {string} value\n * The string to test.\n * @return {boolean}\n * true if the string contains a number; false otherwise.\n */\nfunction isNumber(value) {\n return NUMBER_REGEX.test(value);\n}\n\nexport default isNumber;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\nimport isInteger from './is-integer';\nimport extractSignificantDigits from './extract-significant-digits';\nimport isNumber from './is-number';\n\nconst DEFAULT_APPROX = false;\nconst DEFAULT_REQUIRED_DIGITS = 14;\n\n/**\n * Test whether a string can be safely represented with a number without\n * information loss.\n *\n * When the argument `approx` is true, floating point numbers that lose a few\n * digits but are still approximately equal in value are considered safe too.\n * Integer numbers must still be exactly equal.\n *\n * @param {string} value\n * The string to test.\n * @param {object} options\n * The options of the test. It may contain the following properties:\n * - `approx: boolean`: indicates whether to consider approximately equal\n * floating point numbers as safe. Default is `false`.\n * - `requiredDigits: number`: the number of significant digits required for\n * a floating point number to be considered approximately equal. Default\n * is `14`.\n * @return {boolean}\n * true if the string can be safely represented with a number; false\n * otherwise.\n */\nfunction isSafeNumber(value, options = undefined) {\n // handle the edge cases\n if (!isNumber(value) || value === '' || value === 'NaN') {\n return false;\n }\n\n const num = parseFloat(value);\n const str = String(num);\n if (value === str) {\n return true;\n }\n const v = extractSignificantDigits(value);\n const s = extractSignificantDigits(str);\n if (v === s) {\n return true;\n }\n\n // use the default options\n const approx = options?.approx ?? DEFAULT_APPROX;\n if (!approx) {\n return false;\n }\n\n // A value is approximately equal when:\n // 1. it is a floating point number, not an integer\n // 2. both v and s have at least requiredDigits digits\n // 3. the first requiredDigits digits are equal\n const requiredDigits = options?.requiredDigits ?? DEFAULT_REQUIRED_DIGITS;\n\n // check if the value is an integer\n const isIntegerVal = isInteger(value);\n if (isIntegerVal) {\n return true; // when the input is an integer and approx=true, return true\n }\n\n // check if s has at least requiredDigits digits\n const sLengthOk = s.length >= requiredDigits;\n if (!sLengthOk) {\n return false;\n }\n\n // check if v has at least requiredDigits digits\n const vLengthOk = v.length >= requiredDigits;\n\n if (vLengthOk) {\n // check if the first requiredDigits digits are equal\n const vPrefix = v.substring(0, requiredDigits);\n const sPrefix = s.substring(0, requiredDigits);\n return vPrefix === sPrefix;\n } else {\n // if v length is not enough, return true\n return true;\n }\n}\n\nexport {\n DEFAULT_APPROX,\n DEFAULT_REQUIRED_DIGITS,\n isSafeNumber,\n};\n\nexport default isSafeNumber;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\nimport isInteger from './is-integer';\nimport extractSignificantDigits from './extract-significant-digits';\n\n/**\n * When the provided value is an unsafe number, describe what the reason is\n * - `'overflow'`\n * - `'underflow'`\n * - `'truncate_integer'`\n * - `'truncate_float'`\n * - `'none'` (when the value is safe)\n *\n * @param {string} value\n * The string represents a number to test.\n * @return {string}\n * The reason why the value is unsafe. Returns `'none'` when the value is safe.\n */\nfunction getUnsafeReason(value) {\n const num = parseFloat(value);\n const str = String(num);\n if (value === str) {\n return 'none';\n }\n const v = extractSignificantDigits(value);\n const s = extractSignificantDigits(str);\n if (v === s) {\n return 'none';\n }\n if (isInteger(value)) {\n return 'truncate_integer';\n }\n if (!Number.isFinite(num)) {\n return 'overflow';\n }\n if (num === 0) {\n return 'underflow';\n }\n return 'truncate_float';\n}\n\nexport default getUnsafeReason;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\nimport isNumber from './is-number';\nimport getUnsafeReason from './get-unsafe-reason';\n\n/**\n * The class of lossless numbers, which stores its numeric value as string.\n */\nclass LosslessNumber {\n /**\n * The string representation of the number.\n *\n * @type {string}\n */\n value = '';\n\n /**\n * Whether the value is a lossless number.\n *\n * @type {boolean}\n */\n isLosslessNumber = true;\n\n /**\n * Constructs a new instance of `LosslessNumber`.\n *\n * @param {string} value\n * The string representation of the number.\n */\n constructor(value) {\n if (!isNumber(value)) {\n throw new Error(`Invalid number (value: \"${value}\")`);\n }\n this.value = value;\n }\n\n /**\n * Get the value of the LosslessNumber as number or bigint.\n *\n * - a number is returned for safe numbers and decimal values that only lose\n * some insignificant digits;\n * - a bigint is returned for big integer numbers;\n * - an Error is thrown for values that will overflow or underflow;\n *\n * Note that you can implement your own strategy for conversion by just\n * getting the value as string via `.toString()`, and using util functions\n * like `isInteger`, `isSafeNumber`, `getUnsafeReason`, and `toSafeNumberOrThrow`\n * to convert it to a numeric value.\n *\n * @return {number|bigint}\n * the numeric value of the LosslessNumber, as number or bigint.\n */\n valueOf() {\n const unsafeReason = getUnsafeReason(this.value);\n switch (unsafeReason) {\n case 'none':\n return parseFloat(this.value);\n case 'truncate_float':\n return parseFloat(this.value);\n case 'truncate_integer':\n return BigInt(this.value);\n case 'overflow':\n case 'underflow':\n throw new Error('Cannot safely CONVERT TO NUMBER: '\n + `the value '${this.value}' would ${unsafeReason} `\n + `and become ${parseFloat(this.value)}`);\n default:\n throw new Error('Unknown unsafe reason');\n }\n }\n\n /**\n * Get the value of this `LosslessNumber` as string.\n *\n * @return {string}\n * the string representation of this `LosslessNumber`.\n */\n toString() {\n return this.value;\n }\n\n // Note: we do NOT implement a .toJSON() method, and you should not implement\n // or use that, it cannot safely turn the numeric value in the string into\n // stringified JSON since it has to be parsed into a number first.\n}\n\nexport default LosslessNumber;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\nimport isInteger from './utils/is-integer';\nimport isSafeNumber from './utils/is-safe-number';\nimport LosslessNumber from './utils/lossless-number';\n\n/**\n * A custom function to parse a number from a string, which supports lossless\n * number parsing.\n *\n * @param {string} key\n * The key of the property.\n * @param {string} value\n * The value of the property.\n * @return {any}\n * The parsed value.\n * @private\n */\nfunction parseNumber(key, value) {\n // if (isBigInt(value)) {\n // return BigInt(value.slice(0, -1));\n // }\n if (isSafeNumber(value, { approx: false })) {\n return parseFloat(value);\n }\n if (isInteger(value)) {\n return BigInt(value);\n }\n return new LosslessNumber(value);\n}\n\nexport default parseNumber;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\nimport LosslessNumber from './utils/lossless-number';\n\n/**\n * Formats a number value.\n *\n * @param {string} key\n * The key of the property.\n * @param {string} value\n * The value of the property.\n * @param {string} type\n * The type of the value.\n * @return {undefined|string}\n * The formatted value. If the value is not a number, then return undefined.\n * @private\n */\nfunction formatNumber(key, value, type) {\n switch (type) {\n case 'bigint':\n return value.toString();\n case 'object':\n // if (value instanceof Set) {\n // return Array.from(value);\n // }\n // if (value instanceof Map) {\n // return Array.from(value);\n // }\n if (value instanceof LosslessNumber) {\n return value.toString();\n }\n return undefined;\n default:\n return undefined;\n }\n}\n\nexport default formatNumber;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A JSON replacer which serialize collections as arrays.\n *\n * @param {string} key\n * The key of the property.\n * @param {any} value\n * The value of the property.\n * @param {undefined|null|function} fallbackReplacer\n * The fallback replacer.\n * @return {any}\n * The serialized value.\n * @private\n */\nfunction collectionReplacer(key, value, fallbackReplacer) {\n if (value instanceof Set) {\n return Array.from(value);\n }\n if (value instanceof Map) {\n return Array.from(value);\n }\n if (fallbackReplacer) {\n return fallbackReplacer(key, value);\n }\n return value;\n}\n\nexport default collectionReplacer;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\nimport { parse, stringify } from 'json-custom-numbers';\nimport parseNumber from './parse-number';\nimport formatNumber from './format-number';\nimport collectionReplacer from './collection-replacer';\n\n/**\n * A customized JSON object which supports lossless number parsing and stringifying.\n *\n * This object provides two methods: `parse` and `stringify`, which are the same as the\n * `JSON.parse` and `JSON.stringify` methods, except that they support lossless number\n * parsing and stringifying.\n *\n * @type {object}\n */\nconst json = {\n parse: (text, reviver) => parse(text, reviver, parseNumber),\n stringify: (value, replacer, space) => stringify(value,\n (k, v) => collectionReplacer(k, v, replacer),\n space,\n formatNumber),\n};\n\njson[Symbol.toStringTag] = 'JSON';\n\nexport default json;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\n/**\n * A regular expression for testing whether a string represents a BigInt.\n *\n * @type {RegExp}\n * @private\n */\nconst BIG_INTEGER_REGEX = /^[+-]?\\d+n$/;\n\n/**\n * Test whether a string represents a BigInt.\n *\n * @param value\n * The string to test.\n * @return {boolean}\n * true if the string contains a BigInt; false otherwise.\n */\nfunction isBigInt(value) {\n return BIG_INTEGER_REGEX.test(value);\n}\n\nexport default isBigInt;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\nimport getUnsafeReason from './get-unsafe-reason';\nimport { DEFAULT_APPROX } from './is-safe-number';\n\n/**\n * Convert a string into a number when it is safe to do so.\n * Throws an error otherwise, explaining the reason.\n *\n * @param {string} value\n * The string to convert into a number.\n * @param {object} options\n * The options for conversion.\n * @return {number}\n * The converted safe number.\n * @throws {Error}\n * When the value is not safe to convert.\n */\nexport function toSafeNumberOrThrow(value, options = undefined) {\n const number = parseFloat(value);\n const unsafeReason = getUnsafeReason(value);\n if (unsafeReason === 'none') {\n return number;\n }\n const approx = options?.approx ?? DEFAULT_APPROX;\n // when approx is true, we allow truncating float values\n if (approx && (unsafeReason === 'truncate_float')) {\n return number;\n }\n const unsafeReasonText = unsafeReason?.replace(/_/, ' ');\n throw new Error('Cannot safely convert to number: '\n + `the value '${value}' would ${unsafeReasonText} and become ${number}`);\n}\n\nexport default toSafeNumberOrThrow;\n","////////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (c) 2022 - 2024.\n// Haixing Hu, Qubit Co. Ltd.\n//\n// All rights reserved.\n//\n////////////////////////////////////////////////////////////////////////////////\nimport Json from './json';\nimport LosslessNumber from './utils/lossless-number';\nimport isBigInt from './utils/is-bigint';\nimport isInteger from './utils/is-integer';\nimport isNumber from './utils/is-number';\nimport isSafeNumber from './utils/is-safe-number';\nimport getUnsafeReason from './utils/get-unsafe-reason';\nimport toSafeNumberOrThrow from './utils/to-safe-number-or-throw';\n\nexport {\n getUnsafeReason,\n isBigInt,\n isInteger,\n isNumber,\n isSafeNumber,\n Json,\n LosslessNumber,\n toSafeNumberOrThrow,\n};\n\nexport default Json;\n"],"names":["T","C","D","x","q","K","INTEGER_REGEX","isInteger","value","test","EXPONENTIAL_PART_REGEX","LEADING_MINUS_AND_ZEROS_REGEX","DOT_REGEX","TRAILING_ZEROS_REGEX","extractSignificantDigits","replace","NUMBER_REGEX","isNumber","DEFAULT_APPROX","DEFAULT_REQUIRED_DIGITS","isSafeNumber","_options$approx","_options$requiredDigi","options","arguments","length","undefined","num","parseFloat","str","String","v","s","approx","requiredDigits","isIntegerVal","sLengthOk","vLengthOk","vPrefix","substring","sPrefix","getUnsafeReason","Number","isFinite","LosslessNumber","_classCallCheck","_defineProperty","Error","concat","_createClass","key","valueOf","unsafeReason","BigInt","toString","parseNumber","formatNumber","type","collectionReplacer","fallbackReplacer","Set","Array","from","Map","json","parse","text","reviver","stringify","replacer","space","k","Symbol","toStringTag","BIG_INTEGER_REGEX","isBigInt","toSafeNumberOrThrow","number","unsafeReasonText"],"mappings":";;;;;;;;AAAA,IAAIA,GAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAIC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGD,GAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAE,CAAC,CAAC,CAAC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,MAAM,CAAC,CAAC,uBAAuB,CAACE,GAAC,CAAC,kEAAkE;AACvG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACxD;AACA;AACA,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAACC,GAAC,CAACF,GAAC,CAAC,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAACE,GAAC,EAAE,CAAC,CAAC,CAACA,GAAC,EAAE,CAAC,CAAC,CAACA,GAAC,EAAE,CAAC,CAAC,CAACA,GAAC,EAAE;AACnF,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACnF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAM;AAC5E,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;AAChF,OAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AAChF,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAACF,GAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/E,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC,CAACA,GAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAASG,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,MAAM,CAAC,CAAC,CAAC,GAAG,IAAE,CAAC,WAAW,CAAC,CAAC,GAAG,KAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAM,CAAC,EAAE,CAAC;AAC1E,YAAY,EAAE,CAAC,CAAC;AAChB,EAAE,CAAC;AACH,EAAE,CAAC,CAAC,CAAC,CAACH,GAAC,CAACG,GAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAASC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AACjF,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ;AACtF,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACtF,MAAM,IAAI,WAAW,CAAC,CAAC,CAACD,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACH,GAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7D,kCAAkC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAC,CAACA,GAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAC,CAACA,GAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGC,GAAC,CAAC,SAAS;AACtF,CAAC,CAACA,GAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAACA,GAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACpF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAACD,GAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAChF,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;AACnF,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/E,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,oBAAoB,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxE,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC;AAChF,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;AACvF,CAAC,GAAE,CAAC,CAAC,CAACA,GAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;AAC7E,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAE,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC;AAChF,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,IAAE,CAAC,OAAO,CAAC,CAAC,GAAG,IAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS;AAC/E,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE;AAC9E,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;AAClF,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/E,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAChF,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;AAChF,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,IAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC9E,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;AAClF,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAE,CAAC;AAClF,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACnE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU;AACnF,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC7D,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;AAC7E,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;AAC7E,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClF,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC,CAAC,IAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAE,EAAE,CAAC,CAAC;AAC1E,mCAAmC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAACA,GAAC,CAACI,GAAC;AAChF,OAAO,CAAC;;ACjER,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAE,CAAC,YAAY,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7N,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;AACpF,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAE,CAAC,CAAC,CAAC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG;AACjF,UAAU,CAAC,KAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE;AAC3E,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE;AAC9E,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjF,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM;AACpF,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM;AAChF,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,KAAE,EAAE,CAAC,EAAE,CAAC,GAAG,QAAQ;AAC9E,OAAO,CAAC,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,KAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;AAClF,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;AAChF,MAAM,KAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9E,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/E,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAChF,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAI,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC;AAChE,oEAAoE,CAAC,CAAC,QAAQ,CAAC;AAC/E,OAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;AAChF,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;AACjF,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACnF,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/E,KAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC;AACjC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC;AAClF,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;;ACjCxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,aAAa,GAAG,YAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,SAASA,CAACC,KAAK,EAAE;AACxB,EAAA,OAAOF,aAAa,CAACG,IAAI,CAACD,KAAK,CAAC;AAClC;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAME,sBAAsB,GAAG,eAAe;AAC9C,IAAMC,6BAA6B,GAAG,UAAU;AAChD,IAAMC,SAAS,GAAG,IAAI;AACtB,IAAMC,oBAAoB,GAAG,KAAK;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,wBAAwBA,CAACN,KAAK,EAAE;EACvC,OAAOA,KAAK,CACTO,OAAO,CAACL,sBAAsB,EAAE,EAAE,CAAC;AAAU,GAC7CK,OAAO,CAACH,SAAS,EAAE,EAAE,CAAC;AAAuB,GAC7CG,OAAO,CAACF,oBAAoB,EAAE,EAAE,CAAC;AAAY,GAC7CE,OAAO,CAACJ,6BAA6B,EAAE,EAAE,CAAC,CAAC;AAChD;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMK,YAAY,GAAG,+CAA+C;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,QAAQA,CAACT,KAAK,EAAE;AACvB,EAAA,OAAOQ,YAAY,CAACP,IAAI,CAACD,KAAK,CAAC;AACjC;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA,IAAMU,cAAc,GAAG,KAAK;AAC5B,IAAMC,uBAAuB,GAAG,EAAE;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,YAAYA,CAACZ,KAAK,EAAuB;EAAA,IAAAa,eAAA,EAAAC,qBAAA;AAAA,EAAA,IAArBC,OAAO,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAGE,SAAS;AAC9C;AACA,EAAA,IAAI,CAACT,QAAQ,CAACT,KAAK,CAAC,IAAIA,KAAK,KAAK,EAAE,IAAIA,KAAK,KAAK,KAAK,EAAE;AACvD,IAAA,OAAO,KAAK;AACd;AAEA,EAAA,IAAMmB,GAAG,GAAGC,UAAU,CAACpB,KAAK,CAAC;AAC7B,EAAA,IAAMqB,GAAG,GAAGC,MAAM,CAACH,GAAG,CAAC;EACvB,IAAInB,KAAK,KAAKqB,GAAG,EAAE;AACjB,IAAA,OAAO,IAAI;AACb;AACA,EAAA,IAAME,CAAC,GAAGjB,wBAAwB,CAACN,KAAK,CAAC;AACzC,EAAA,IAAMwB,CAAC,GAAGlB,wBAAwB,CAACe,GAAG,CAAC;EACvC,IAAIE,CAAC,KAAKC,CAAC,EAAE;AACX,IAAA,OAAO,IAAI;AACb;;AAEA;AACA,EAAA,IAAMC,MAAM,GAAAZ,CAAAA,eAAA,GAAGE,OAAO,aAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEU,MAAM,MAAAZ,IAAAA,IAAAA,eAAA,KAAAA,MAAAA,GAAAA,eAAA,GAAIH,cAAc;EAChD,IAAI,CAACe,MAAM,EAAE;AACX,IAAA,OAAO,KAAK;AACd;;AAEA;AACA;AACA;AACA;AACA,EAAA,IAAMC,cAAc,GAAAZ,CAAAA,qBAAA,GAAGC,OAAO,aAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEW,cAAc,MAAAZ,IAAAA,IAAAA,qBAAA,KAAAA,MAAAA,GAAAA,qBAAA,GAAIH,uBAAuB;;AAEzE;AACA,EAAA,IAAMgB,YAAY,GAAG5B,SAAS,CAACC,KAAK,CAAC;AACrC,EAAA,IAAI2B,YAAY,EAAE;IAChB,OAAO,IAAI,CAAC;AACd;;AAEA;AACA,EAAA,IAAMC,SAAS,GAAGJ,CAAC,CAACP,MAAM,IAAIS,cAAc;EAC5C,IAAI,CAACE,SAAS,EAAE;AACd,IAAA,OAAO,KAAK;AACd;;AAEA;AACA,EAAA,IAAMC,SAAS,GAAGN,CAAC,CAACN,MAAM,IAAIS,cAAc;AAE5C,EAAA,IAAIG,SAAS,EAAE;AACb;IACA,IAAMC,OAAO,GAAGP,CAAC,CAACQ,SAAS,CAAC,CAAC,EAAEL,cAAc,CAAC;IAC9C,IAAMM,OAAO,GAAGR,CAAC,CAACO,SAAS,CAAC,CAAC,EAAEL,cAAc,CAAC;IAC9C,OAAOI,OAAO,KAAKE,OAAO;AAC5B,GAAC,MAAM;AACL;AACA,IAAA,OAAO,IAAI;AACb;AACF;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,eAAeA,CAACjC,KAAK,EAAE;AAC9B,EAAA,IAAMmB,GAAG,GAAGC,UAAU,CAACpB,KAAK,CAAC;AAC7B,EAAA,IAAMqB,GAAG,GAAGC,MAAM,CAACH,GAAG,CAAC;EACvB,IAAInB,KAAK,KAAKqB,GAAG,EAAE;AACjB,IAAA,OAAO,MAAM;AACf;AACA,EAAA,IAAME,CAAC,GAAGjB,wBAAwB,CAACN,KAAK,CAAC;AACzC,EAAA,IAAMwB,CAAC,GAAGlB,wBAAwB,CAACe,GAAG,CAAC;EACvC,IAAIE,CAAC,KAAKC,CAAC,EAAE;AACX,IAAA,OAAO,MAAM;AACf;AACA,EAAA,IAAIzB,SAAS,CAACC,KAAK,CAAC,EAAE;AACpB,IAAA,OAAO,kBAAkB;AAC3B;AACA,EAAA,IAAI,CAACkC,MAAM,CAACC,QAAQ,CAAChB,GAAG,CAAC,EAAE;AACzB,IAAA,OAAO,UAAU;AACnB;EACA,IAAIA,GAAG,KAAK,CAAC,EAAE;AACb,IAAA,OAAO,WAAW;AACpB;AACA,EAAA,OAAO,gBAAgB;AACzB;;AClCA;AACA;AACA;AAFA,IAGMiB,cAAc,gBAAA,YAAA;AAelB;AACF;AACA;AACA;AACA;AACA;EACE,SAAAA,cAAAA,CAAYpC,KAAK,EAAE;AAAAqC,IAAAA,eAAA,OAAAD,cAAA,CAAA;AApBnB;AACF;AACA;AACA;AACA;AAJEE,IAAAA,eAAA,gBAKQ,EAAE,CAAA;AAEV;AACF;AACA;AACA;AACA;AAJEA,IAAAA,eAAA,2BAKmB,IAAI,CAAA;AASrB,IAAA,IAAI,CAAC7B,QAAQ,CAACT,KAAK,CAAC,EAAE;AACpB,MAAA,MAAM,IAAIuC,KAAK,CAAA,2BAAA,CAAAC,MAAA,CAA4BxC,KAAK,QAAI,CAAC;AACvD;IACA,IAAI,CAACA,KAAK,GAAGA,KAAK;AACpB;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAfE,OAAAyC,YAAA,CAAAL,cAAA,EAAA,CAAA;IAAAM,GAAA,EAAA,SAAA;AAAA1C,IAAAA,KAAA,EAgBA,SAAA2C,OAAOA,GAAG;AACR,MAAA,IAAMC,YAAY,GAAGX,eAAe,CAAC,IAAI,CAACjC,KAAK,CAAC;AAChD,MAAA,QAAQ4C,YAAY;AAClB,QAAA,KAAK,MAAM;AACT,UAAA,OAAOxB,UAAU,CAAC,IAAI,CAACpB,KAAK,CAAC;AAC/B,QAAA,KAAK,gBAAgB;AACnB,UAAA,OAAOoB,UAAU,CAAC,IAAI,CAACpB,KAAK,CAAC;AAC/B,QAAA,KAAK,kBAAkB;AACrB,UAAA,OAAO6C,MAAM,CAAC,IAAI,CAAC7C,KAAK,CAAC;AAC3B,QAAA,KAAK,UAAU;AACf,QAAA,KAAK,WAAW;UACd,MAAM,IAAIuC,KAAK,CAAC,mCAAmC,GAAA,aAAA,CAAAC,MAAA,CACjC,IAAI,CAACxC,KAAK,EAAAwC,UAAAA,CAAAA,CAAAA,MAAA,CAAWI,YAAY,EAAA,GAAA,CAAG,GAAAJ,aAAAA,CAAAA,MAAA,CACpCpB,UAAU,CAAC,IAAI,CAACpB,KAAK,CAAC,CAAE,CAAC;AAC7C,QAAA;AACE,UAAA,MAAM,IAAIuC,KAAK,CAAC,uBAAuB,CAAC;AAC5C;AACF;;AAEA;AACF;AACA;AACA;AACA;AACA;AALE,GAAA,EAAA;IAAAG,GAAA,EAAA,UAAA;AAAA1C,IAAAA,KAAA,EAMA,SAAA8C,QAAQA,GAAG;MACT,OAAO,IAAI,CAAC9C,KAAK;AACnB;;AAEA;AACA;AACA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA;;ACzFF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS+C,WAAWA,CAACL,GAAG,EAAE1C,KAAK,EAAE;AAC/B;AACA;AACA;EACA,IAAIY,YAAY,CAACZ,KAAK,EAAE;AAAEyB,IAAAA,MAAM,EAAE;AAAM,GAAC,CAAC,EAAE;IAC1C,OAAOL,UAAU,CAACpB,KAAK,CAAC;AAC1B;AACA,EAAA,IAAID,SAAS,CAACC,KAAK,CAAC,EAAE;IACpB,OAAO6C,MAAM,CAAC7C,KAAK,CAAC;AACtB;AACA,EAAA,OAAO,IAAIoC,cAAc,CAACpC,KAAK,CAAC;AAClC;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASgD,YAAYA,CAACN,GAAG,EAAE1C,KAAK,EAAEiD,IAAI,EAAE;AACtC,EAAA,QAAQA,IAAI;AACV,IAAA,KAAK,QAAQ;AACX,MAAA,OAAOjD,KAAK,CAAC8C,QAAQ,EAAE;AACzB,IAAA,KAAK,QAAQ;AACX;AACA;AACA;AACA;AACA;AACA;MACA,IAAI9C,KAAK,YAAYoC,cAAc,EAAE;AACnC,QAAA,OAAOpC,KAAK,CAAC8C,QAAQ,EAAE;AACzB;AACA,MAAA,OAAO5B,SAAS;AAClB,IAAA;AACE,MAAA,OAAOA,SAAS;AACpB;AACF;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASgC,kBAAkBA,CAACR,GAAG,EAAE1C,KAAK,EAAEmD,gBAAgB,EAAE;EACxD,IAAInD,KAAK,YAAYoD,GAAG,EAAE;AACxB,IAAA,OAAOC,KAAK,CAACC,IAAI,CAACtD,KAAK,CAAC;AAC1B;EACA,IAAIA,KAAK,YAAYuD,GAAG,EAAE;AACxB,IAAA,OAAOF,KAAK,CAACC,IAAI,CAACtD,KAAK,CAAC;AAC1B;AACA,EAAA,IAAImD,gBAAgB,EAAE;AACpB,IAAA,OAAOA,gBAAgB,CAACT,GAAG,EAAE1C,KAAK,CAAC;AACrC;AACA,EAAA,OAAOA,KAAK;AACd;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMwD,IAAI,GAAG;AACXC,EAAAA,KAAK,EAAE,SAAPA,KAAKA,CAAGC,IAAI,EAAEC,OAAO,EAAA;AAAA,IAAA,OAAKF,GAAK,CAACC,IAAI,EAAEC,OAAO,EAAEZ,WAAW,CAAC;AAAA,GAAA;EAC3Da,SAAS,EAAE,SAAXA,SAASA,CAAG5D,KAAK,EAAE6D,QAAQ,EAAEC,KAAK,EAAA;AAAA,IAAA,OAAKF,CAAS,CAAC5D,KAAK,EACpD,UAAC+D,CAAC,EAAExC,CAAC,EAAA;AAAA,MAAA,OAAK2B,kBAAkB,CAACa,CAAC,EAAExC,CAAC,EAAEsC,QAAQ,CAAC;KAC5CC,EAAAA,KAAK,EACLd,YAAY,CAAC;AAAA;AACjB;AAEAQ,IAAI,CAACQ,MAAM,CAACC,WAAW,CAAC,GAAG,MAAM;;AC9BjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,iBAAiB,GAAG,aAAa;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,QAAQA,CAACnE,KAAK,EAAE;AACvB,EAAA,OAAOkE,iBAAiB,CAACjE,IAAI,CAACD,KAAK,CAAC;AACtC;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASoE,mBAAmBA,CAACpE,KAAK,EAAuB;AAAA,EAAA,IAAAa,eAAA;AAAA,EAAA,IAArBE,OAAO,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAGE,SAAS;AAC5D,EAAA,IAAMmD,MAAM,GAAGjD,UAAU,CAACpB,KAAK,CAAC;AAChC,EAAA,IAAM4C,YAAY,GAAGX,eAAe,CAACjC,KAAK,CAAC;EAC3C,IAAI4C,YAAY,KAAK,MAAM,EAAE;AAC3B,IAAA,OAAOyB,MAAM;AACf;AACA,EAAA,IAAM5C,MAAM,GAAAZ,CAAAA,eAAA,GAAGE,OAAO,aAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEU,MAAM,MAAAZ,IAAAA,IAAAA,eAAA,KAAAA,MAAAA,GAAAA,eAAA,GAAIH,cAAc;AAChD;AACA,EAAA,IAAIe,MAAM,IAAKmB,YAAY,KAAK,gBAAiB,EAAE;AACjD,IAAA,OAAOyB,MAAM;AACf;AACA,EAAA,IAAMC,gBAAgB,GAAG1B,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,MAAA,GAAA,MAAA,GAAZA,YAAY,CAAErC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;AACxD,EAAA,MAAM,IAAIgC,KAAK,CAAC,mCAAmC,GAAA,aAAA,CAAAC,MAAA,CAC/BxC,KAAK,EAAAwC,UAAAA,CAAAA,CAAAA,MAAA,CAAW8B,gBAAgB,EAAA,cAAA,CAAA,CAAA9B,MAAA,CAAe6B,MAAM,CAAE,CAAC;AAC9E;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1]}