tinybase 7.3.1 → 7.3.3

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.
Files changed (142) hide show
  1. package/@types/mergeable-store/with-schemas/index.d.ts +1 -1
  2. package/min/omni/index.js +1 -1
  3. package/min/omni/index.js.gz +0 -0
  4. package/min/omni/with-schemas/index.js +1 -1
  5. package/min/omni/with-schemas/index.js.gz +0 -0
  6. package/min/persisters/index.js +1 -1
  7. package/min/persisters/index.js.gz +0 -0
  8. package/min/persisters/persister-browser/index.js +1 -1
  9. package/min/persisters/persister-browser/index.js.gz +0 -0
  10. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  11. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  12. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  13. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  14. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  15. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  16. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  17. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  18. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  19. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  20. package/min/persisters/persister-durable-object-storage/index.js +1 -1
  21. package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  22. package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
  23. package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  24. package/min/persisters/persister-electric-sql/index.js +1 -1
  25. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  26. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  27. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  28. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  29. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  30. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  31. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  32. package/min/persisters/persister-file/index.js +1 -1
  33. package/min/persisters/persister-file/index.js.gz +0 -0
  34. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  35. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  36. package/min/persisters/persister-libsql/index.js +1 -1
  37. package/min/persisters/persister-libsql/index.js.gz +0 -0
  38. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  39. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  40. package/min/persisters/persister-partykit-client/index.js +1 -1
  41. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  42. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  43. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  44. package/min/persisters/persister-partykit-server/index.js +1 -1
  45. package/min/persisters/persister-partykit-server/index.js.gz +0 -0
  46. package/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
  47. package/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  48. package/min/persisters/persister-pglite/index.js +1 -1
  49. package/min/persisters/persister-pglite/index.js.gz +0 -0
  50. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  51. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  52. package/min/persisters/persister-postgres/index.js +1 -1
  53. package/min/persisters/persister-postgres/index.js.gz +0 -0
  54. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  55. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  56. package/min/persisters/persister-powersync/index.js +1 -1
  57. package/min/persisters/persister-powersync/index.js.gz +0 -0
  58. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  59. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  60. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  61. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  62. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  63. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  64. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  65. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  66. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  67. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  68. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  69. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  70. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  71. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  72. package/min/persisters/persister-sqlite3/index.js +1 -1
  73. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  74. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  75. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  76. package/min/persisters/with-schemas/index.js +1 -1
  77. package/min/persisters/with-schemas/index.js.gz +0 -0
  78. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  79. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  80. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  81. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  82. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  83. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  84. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  85. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  86. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  87. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  88. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  89. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  90. package/min/ui-react-inspector/index.js +1 -1
  91. package/min/ui-react-inspector/index.js.gz +0 -0
  92. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  93. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  94. package/omni/index.js +21 -9
  95. package/omni/with-schemas/index.js +21 -9
  96. package/package.json +18 -18
  97. package/persisters/index.js +10 -1
  98. package/persisters/persister-browser/index.js +17 -1
  99. package/persisters/persister-browser/with-schemas/index.js +17 -1
  100. package/persisters/persister-cr-sqlite-wasm/index.js +10 -1
  101. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +10 -1
  102. package/persisters/persister-durable-object-sql-storage/index.js +10 -1
  103. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +10 -1
  104. package/persisters/persister-durable-object-storage/index.js +5 -6
  105. package/persisters/persister-durable-object-storage/with-schemas/index.js +5 -6
  106. package/persisters/persister-electric-sql/index.js +10 -1
  107. package/persisters/persister-electric-sql/with-schemas/index.js +10 -1
  108. package/persisters/persister-expo-sqlite/index.js +10 -1
  109. package/persisters/persister-expo-sqlite/with-schemas/index.js +10 -1
  110. package/persisters/persister-file/index.js +17 -1
  111. package/persisters/persister-file/with-schemas/index.js +17 -1
  112. package/persisters/persister-libsql/index.js +10 -1
  113. package/persisters/persister-libsql/with-schemas/index.js +10 -1
  114. package/persisters/persister-partykit-client/index.js +27 -2
  115. package/persisters/persister-partykit-client/with-schemas/index.js +27 -2
  116. package/persisters/persister-partykit-server/index.js +37 -2
  117. package/persisters/persister-partykit-server/with-schemas/index.js +37 -2
  118. package/persisters/persister-pglite/index.js +10 -1
  119. package/persisters/persister-pglite/with-schemas/index.js +10 -1
  120. package/persisters/persister-postgres/index.js +10 -1
  121. package/persisters/persister-postgres/with-schemas/index.js +10 -1
  122. package/persisters/persister-powersync/index.js +10 -1
  123. package/persisters/persister-powersync/with-schemas/index.js +10 -1
  124. package/persisters/persister-react-native-sqlite/index.js +10 -1
  125. package/persisters/persister-react-native-sqlite/with-schemas/index.js +10 -1
  126. package/persisters/persister-sqlite-bun/index.js +10 -1
  127. package/persisters/persister-sqlite-bun/with-schemas/index.js +10 -1
  128. package/persisters/persister-sqlite-wasm/index.js +10 -1
  129. package/persisters/persister-sqlite-wasm/with-schemas/index.js +10 -1
  130. package/persisters/persister-sqlite3/index.js +10 -1
  131. package/persisters/persister-sqlite3/with-schemas/index.js +10 -1
  132. package/persisters/with-schemas/index.js +10 -1
  133. package/readme.md +10 -2
  134. package/releases.md +1 -1
  135. package/synchronizers/synchronizer-ws-client/index.js +14 -1
  136. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +14 -1
  137. package/synchronizers/synchronizer-ws-server/index.js +14 -1
  138. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +14 -1
  139. package/synchronizers/synchronizer-ws-server-durable-object/index.js +14 -1
  140. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +14 -1
  141. package/ui-react-inspector/index.js +10 -1
  142. package/ui-react-inspector/with-schemas/index.js +10 -1
@@ -3,15 +3,19 @@ const EMPTY_STRING = '';
3
3
  const STRING = getTypeOf(EMPTY_STRING);
4
4
  const T = 't';
5
5
  const V = 'v';
6
+ const UNDEFINED = '\uFFFC';
6
7
  const strStartsWith = (str, prefix) => str.startsWith(prefix);
7
8
 
8
9
  const promise = Promise;
9
10
  const getIfNotFunction = (predicate) => (value, then, otherwise) =>
10
11
  predicate(value) ? otherwise?.() : then(value);
11
12
  const isInstanceOf = (thing, cls) => thing instanceof cls;
13
+ const isNullish = (thing) => thing == null;
12
14
  const isUndefined = (thing) => thing === void 0;
15
+ const ifNotNullish = getIfNotFunction(isNullish);
13
16
  const ifNotUndefined = getIfNotFunction(isUndefined);
14
17
  const isString = (thing) => getTypeOf(thing) == STRING;
18
+ const isArray = (thing) => Array.isArray(thing);
15
19
  const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
16
20
  const size = (arrayOrString) => arrayOrString.length;
17
21
  const promiseAll = async (promises) => promise.all(promises);
@@ -23,11 +27,25 @@ const arrayPush = (array, ...values) => array.push(...values);
23
27
  const arrayUnshift = (array, ...values) => array.unshift(...values);
24
28
 
25
29
  const object = Object;
30
+ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
26
31
  const objEntries = object.entries;
32
+ const isObject = (obj) =>
33
+ !isNullish(obj) &&
34
+ ifNotNullish(
35
+ getPrototypeOf(obj),
36
+ (objPrototype) =>
37
+ objPrototype == object.prototype ||
38
+ isNullish(getPrototypeOf(objPrototype)),
39
+
40
+ /* istanbul ignore next */
41
+ () => true,
42
+ );
27
43
  const objNew = (entries = []) => object.fromEntries(entries);
28
44
  const objHas = (obj, id) => id in obj;
29
45
  const objToArray = (obj, cb) =>
30
46
  arrayMap(objEntries(obj), ([id, value]) => cb(value, id));
47
+ const objMap = (obj, cb) =>
48
+ objNew(objToArray(obj, (value, id) => [id, cb(value, id)]));
31
49
  const objEnsure = (obj, id, getDefaultValue) => {
32
50
  if (!objHas(obj, id)) {
33
51
  obj[id] = getDefaultValue();
@@ -41,6 +59,19 @@ const jsonStringWithMap = (obj) =>
41
59
  jsonString(obj, (_key, value) =>
42
60
  isInstanceOf(value, Map) ? object.fromEntries([...value]) : value,
43
61
  );
62
+ const jsonStringWithUndefined = (obj) =>
63
+ jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
64
+ const jsonParseWithUndefined = (str) =>
65
+ // JSON.parse reviver removes properties with undefined values
66
+ replaceUndefinedString(jsonParse(str));
67
+ const replaceUndefinedString = (obj) =>
68
+ obj === UNDEFINED
69
+ ? void 0
70
+ : isArray(obj)
71
+ ? arrayMap(obj, replaceUndefinedString)
72
+ : isObject(obj)
73
+ ? objMap(obj, replaceUndefinedString)
74
+ : obj;
44
75
 
45
76
  const collForEach = (coll, cb) => coll?.forEach(cb);
46
77
 
@@ -51,13 +82,17 @@ const SET_CHANGES = 's';
51
82
  const STORE_PATH = '/store';
52
83
  const PUT = 'PUT';
53
84
  const construct = (prefix, type, payload) =>
54
- prefix + type + (isString(payload) ? payload : jsonStringWithMap(payload));
85
+ prefix +
86
+ type +
87
+ (isString(payload) ? payload : jsonStringWithUndefined(payload));
55
88
  const deconstruct = (prefix, message, stringified) => {
56
89
  const prefixSize = size(prefix);
57
90
  return strStartsWith(message, prefix)
58
91
  ? [
59
92
  message[prefixSize],
60
- (stringified ? jsonParse : String)(slice(message, prefixSize + 1)),
93
+ (stringified ? jsonParseWithUndefined : String)(
94
+ slice(message, prefixSize + 1),
95
+ ),
61
96
  ]
62
97
  : void 0;
63
98
  };
@@ -3,15 +3,19 @@ const EMPTY_STRING = '';
3
3
  const STRING = getTypeOf(EMPTY_STRING);
4
4
  const T = 't';
5
5
  const V = 'v';
6
+ const UNDEFINED = '\uFFFC';
6
7
  const strStartsWith = (str, prefix) => str.startsWith(prefix);
7
8
 
8
9
  const promise = Promise;
9
10
  const getIfNotFunction = (predicate) => (value, then, otherwise) =>
10
11
  predicate(value) ? otherwise?.() : then(value);
11
12
  const isInstanceOf = (thing, cls) => thing instanceof cls;
13
+ const isNullish = (thing) => thing == null;
12
14
  const isUndefined = (thing) => thing === void 0;
15
+ const ifNotNullish = getIfNotFunction(isNullish);
13
16
  const ifNotUndefined = getIfNotFunction(isUndefined);
14
17
  const isString = (thing) => getTypeOf(thing) == STRING;
18
+ const isArray = (thing) => Array.isArray(thing);
15
19
  const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
16
20
  const size = (arrayOrString) => arrayOrString.length;
17
21
  const promiseAll = async (promises) => promise.all(promises);
@@ -23,11 +27,25 @@ const arrayPush = (array, ...values) => array.push(...values);
23
27
  const arrayUnshift = (array, ...values) => array.unshift(...values);
24
28
 
25
29
  const object = Object;
30
+ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
26
31
  const objEntries = object.entries;
32
+ const isObject = (obj) =>
33
+ !isNullish(obj) &&
34
+ ifNotNullish(
35
+ getPrototypeOf(obj),
36
+ (objPrototype) =>
37
+ objPrototype == object.prototype ||
38
+ isNullish(getPrototypeOf(objPrototype)),
39
+
40
+ /* istanbul ignore next */
41
+ () => true,
42
+ );
27
43
  const objNew = (entries = []) => object.fromEntries(entries);
28
44
  const objHas = (obj, id) => id in obj;
29
45
  const objToArray = (obj, cb) =>
30
46
  arrayMap(objEntries(obj), ([id, value]) => cb(value, id));
47
+ const objMap = (obj, cb) =>
48
+ objNew(objToArray(obj, (value, id) => [id, cb(value, id)]));
31
49
  const objEnsure = (obj, id, getDefaultValue) => {
32
50
  if (!objHas(obj, id)) {
33
51
  obj[id] = getDefaultValue();
@@ -41,6 +59,19 @@ const jsonStringWithMap = (obj) =>
41
59
  jsonString(obj, (_key, value) =>
42
60
  isInstanceOf(value, Map) ? object.fromEntries([...value]) : value,
43
61
  );
62
+ const jsonStringWithUndefined = (obj) =>
63
+ jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
64
+ const jsonParseWithUndefined = (str) =>
65
+ // JSON.parse reviver removes properties with undefined values
66
+ replaceUndefinedString(jsonParse(str));
67
+ const replaceUndefinedString = (obj) =>
68
+ obj === UNDEFINED
69
+ ? void 0
70
+ : isArray(obj)
71
+ ? arrayMap(obj, replaceUndefinedString)
72
+ : isObject(obj)
73
+ ? objMap(obj, replaceUndefinedString)
74
+ : obj;
44
75
 
45
76
  const collForEach = (coll, cb) => coll?.forEach(cb);
46
77
 
@@ -51,13 +82,17 @@ const SET_CHANGES = 's';
51
82
  const STORE_PATH = '/store';
52
83
  const PUT = 'PUT';
53
84
  const construct = (prefix, type, payload) =>
54
- prefix + type + (isString(payload) ? payload : jsonStringWithMap(payload));
85
+ prefix +
86
+ type +
87
+ (isString(payload) ? payload : jsonStringWithUndefined(payload));
55
88
  const deconstruct = (prefix, message, stringified) => {
56
89
  const prefixSize = size(prefix);
57
90
  return strStartsWith(message, prefix)
58
91
  ? [
59
92
  message[prefixSize],
60
- (stringified ? jsonParse : String)(slice(message, prefixSize + 1)),
93
+ (stringified ? jsonParseWithUndefined : String)(
94
+ slice(message, prefixSize + 1),
95
+ ),
61
96
  ]
62
97
  : void 0;
63
98
  };
@@ -93,7 +93,16 @@ const jsonParse = JSON.parse;
93
93
  const jsonStringWithUndefined = (obj) =>
94
94
  jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
95
95
  const jsonParseWithUndefined = (str) =>
96
- jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
96
+ // JSON.parse reviver removes properties with undefined values
97
+ replaceUndefinedString(jsonParse(str));
98
+ const replaceUndefinedString = (obj) =>
99
+ obj === UNDEFINED
100
+ ? void 0
101
+ : isArray(obj)
102
+ ? arrayMap(obj, replaceUndefinedString)
103
+ : isObject(obj)
104
+ ? objMap(obj, replaceUndefinedString)
105
+ : obj;
97
106
 
98
107
  const textEncoder = /* @__PURE__ */ new GLOBAL.TextEncoder();
99
108
  const getHash = (string) => {
@@ -93,7 +93,16 @@ const jsonParse = JSON.parse;
93
93
  const jsonStringWithUndefined = (obj) =>
94
94
  jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
95
95
  const jsonParseWithUndefined = (str) =>
96
- jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
96
+ // JSON.parse reviver removes properties with undefined values
97
+ replaceUndefinedString(jsonParse(str));
98
+ const replaceUndefinedString = (obj) =>
99
+ obj === UNDEFINED
100
+ ? void 0
101
+ : isArray(obj)
102
+ ? arrayMap(obj, replaceUndefinedString)
103
+ : isObject(obj)
104
+ ? objMap(obj, replaceUndefinedString)
105
+ : obj;
97
106
 
98
107
  const textEncoder = /* @__PURE__ */ new GLOBAL.TextEncoder();
99
108
  const getHash = (string) => {
@@ -92,7 +92,16 @@ const jsonParse = JSON.parse;
92
92
  const jsonStringWithUndefined = (obj) =>
93
93
  jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
94
94
  const jsonParseWithUndefined = (str) =>
95
- jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
95
+ // JSON.parse reviver removes properties with undefined values
96
+ replaceUndefinedString(jsonParse(str));
97
+ const replaceUndefinedString = (obj) =>
98
+ obj === UNDEFINED
99
+ ? void 0
100
+ : isArray(obj)
101
+ ? arrayMap(obj, replaceUndefinedString)
102
+ : isObject(obj)
103
+ ? objMap(obj, replaceUndefinedString)
104
+ : obj;
96
105
 
97
106
  const textEncoder = /* @__PURE__ */ new GLOBAL.TextEncoder();
98
107
  const getHash = (string) => {
@@ -92,7 +92,16 @@ const jsonParse = JSON.parse;
92
92
  const jsonStringWithUndefined = (obj) =>
93
93
  jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
94
94
  const jsonParseWithUndefined = (str) =>
95
- jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
95
+ // JSON.parse reviver removes properties with undefined values
96
+ replaceUndefinedString(jsonParse(str));
97
+ const replaceUndefinedString = (obj) =>
98
+ obj === UNDEFINED
99
+ ? void 0
100
+ : isArray(obj)
101
+ ? arrayMap(obj, replaceUndefinedString)
102
+ : isObject(obj)
103
+ ? objMap(obj, replaceUndefinedString)
104
+ : obj;
96
105
 
97
106
  const textEncoder = /* @__PURE__ */ new GLOBAL.TextEncoder();
98
107
  const getHash = (string) => {
@@ -305,7 +305,16 @@ const jsonParse = JSON.parse;
305
305
  const jsonStringWithUndefined = (obj) =>
306
306
  jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
307
307
  const jsonParseWithUndefined = (str) =>
308
- jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
308
+ // JSON.parse reviver removes properties with undefined values
309
+ replaceUndefinedString(jsonParse(str));
310
+ const replaceUndefinedString = (obj) =>
311
+ obj === UNDEFINED
312
+ ? void 0
313
+ : isArray(obj)
314
+ ? arrayMap(obj, replaceUndefinedString)
315
+ : isObject(obj)
316
+ ? objMap(obj, replaceUndefinedString)
317
+ : obj;
309
318
 
310
319
  const INTEGER = /^\d+$/;
311
320
  const getPoolFunctions = () => {
@@ -305,7 +305,16 @@ const jsonParse = JSON.parse;
305
305
  const jsonStringWithUndefined = (obj) =>
306
306
  jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
307
307
  const jsonParseWithUndefined = (str) =>
308
- jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
308
+ // JSON.parse reviver removes properties with undefined values
309
+ replaceUndefinedString(jsonParse(str));
310
+ const replaceUndefinedString = (obj) =>
311
+ obj === UNDEFINED
312
+ ? void 0
313
+ : isArray(obj)
314
+ ? arrayMap(obj, replaceUndefinedString)
315
+ : isObject(obj)
316
+ ? objMap(obj, replaceUndefinedString)
317
+ : obj;
309
318
 
310
319
  const INTEGER = /^\d+$/;
311
320
  const getPoolFunctions = () => {
@@ -304,7 +304,16 @@ const jsonParse = JSON.parse;
304
304
  const jsonStringWithUndefined = (obj) =>
305
305
  jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
306
306
  const jsonParseWithUndefined = (str) =>
307
- jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
307
+ // JSON.parse reviver removes properties with undefined values
308
+ replaceUndefinedString(jsonParse(str));
309
+ const replaceUndefinedString = (obj) =>
310
+ obj === UNDEFINED
311
+ ? void 0
312
+ : isArray(obj)
313
+ ? arrayMap(obj, replaceUndefinedString)
314
+ : isObject(obj)
315
+ ? objMap(obj, replaceUndefinedString)
316
+ : obj;
308
317
 
309
318
  const INTEGER = /^\d+$/;
310
319
  const getPoolFunctions = () => {
@@ -304,7 +304,16 @@ const jsonParse = JSON.parse;
304
304
  const jsonStringWithUndefined = (obj) =>
305
305
  jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
306
306
  const jsonParseWithUndefined = (str) =>
307
- jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
307
+ // JSON.parse reviver removes properties with undefined values
308
+ replaceUndefinedString(jsonParse(str));
309
+ const replaceUndefinedString = (obj) =>
310
+ obj === UNDEFINED
311
+ ? void 0
312
+ : isArray(obj)
313
+ ? arrayMap(obj, replaceUndefinedString)
314
+ : isObject(obj)
315
+ ? objMap(obj, replaceUndefinedString)
316
+ : obj;
308
317
 
309
318
  const INTEGER = /^\d+$/;
310
319
  const getPoolFunctions = () => {
@@ -304,7 +304,16 @@ const jsonParse = JSON.parse;
304
304
  const jsonStringWithUndefined = (obj) =>
305
305
  jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
306
306
  const jsonParseWithUndefined = (str) =>
307
- jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
307
+ // JSON.parse reviver removes properties with undefined values
308
+ replaceUndefinedString(jsonParse(str));
309
+ const replaceUndefinedString = (obj) =>
310
+ obj === UNDEFINED
311
+ ? void 0
312
+ : isArray(obj)
313
+ ? arrayMap(obj, replaceUndefinedString)
314
+ : isObject(obj)
315
+ ? objMap(obj, replaceUndefinedString)
316
+ : obj;
308
317
 
309
318
  const INTEGER = /^\d+$/;
310
319
  const getPoolFunctions = () => {
@@ -304,7 +304,16 @@ const jsonParse = JSON.parse;
304
304
  const jsonStringWithUndefined = (obj) =>
305
305
  jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
306
306
  const jsonParseWithUndefined = (str) =>
307
- jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
307
+ // JSON.parse reviver removes properties with undefined values
308
+ replaceUndefinedString(jsonParse(str));
309
+ const replaceUndefinedString = (obj) =>
310
+ obj === UNDEFINED
311
+ ? void 0
312
+ : isArray(obj)
313
+ ? arrayMap(obj, replaceUndefinedString)
314
+ : isObject(obj)
315
+ ? objMap(obj, replaceUndefinedString)
316
+ : obj;
308
317
 
309
318
  const INTEGER = /^\d+$/;
310
319
  const getPoolFunctions = () => {
@@ -304,7 +304,16 @@ const jsonParse = JSON.parse;
304
304
  const jsonStringWithUndefined = (obj) =>
305
305
  jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
306
306
  const jsonParseWithUndefined = (str) =>
307
- jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
307
+ // JSON.parse reviver removes properties with undefined values
308
+ replaceUndefinedString(jsonParse(str));
309
+ const replaceUndefinedString = (obj) =>
310
+ obj === UNDEFINED
311
+ ? void 0
312
+ : isArray(obj)
313
+ ? arrayMap(obj, replaceUndefinedString)
314
+ : isObject(obj)
315
+ ? objMap(obj, replaceUndefinedString)
316
+ : obj;
308
317
 
309
318
  const INTEGER = /^\d+$/;
310
319
  const getPoolFunctions = () => {
@@ -304,7 +304,16 @@ const jsonParse = JSON.parse;
304
304
  const jsonStringWithUndefined = (obj) =>
305
305
  jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
306
306
  const jsonParseWithUndefined = (str) =>
307
- jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
307
+ // JSON.parse reviver removes properties with undefined values
308
+ replaceUndefinedString(jsonParse(str));
309
+ const replaceUndefinedString = (obj) =>
310
+ obj === UNDEFINED
311
+ ? void 0
312
+ : isArray(obj)
313
+ ? arrayMap(obj, replaceUndefinedString)
314
+ : isObject(obj)
315
+ ? objMap(obj, replaceUndefinedString)
316
+ : obj;
308
317
 
309
318
  const INTEGER = /^\d+$/;
310
319
  const getPoolFunctions = () => {
@@ -305,7 +305,16 @@ const jsonParse = JSON.parse;
305
305
  const jsonStringWithUndefined = (obj) =>
306
306
  jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
307
307
  const jsonParseWithUndefined = (str) =>
308
- jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
308
+ // JSON.parse reviver removes properties with undefined values
309
+ replaceUndefinedString(jsonParse(str));
310
+ const replaceUndefinedString = (obj) =>
311
+ obj === UNDEFINED
312
+ ? void 0
313
+ : isArray(obj)
314
+ ? arrayMap(obj, replaceUndefinedString)
315
+ : isObject(obj)
316
+ ? objMap(obj, replaceUndefinedString)
317
+ : obj;
309
318
 
310
319
  const INTEGER = /^\d+$/;
311
320
  const getPoolFunctions = () => {
@@ -305,7 +305,16 @@ const jsonParse = JSON.parse;
305
305
  const jsonStringWithUndefined = (obj) =>
306
306
  jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
307
307
  const jsonParseWithUndefined = (str) =>
308
- jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
308
+ // JSON.parse reviver removes properties with undefined values
309
+ replaceUndefinedString(jsonParse(str));
310
+ const replaceUndefinedString = (obj) =>
311
+ obj === UNDEFINED
312
+ ? void 0
313
+ : isArray(obj)
314
+ ? arrayMap(obj, replaceUndefinedString)
315
+ : isObject(obj)
316
+ ? objMap(obj, replaceUndefinedString)
317
+ : obj;
309
318
 
310
319
  const INTEGER = /^\d+$/;
311
320
  const getPoolFunctions = () => {
@@ -479,7 +479,16 @@ const jsonParse = JSON.parse;
479
479
  const jsonStringWithUndefined = (obj) =>
480
480
  jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
481
481
  const jsonParseWithUndefined = (str) =>
482
- jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
482
+ // JSON.parse reviver removes properties with undefined values
483
+ replaceUndefinedString(jsonParse(str));
484
+ const replaceUndefinedString = (obj) =>
485
+ obj === UNDEFINED
486
+ ? void 0
487
+ : isArray(obj)
488
+ ? arrayMap(obj, replaceUndefinedString)
489
+ : isObject(obj)
490
+ ? objMap(obj, replaceUndefinedString)
491
+ : obj;
483
492
 
484
493
  const textEncoder = /* @__PURE__ */ new GLOBAL.TextEncoder();
485
494
  const getHash = (string) => {