tinybase 7.1.0-beta.3 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/@types/schematizers/schematizer-arktype/index.d.ts +114 -0
  2. package/@types/schematizers/schematizer-arktype/with-schemas/index.d.ts +8 -0
  3. package/@types/schematizers/schematizer-effect/index.d.ts +118 -0
  4. package/@types/schematizers/schematizer-effect/with-schemas/index.d.ts +8 -0
  5. package/@types/schematizers/schematizer-yup/index.d.ts +112 -0
  6. package/@types/schematizers/schematizer-yup/with-schemas/index.d.ts +7 -0
  7. package/checkpoints/index.js +2 -2
  8. package/checkpoints/with-schemas/index.js +2 -2
  9. package/index.js +6 -4
  10. package/indexes/index.js +2 -2
  11. package/indexes/with-schemas/index.js +2 -2
  12. package/mergeable-store/index.js +2 -2
  13. package/mergeable-store/with-schemas/index.js +2 -2
  14. package/metrics/index.js +6 -4
  15. package/metrics/with-schemas/index.js +6 -4
  16. package/min/checkpoints/index.js +1 -1
  17. package/min/checkpoints/index.js.gz +0 -0
  18. package/min/checkpoints/with-schemas/index.js +1 -1
  19. package/min/checkpoints/with-schemas/index.js.gz +0 -0
  20. package/min/index.js +1 -1
  21. package/min/index.js.gz +0 -0
  22. package/min/indexes/index.js +1 -1
  23. package/min/indexes/index.js.gz +0 -0
  24. package/min/indexes/with-schemas/index.js +1 -1
  25. package/min/indexes/with-schemas/index.js.gz +0 -0
  26. package/min/mergeable-store/index.js +1 -1
  27. package/min/mergeable-store/index.js.gz +0 -0
  28. package/min/mergeable-store/with-schemas/index.js +1 -1
  29. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  30. package/min/metrics/index.js +1 -1
  31. package/min/metrics/index.js.gz +0 -0
  32. package/min/metrics/with-schemas/index.js +1 -1
  33. package/min/metrics/with-schemas/index.js.gz +0 -0
  34. package/min/omni/index.js +1 -1
  35. package/min/omni/index.js.gz +0 -0
  36. package/min/omni/with-schemas/index.js +1 -1
  37. package/min/omni/with-schemas/index.js.gz +0 -0
  38. package/min/persisters/index.js +1 -1
  39. package/min/persisters/index.js.gz +0 -0
  40. package/min/persisters/persister-automerge/index.js +1 -1
  41. package/min/persisters/persister-automerge/index.js.gz +0 -0
  42. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  43. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  44. package/min/persisters/persister-browser/index.js +1 -1
  45. package/min/persisters/persister-browser/index.js.gz +0 -0
  46. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  47. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  48. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  49. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  50. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  51. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  52. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  53. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  54. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  55. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  56. package/min/persisters/persister-durable-object-storage/index.js +1 -1
  57. package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  58. package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
  59. package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  60. package/min/persisters/persister-electric-sql/index.js +1 -1
  61. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  62. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  63. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  64. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  65. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  66. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  67. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  68. package/min/persisters/persister-file/index.js +1 -1
  69. package/min/persisters/persister-file/index.js.gz +0 -0
  70. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  71. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  72. package/min/persisters/persister-indexed-db/index.js +1 -1
  73. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  74. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  75. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  76. package/min/persisters/persister-libsql/index.js +1 -1
  77. package/min/persisters/persister-libsql/index.js.gz +0 -0
  78. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  79. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  80. package/min/persisters/persister-partykit-client/index.js +1 -1
  81. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  82. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  83. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  84. package/min/persisters/persister-pglite/index.js +1 -1
  85. package/min/persisters/persister-pglite/index.js.gz +0 -0
  86. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  87. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  88. package/min/persisters/persister-postgres/index.js +1 -1
  89. package/min/persisters/persister-postgres/index.js.gz +0 -0
  90. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  91. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  92. package/min/persisters/persister-powersync/index.js +1 -1
  93. package/min/persisters/persister-powersync/index.js.gz +0 -0
  94. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  95. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  96. package/min/persisters/persister-react-native-mmkv/index.js +1 -1
  97. package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
  98. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
  99. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
  100. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  101. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  102. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  103. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  104. package/min/persisters/persister-remote/index.js +1 -1
  105. package/min/persisters/persister-remote/index.js.gz +0 -0
  106. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  107. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  108. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  109. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  110. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  111. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  112. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  113. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  114. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  115. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  116. package/min/persisters/persister-sqlite3/index.js +1 -1
  117. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  118. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  119. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  120. package/min/persisters/persister-yjs/index.js +1 -1
  121. package/min/persisters/persister-yjs/index.js.gz +0 -0
  122. package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  123. package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  124. package/min/persisters/with-schemas/index.js +1 -1
  125. package/min/persisters/with-schemas/index.js.gz +0 -0
  126. package/min/queries/index.js +1 -1
  127. package/min/queries/index.js.gz +0 -0
  128. package/min/queries/with-schemas/index.js +1 -1
  129. package/min/queries/with-schemas/index.js.gz +0 -0
  130. package/min/relationships/index.js +1 -1
  131. package/min/relationships/index.js.gz +0 -0
  132. package/min/relationships/with-schemas/index.js +1 -1
  133. package/min/relationships/with-schemas/index.js.gz +0 -0
  134. package/min/schematizers/schematizer-arktype/index.js +1 -0
  135. package/min/schematizers/schematizer-arktype/index.js.gz +0 -0
  136. package/min/schematizers/schematizer-arktype/with-schemas/index.js +1 -0
  137. package/min/schematizers/schematizer-arktype/with-schemas/index.js.gz +0 -0
  138. package/min/schematizers/schematizer-effect/index.js +1 -0
  139. package/min/schematizers/schematizer-effect/index.js.gz +0 -0
  140. package/min/schematizers/schematizer-effect/with-schemas/index.js +1 -0
  141. package/min/schematizers/schematizer-effect/with-schemas/index.js.gz +0 -0
  142. package/min/schematizers/schematizer-typebox/index.js +1 -1
  143. package/min/schematizers/schematizer-typebox/index.js.gz +0 -0
  144. package/min/schematizers/schematizer-typebox/with-schemas/index.js +1 -1
  145. package/min/schematizers/schematizer-typebox/with-schemas/index.js.gz +0 -0
  146. package/min/schematizers/schematizer-valibot/index.js +1 -1
  147. package/min/schematizers/schematizer-valibot/index.js.gz +0 -0
  148. package/min/schematizers/schematizer-valibot/with-schemas/index.js +1 -1
  149. package/min/schematizers/schematizer-valibot/with-schemas/index.js.gz +0 -0
  150. package/min/schematizers/schematizer-yup/index.js +1 -0
  151. package/min/schematizers/schematizer-yup/index.js.gz +0 -0
  152. package/min/schematizers/schematizer-yup/with-schemas/index.js +1 -0
  153. package/min/schematizers/schematizer-yup/with-schemas/index.js.gz +0 -0
  154. package/min/store/index.js +1 -1
  155. package/min/store/index.js.gz +0 -0
  156. package/min/store/with-schemas/index.js +1 -1
  157. package/min/store/with-schemas/index.js.gz +0 -0
  158. package/min/synchronizers/index.js +1 -1
  159. package/min/synchronizers/index.js.gz +0 -0
  160. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  161. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  162. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  163. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  164. package/min/synchronizers/synchronizer-local/index.js +1 -1
  165. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  166. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  167. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  168. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  169. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  170. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  171. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  172. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  173. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  174. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  175. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  176. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  177. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  178. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  179. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  180. package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
  181. package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
  182. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
  183. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
  184. package/min/synchronizers/with-schemas/index.js +1 -1
  185. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  186. package/min/ui-react-dom/index.js +1 -1
  187. package/min/ui-react-dom/index.js.gz +0 -0
  188. package/min/ui-react-dom/with-schemas/index.js +1 -1
  189. package/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  190. package/min/ui-react-inspector/index.js +1 -1
  191. package/min/ui-react-inspector/index.js.gz +0 -0
  192. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  193. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  194. package/min/with-schemas/index.js +1 -1
  195. package/min/with-schemas/index.js.gz +0 -0
  196. package/omni/index.js +19 -16
  197. package/omni/with-schemas/index.js +19 -16
  198. package/package.json +118 -2
  199. package/persisters/index.js +6 -4
  200. package/persisters/persister-automerge/index.js +2 -2
  201. package/persisters/persister-automerge/with-schemas/index.js +2 -2
  202. package/persisters/persister-browser/index.js +3 -3
  203. package/persisters/persister-browser/with-schemas/index.js +3 -3
  204. package/persisters/persister-cr-sqlite-wasm/index.js +6 -4
  205. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +6 -4
  206. package/persisters/persister-durable-object-sql-storage/index.js +6 -4
  207. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +6 -4
  208. package/persisters/persister-durable-object-storage/index.js +3 -3
  209. package/persisters/persister-durable-object-storage/with-schemas/index.js +3 -3
  210. package/persisters/persister-electric-sql/index.js +6 -4
  211. package/persisters/persister-electric-sql/with-schemas/index.js +6 -4
  212. package/persisters/persister-expo-sqlite/index.js +6 -4
  213. package/persisters/persister-expo-sqlite/with-schemas/index.js +6 -4
  214. package/persisters/persister-file/index.js +3 -3
  215. package/persisters/persister-file/with-schemas/index.js +3 -3
  216. package/persisters/persister-indexed-db/index.js +2 -2
  217. package/persisters/persister-indexed-db/with-schemas/index.js +2 -2
  218. package/persisters/persister-libsql/index.js +6 -4
  219. package/persisters/persister-libsql/with-schemas/index.js +6 -4
  220. package/persisters/persister-partykit-client/index.js +2 -2
  221. package/persisters/persister-partykit-client/with-schemas/index.js +2 -2
  222. package/persisters/persister-pglite/index.js +3 -3
  223. package/persisters/persister-pglite/with-schemas/index.js +3 -3
  224. package/persisters/persister-postgres/index.js +3 -3
  225. package/persisters/persister-postgres/with-schemas/index.js +3 -3
  226. package/persisters/persister-powersync/index.js +6 -4
  227. package/persisters/persister-powersync/with-schemas/index.js +6 -4
  228. package/persisters/persister-react-native-mmkv/index.js +4 -4
  229. package/persisters/persister-react-native-mmkv/with-schemas/index.js +4 -4
  230. package/persisters/persister-react-native-sqlite/index.js +6 -4
  231. package/persisters/persister-react-native-sqlite/with-schemas/index.js +6 -4
  232. package/persisters/persister-remote/index.js +2 -2
  233. package/persisters/persister-remote/with-schemas/index.js +2 -2
  234. package/persisters/persister-sqlite-bun/index.js +6 -4
  235. package/persisters/persister-sqlite-bun/with-schemas/index.js +6 -4
  236. package/persisters/persister-sqlite-wasm/index.js +6 -4
  237. package/persisters/persister-sqlite-wasm/with-schemas/index.js +6 -4
  238. package/persisters/persister-sqlite3/index.js +6 -4
  239. package/persisters/persister-sqlite3/with-schemas/index.js +6 -4
  240. package/persisters/persister-yjs/index.js +2 -2
  241. package/persisters/persister-yjs/with-schemas/index.js +2 -2
  242. package/persisters/with-schemas/index.js +6 -4
  243. package/queries/index.js +1 -1
  244. package/queries/with-schemas/index.js +1 -1
  245. package/readme.md +3 -3
  246. package/relationships/index.js +2 -2
  247. package/relationships/with-schemas/index.js +2 -2
  248. package/releases.md +1 -1
  249. package/schematizers/schematizer-arktype/index.js +163 -0
  250. package/schematizers/schematizer-arktype/with-schemas/index.js +163 -0
  251. package/schematizers/schematizer-effect/index.js +137 -0
  252. package/schematizers/schematizer-effect/with-schemas/index.js +137 -0
  253. package/schematizers/schematizer-typebox/index.js +3 -2
  254. package/schematizers/schematizer-typebox/with-schemas/index.js +3 -2
  255. package/schematizers/schematizer-valibot/index.js +4 -4
  256. package/schematizers/schematizer-valibot/with-schemas/index.js +4 -4
  257. package/schematizers/schematizer-yup/index.js +100 -0
  258. package/schematizers/schematizer-yup/with-schemas/index.js +100 -0
  259. package/schematizers/schematizer-zod/index.js +2 -2
  260. package/schematizers/schematizer-zod/with-schemas/index.js +2 -2
  261. package/store/index.js +2 -2
  262. package/store/with-schemas/index.js +2 -2
  263. package/synchronizers/index.js +2 -2
  264. package/synchronizers/synchronizer-broadcast-channel/index.js +2 -2
  265. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +2 -2
  266. package/synchronizers/synchronizer-local/index.js +2 -2
  267. package/synchronizers/synchronizer-local/with-schemas/index.js +2 -2
  268. package/synchronizers/synchronizer-ws-client/index.js +3 -3
  269. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +3 -3
  270. package/synchronizers/synchronizer-ws-server/index.js +3 -3
  271. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +3 -3
  272. package/synchronizers/synchronizer-ws-server-durable-object/index.js +3 -3
  273. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +3 -3
  274. package/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
  275. package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
  276. package/synchronizers/with-schemas/index.js +2 -2
  277. package/ui-react-dom/index.js +11 -8
  278. package/ui-react-dom/with-schemas/index.js +11 -8
  279. package/ui-react-inspector/index.js +14 -11
  280. package/ui-react-inspector/with-schemas/index.js +14 -11
  281. package/with-schemas/index.js +6 -4
@@ -0,0 +1,100 @@
1
+ const getTypeOf = (thing) => typeof thing;
2
+ const EMPTY_STRING = '';
3
+ const STRING = getTypeOf(EMPTY_STRING);
4
+ const BOOLEAN = getTypeOf(true);
5
+ const NUMBER = getTypeOf(0);
6
+ const TYPE = 'type';
7
+ const DEFAULT = 'default';
8
+ const ALLOW_NULL = 'allowNull';
9
+ const NULLABLE = 'nullable';
10
+
11
+ const getIfNotFunction = (predicate) => (value, then, otherwise) =>
12
+ predicate(value) ? otherwise?.() : then(value);
13
+ const isNullish = (thing) => thing == null;
14
+ const isUndefined = (thing) => thing === void 0;
15
+ const ifNotNullish = getIfNotFunction(isNullish);
16
+ const ifNotUndefined = getIfNotFunction(isUndefined);
17
+ const size = (arrayOrString) => arrayOrString.length;
18
+
19
+ const arrayForEach = (array, cb) => array.forEach(cb);
20
+
21
+ const object = Object;
22
+ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
23
+ const objEntries = object.entries;
24
+ const isObject = (obj) =>
25
+ !isNullish(obj) &&
26
+ ifNotNullish(
27
+ getPrototypeOf(obj),
28
+ (objPrototype) =>
29
+ objPrototype == object.prototype ||
30
+ isNullish(getPrototypeOf(objPrototype)),
31
+
32
+ /* istanbul ignore next */
33
+ () => true,
34
+ );
35
+ const objIds = object.keys;
36
+ const objFreeze = object.freeze;
37
+ const objNew = (entries = []) => object.fromEntries(entries);
38
+ const objForEach = (obj, cb) =>
39
+ arrayForEach(objEntries(obj), ([id, value]) => cb(value, id));
40
+ const objSize = (obj) => size(objIds(obj));
41
+ const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
42
+
43
+ const createCustomSchematizer = (unwrapSchema, getProperties) => {
44
+ const toCellOrValueSchema = (schema) => {
45
+ const [unwrapped, defaultValue, allowNull] = unwrapSchema(schema);
46
+ const type = unwrapped?.type;
47
+ if (type !== STRING && type !== NUMBER && type !== BOOLEAN) {
48
+ return void 0;
49
+ }
50
+ const cellOrValueSchema = {[TYPE]: type};
51
+ ifNotUndefined(defaultValue, (defaultValue2) => {
52
+ cellOrValueSchema[DEFAULT] = defaultValue2;
53
+ });
54
+ if (allowNull) {
55
+ cellOrValueSchema[ALLOW_NULL] = true;
56
+ }
57
+ return cellOrValueSchema;
58
+ };
59
+ const toTablesSchema = (schemas) => {
60
+ const tablesSchema = objNew();
61
+ objForEach(schemas, (schema, tableId) => {
62
+ const tableSchema = objNew();
63
+ ifNotUndefined(getProperties(schema), (properties) =>
64
+ objForEach(properties, (cellSchema, cellId) =>
65
+ ifNotUndefined(toCellOrValueSchema(cellSchema), (cellSchema2) => {
66
+ tableSchema[cellId] = cellSchema2;
67
+ }),
68
+ ),
69
+ );
70
+ if (!objIsEmpty(tableSchema)) {
71
+ tablesSchema[tableId] = tableSchema;
72
+ }
73
+ });
74
+ return tablesSchema;
75
+ };
76
+ const toValuesSchema = (schemas) => {
77
+ const valuesSchema = objNew();
78
+ objForEach(schemas, (schema, valueId) =>
79
+ ifNotUndefined(toCellOrValueSchema(schema), (valueSchema) => {
80
+ valuesSchema[valueId] = valueSchema;
81
+ }),
82
+ );
83
+ return valuesSchema;
84
+ };
85
+ return objFreeze({
86
+ toTablesSchema,
87
+ toValuesSchema,
88
+ });
89
+ };
90
+
91
+ const unwrapSchema = (schema, defaultValue, allowNull) => [
92
+ {[TYPE]: schema?.type},
93
+ defaultValue ?? schema?.spec?.[DEFAULT],
94
+ allowNull || schema?.spec?.[NULLABLE] || false,
95
+ ];
96
+ const getProperties = (schema) => schema?.fields;
97
+ const createYupSchematizer = () =>
98
+ createCustomSchematizer(unwrapSchema, getProperties);
99
+
100
+ export {createYupSchematizer};
@@ -0,0 +1,100 @@
1
+ const getTypeOf = (thing) => typeof thing;
2
+ const EMPTY_STRING = '';
3
+ const STRING = getTypeOf(EMPTY_STRING);
4
+ const BOOLEAN = getTypeOf(true);
5
+ const NUMBER = getTypeOf(0);
6
+ const TYPE = 'type';
7
+ const DEFAULT = 'default';
8
+ const ALLOW_NULL = 'allowNull';
9
+ const NULLABLE = 'nullable';
10
+
11
+ const getIfNotFunction = (predicate) => (value, then, otherwise) =>
12
+ predicate(value) ? otherwise?.() : then(value);
13
+ const isNullish = (thing) => thing == null;
14
+ const isUndefined = (thing) => thing === void 0;
15
+ const ifNotNullish = getIfNotFunction(isNullish);
16
+ const ifNotUndefined = getIfNotFunction(isUndefined);
17
+ const size = (arrayOrString) => arrayOrString.length;
18
+
19
+ const arrayForEach = (array, cb) => array.forEach(cb);
20
+
21
+ const object = Object;
22
+ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
23
+ const objEntries = object.entries;
24
+ const isObject = (obj) =>
25
+ !isNullish(obj) &&
26
+ ifNotNullish(
27
+ getPrototypeOf(obj),
28
+ (objPrototype) =>
29
+ objPrototype == object.prototype ||
30
+ isNullish(getPrototypeOf(objPrototype)),
31
+
32
+ /* istanbul ignore next */
33
+ () => true,
34
+ );
35
+ const objIds = object.keys;
36
+ const objFreeze = object.freeze;
37
+ const objNew = (entries = []) => object.fromEntries(entries);
38
+ const objForEach = (obj, cb) =>
39
+ arrayForEach(objEntries(obj), ([id, value]) => cb(value, id));
40
+ const objSize = (obj) => size(objIds(obj));
41
+ const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
42
+
43
+ const createCustomSchematizer = (unwrapSchema, getProperties) => {
44
+ const toCellOrValueSchema = (schema) => {
45
+ const [unwrapped, defaultValue, allowNull] = unwrapSchema(schema);
46
+ const type = unwrapped?.type;
47
+ if (type !== STRING && type !== NUMBER && type !== BOOLEAN) {
48
+ return void 0;
49
+ }
50
+ const cellOrValueSchema = {[TYPE]: type};
51
+ ifNotUndefined(defaultValue, (defaultValue2) => {
52
+ cellOrValueSchema[DEFAULT] = defaultValue2;
53
+ });
54
+ if (allowNull) {
55
+ cellOrValueSchema[ALLOW_NULL] = true;
56
+ }
57
+ return cellOrValueSchema;
58
+ };
59
+ const toTablesSchema = (schemas) => {
60
+ const tablesSchema = objNew();
61
+ objForEach(schemas, (schema, tableId) => {
62
+ const tableSchema = objNew();
63
+ ifNotUndefined(getProperties(schema), (properties) =>
64
+ objForEach(properties, (cellSchema, cellId) =>
65
+ ifNotUndefined(toCellOrValueSchema(cellSchema), (cellSchema2) => {
66
+ tableSchema[cellId] = cellSchema2;
67
+ }),
68
+ ),
69
+ );
70
+ if (!objIsEmpty(tableSchema)) {
71
+ tablesSchema[tableId] = tableSchema;
72
+ }
73
+ });
74
+ return tablesSchema;
75
+ };
76
+ const toValuesSchema = (schemas) => {
77
+ const valuesSchema = objNew();
78
+ objForEach(schemas, (schema, valueId) =>
79
+ ifNotUndefined(toCellOrValueSchema(schema), (valueSchema) => {
80
+ valuesSchema[valueId] = valueSchema;
81
+ }),
82
+ );
83
+ return valuesSchema;
84
+ };
85
+ return objFreeze({
86
+ toTablesSchema,
87
+ toValuesSchema,
88
+ });
89
+ };
90
+
91
+ const unwrapSchema = (schema, defaultValue, allowNull) => [
92
+ {[TYPE]: schema?.type},
93
+ defaultValue ?? schema?.spec?.[DEFAULT],
94
+ allowNull || schema?.spec?.[NULLABLE] || false,
95
+ ];
96
+ const getProperties = (schema) => schema?.fields;
97
+ const createYupSchematizer = () =>
98
+ createCustomSchematizer(unwrapSchema, getProperties);
99
+
100
+ export {createYupSchematizer};
@@ -6,6 +6,8 @@ const NUMBER = getTypeOf(0);
6
6
  const TYPE = 'type';
7
7
  const DEFAULT = 'default';
8
8
  const ALLOW_NULL = 'allowNull';
9
+ const NULLABLE = 'nullable';
10
+ const OPTIONAL = 'optional';
9
11
 
10
12
  const getIfNotFunction = (predicate) => (value, then, otherwise) =>
11
13
  predicate(value) ? otherwise?.() : then(value);
@@ -87,8 +89,6 @@ const createCustomSchematizer = (unwrapSchema, getProperties) => {
87
89
  });
88
90
  };
89
91
 
90
- const OPTIONAL = 'optional';
91
- const NULLABLE = 'nullable';
92
92
  const unwrapSchema = (schema, defaultValue, allowNull) => {
93
93
  const type = schema?.def?.type;
94
94
  return type === OPTIONAL
@@ -6,6 +6,8 @@ const NUMBER = getTypeOf(0);
6
6
  const TYPE = 'type';
7
7
  const DEFAULT = 'default';
8
8
  const ALLOW_NULL = 'allowNull';
9
+ const NULLABLE = 'nullable';
10
+ const OPTIONAL = 'optional';
9
11
 
10
12
  const getIfNotFunction = (predicate) => (value, then, otherwise) =>
11
13
  predicate(value) ? otherwise?.() : then(value);
@@ -87,8 +89,6 @@ const createCustomSchematizer = (unwrapSchema, getProperties) => {
87
89
  });
88
90
  };
89
91
 
90
- const OPTIONAL = 'optional';
91
- const NULLABLE = 'nullable';
92
92
  const unwrapSchema = (schema, defaultValue, allowNull) => {
93
93
  const type = schema?.def?.type;
94
94
  return type === OPTIONAL
package/store/index.js CHANGED
@@ -148,7 +148,7 @@ const mapForEach = (map, cb) =>
148
148
  const mapMap = (coll, cb) =>
149
149
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
150
150
  const mapSet = (map, key, value) =>
151
- value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
151
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
152
152
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
153
153
  if (!collHas(map, key)) {
154
154
  mapSet(map, key, getDefaultValue());
@@ -254,7 +254,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
254
254
  const deep = (node, p) =>
255
255
  p == size(path)
256
256
  ? arrayPush(leaves, node)
257
- : path[p] === null
257
+ : isNull(path[p])
258
258
  ? collForEach(node, (node2) => deep(node2, p + 1))
259
259
  : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
260
260
  deep(deepIdSet, 0);
@@ -148,7 +148,7 @@ const mapForEach = (map, cb) =>
148
148
  const mapMap = (coll, cb) =>
149
149
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
150
150
  const mapSet = (map, key, value) =>
151
- value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
151
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
152
152
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
153
153
  if (!collHas(map, key)) {
154
154
  mapSet(map, key, getDefaultValue());
@@ -254,7 +254,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
254
254
  const deep = (node, p) =>
255
255
  p == size(path)
256
256
  ? arrayPush(leaves, node)
257
- : path[p] === null
257
+ : isNull(path[p])
258
258
  ? collForEach(node, (node2) => deep(node2, p + 1))
259
259
  : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
260
260
  deep(deepIdSet, 0);
@@ -78,7 +78,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
78
78
  const mapNew = (entries) => new Map(entries);
79
79
  const mapGet = (map, key) => map?.get(key);
80
80
  const mapSet = (map, key, value) =>
81
- value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
81
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
82
82
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
83
83
  if (!collHas(map, key)) {
84
84
  mapSet(map, key, getDefaultValue());
@@ -158,7 +158,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
158
158
  const deep = (node, p) =>
159
159
  p == size(path)
160
160
  ? arrayPush(leaves, node)
161
- : path[p] === null
161
+ : isNull(path[p])
162
162
  ? collForEach(node, (node2) => deep(node2, p + 1))
163
163
  : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
164
164
  deep(deepIdSet, 0);
@@ -78,7 +78,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
78
78
  const mapNew = (entries) => new Map(entries);
79
79
  const mapGet = (map, key) => map?.get(key);
80
80
  const mapSet = (map, key, value) =>
81
- value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
81
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
82
82
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
83
83
  if (!collHas(map, key)) {
84
84
  mapSet(map, key, getDefaultValue());
@@ -158,7 +158,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
158
158
  const deep = (node, p) =>
159
159
  p == size(path)
160
160
  ? arrayPush(leaves, node)
161
- : path[p] === null
161
+ : isNull(path[p])
162
162
  ? collForEach(node, (node2) => deep(node2, p + 1))
163
163
  : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
164
164
  deep(deepIdSet, 0);
@@ -78,7 +78,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
78
78
  const mapNew = (entries) => new Map(entries);
79
79
  const mapGet = (map, key) => map?.get(key);
80
80
  const mapSet = (map, key, value) =>
81
- value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
81
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
82
82
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
83
83
  if (!collHas(map, key)) {
84
84
  mapSet(map, key, getDefaultValue());
@@ -158,7 +158,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
158
158
  const deep = (node, p) =>
159
159
  p == size(path)
160
160
  ? arrayPush(leaves, node)
161
- : path[p] === null
161
+ : isNull(path[p])
162
162
  ? collForEach(node, (node2) => deep(node2, p + 1))
163
163
  : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
164
164
  deep(deepIdSet, 0);
@@ -80,7 +80,7 @@ const mapGet = (map, key) => map?.get(key);
80
80
  const mapForEach = (map, cb) =>
81
81
  collForEach(map, (value, key) => cb(key, value));
82
82
  const mapSet = (map, key, value) =>
83
- value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
83
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
84
84
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
85
85
  if (!collHas(map, key)) {
86
86
  mapSet(map, key, getDefaultValue());
@@ -160,7 +160,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
160
160
  const deep = (node, p) =>
161
161
  p == size(path)
162
162
  ? arrayPush(leaves, node)
163
- : path[p] === null
163
+ : isNull(path[p])
164
164
  ? collForEach(node, (node2) => deep(node2, p + 1))
165
165
  : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
166
166
  deep(deepIdSet, 0);
@@ -80,7 +80,7 @@ const mapGet = (map, key) => map?.get(key);
80
80
  const mapForEach = (map, cb) =>
81
81
  collForEach(map, (value, key) => cb(key, value));
82
82
  const mapSet = (map, key, value) =>
83
- value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
83
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
84
84
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
85
85
  if (!collHas(map, key)) {
86
86
  mapSet(map, key, getDefaultValue());
@@ -160,7 +160,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
160
160
  const deep = (node, p) =>
161
161
  p == size(path)
162
162
  ? arrayPush(leaves, node)
163
- : path[p] === null
163
+ : isNull(path[p])
164
164
  ? collForEach(node, (node2) => deep(node2, p + 1))
165
165
  : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
166
166
  deep(deepIdSet, 0);
@@ -78,7 +78,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
78
78
  const jsonString = JSON.stringify;
79
79
  const jsonParse = JSON.parse;
80
80
  const jsonStringWithUndefined = (obj) =>
81
- jsonString(obj, (_key, value) => (value === void 0 ? UNDEFINED : value));
81
+ jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
82
82
  const jsonParseWithUndefined = (str) =>
83
83
  jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
84
84
 
@@ -107,7 +107,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
107
107
  const mapNew = (entries) => new Map(entries);
108
108
  const mapGet = (map, key) => map?.get(key);
109
109
  const mapSet = (map, key, value) =>
110
- value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
110
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
111
111
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
112
112
  if (!collHas(map, key)) {
113
113
  mapSet(map, key, getDefaultValue());
@@ -187,7 +187,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
187
187
  const deep = (node, p) =>
188
188
  p == size(path)
189
189
  ? arrayPush(leaves, node)
190
- : path[p] === null
190
+ : isNull(path[p])
191
191
  ? collForEach(node, (node2) => deep(node2, p + 1))
192
192
  : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
193
193
  deep(deepIdSet, 0);
@@ -78,7 +78,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
78
78
  const jsonString = JSON.stringify;
79
79
  const jsonParse = JSON.parse;
80
80
  const jsonStringWithUndefined = (obj) =>
81
- jsonString(obj, (_key, value) => (value === void 0 ? UNDEFINED : value));
81
+ jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
82
82
  const jsonParseWithUndefined = (str) =>
83
83
  jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
84
84
 
@@ -107,7 +107,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
107
107
  const mapNew = (entries) => new Map(entries);
108
108
  const mapGet = (map, key) => map?.get(key);
109
109
  const mapSet = (map, key, value) =>
110
- value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
110
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
111
111
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
112
112
  if (!collHas(map, key)) {
113
113
  mapSet(map, key, getDefaultValue());
@@ -187,7 +187,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
187
187
  const deep = (node, p) =>
188
188
  p == size(path)
189
189
  ? arrayPush(leaves, node)
190
- : path[p] === null
190
+ : isNull(path[p])
191
191
  ? collForEach(node, (node2) => deep(node2, p + 1))
192
192
  : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
193
193
  deep(deepIdSet, 0);
@@ -96,7 +96,7 @@ const mapForEach = (map, cb) =>
96
96
  const mapMap = (coll, cb) =>
97
97
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
98
98
  const mapSet = (map, key, value) =>
99
- value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
99
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
100
100
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
101
101
  if (!collHas(map, key)) {
102
102
  mapSet(map, key, getDefaultValue());
@@ -154,7 +154,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
154
154
  const deep = (node, p) =>
155
155
  p == size(path)
156
156
  ? arrayPush(leaves, node)
157
- : path[p] === null
157
+ : isNull(path[p])
158
158
  ? collForEach(node, (node2) => deep(node2, p + 1))
159
159
  : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
160
160
  deep(deepIdSet, 0);
@@ -224,7 +224,7 @@ const getListenerFunctions = (getThing) => {
224
224
  const jsonString = JSON.stringify;
225
225
  const jsonParse = JSON.parse;
226
226
  const jsonStringWithUndefined = (obj) =>
227
- jsonString(obj, (_key, value) => (value === void 0 ? UNDEFINED : value));
227
+ jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
228
228
  const jsonParseWithUndefined = (str) =>
229
229
  jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
230
230
 
@@ -96,7 +96,7 @@ const mapForEach = (map, cb) =>
96
96
  const mapMap = (coll, cb) =>
97
97
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
98
98
  const mapSet = (map, key, value) =>
99
- value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
99
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
100
100
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
101
101
  if (!collHas(map, key)) {
102
102
  mapSet(map, key, getDefaultValue());
@@ -154,7 +154,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
154
154
  const deep = (node, p) =>
155
155
  p == size(path)
156
156
  ? arrayPush(leaves, node)
157
- : path[p] === null
157
+ : isNull(path[p])
158
158
  ? collForEach(node, (node2) => deep(node2, p + 1))
159
159
  : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
160
160
  deep(deepIdSet, 0);
@@ -224,7 +224,7 @@ const getListenerFunctions = (getThing) => {
224
224
  const jsonString = JSON.stringify;
225
225
  const jsonParse = JSON.parse;
226
226
  const jsonStringWithUndefined = (obj) =>
227
- jsonString(obj, (_key, value) => (value === void 0 ? UNDEFINED : value));
227
+ jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
228
228
  const jsonParseWithUndefined = (str) =>
229
229
  jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
230
230
 
@@ -80,7 +80,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
80
80
  const jsonString = JSON.stringify;
81
81
  const jsonParse = JSON.parse;
82
82
  const jsonStringWithUndefined = (obj) =>
83
- jsonString(obj, (_key, value) => (value === void 0 ? UNDEFINED : value));
83
+ jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
84
84
  const jsonParseWithUndefined = (str) =>
85
85
  jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
86
86
 
@@ -109,7 +109,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
109
109
  const mapNew = (entries) => new Map(entries);
110
110
  const mapGet = (map, key) => map?.get(key);
111
111
  const mapSet = (map, key, value) =>
112
- value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
112
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
113
113
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
114
114
  if (!collHas(map, key)) {
115
115
  mapSet(map, key, getDefaultValue());
@@ -189,7 +189,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
189
189
  const deep = (node, p) =>
190
190
  p == size(path)
191
191
  ? arrayPush(leaves, node)
192
- : path[p] === null
192
+ : isNull(path[p])
193
193
  ? collForEach(node, (node2) => deep(node2, p + 1))
194
194
  : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
195
195
  deep(deepIdSet, 0);
@@ -80,7 +80,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
80
80
  const jsonString = JSON.stringify;
81
81
  const jsonParse = JSON.parse;
82
82
  const jsonStringWithUndefined = (obj) =>
83
- jsonString(obj, (_key, value) => (value === void 0 ? UNDEFINED : value));
83
+ jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
84
84
  const jsonParseWithUndefined = (str) =>
85
85
  jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
86
86
 
@@ -109,7 +109,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
109
109
  const mapNew = (entries) => new Map(entries);
110
110
  const mapGet = (map, key) => map?.get(key);
111
111
  const mapSet = (map, key, value) =>
112
- value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
112
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
113
113
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
114
114
  if (!collHas(map, key)) {
115
115
  mapSet(map, key, getDefaultValue());
@@ -189,7 +189,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
189
189
  const deep = (node, p) =>
190
190
  p == size(path)
191
191
  ? arrayPush(leaves, node)
192
- : path[p] === null
192
+ : isNull(path[p])
193
193
  ? collForEach(node, (node2) => deep(node2, p + 1))
194
194
  : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
195
195
  deep(deepIdSet, 0);
@@ -24,7 +24,7 @@ const mapGet = (map, key) => map?.get(key);
24
24
  const mapForEach = (map, cb) =>
25
25
  collForEach(map, (value, key) => cb(key, value));
26
26
  const mapSet = (map, key, value) =>
27
- value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
27
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
28
28
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
29
29
  if (!collHas(map, key)) {
30
30
  mapSet(map, key, getDefaultValue());
@@ -24,7 +24,7 @@ const mapGet = (map, key) => map?.get(key);
24
24
  const mapForEach = (map, cb) =>
25
25
  collForEach(map, (value, key) => cb(key, value));
26
26
  const mapSet = (map, key, value) =>
27
- value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
27
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
28
28
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
29
29
  if (!collHas(map, key)) {
30
30
  mapSet(map, key, getDefaultValue());
@@ -78,7 +78,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
78
78
  const mapNew = (entries) => new Map(entries);
79
79
  const mapGet = (map, key) => map?.get(key);
80
80
  const mapSet = (map, key, value) =>
81
- value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
81
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
82
82
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
83
83
  if (!collHas(map, key)) {
84
84
  mapSet(map, key, getDefaultValue());
@@ -158,7 +158,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
158
158
  const deep = (node, p) =>
159
159
  p == size(path)
160
160
  ? arrayPush(leaves, node)
161
- : path[p] === null
161
+ : isNull(path[p])
162
162
  ? collForEach(node, (node2) => deep(node2, p + 1))
163
163
  : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
164
164
  deep(deepIdSet, 0);
@@ -45,6 +45,8 @@ const isFiniteNumber = isFinite;
45
45
  const isNullish = (thing) => thing == null;
46
46
  const isUndefined = (thing) => thing === void 0;
47
47
  const isNull = (thing) => thing === null;
48
+ const isTrue = (thing) => thing === true;
49
+ const isFalse = (thing) => thing === false;
48
50
  const ifNotNullish = getIfNotFunction(isNullish);
49
51
  const ifNotUndefined = getIfNotFunction(isUndefined);
50
52
  const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
@@ -553,7 +555,7 @@ const HtmlTable = ({
553
555
  {
554
556
  children: [
555
557
  extraRowCells(extraCellsBefore, rowProps),
556
- idColumn === false
558
+ isFalse(idColumn)
557
559
  ? null
558
560
  : /* @__PURE__ */ jsx('th', {title: rowId, children: rowId}),
559
561
  objToArray(
@@ -751,7 +753,7 @@ const RelationshipInHtmlRow = ({
751
753
  return /* @__PURE__ */ jsxs('tr', {
752
754
  children: [
753
755
  extraRowCells(extraCellsBefore, rowProps),
754
- idColumn === false
756
+ isFalse(idColumn)
755
757
  ? null
756
758
  : /* @__PURE__ */ jsxs(Fragment, {
757
759
  children: [
@@ -834,13 +836,13 @@ const RelationshipInHtmlTable = ({
834
836
  return /* @__PURE__ */ jsxs('table', {
835
837
  className,
836
838
  children: [
837
- headerRow === false
839
+ isFalse(headerRow)
838
840
  ? null
839
841
  : /* @__PURE__ */ jsx('thead', {
840
842
  children: /* @__PURE__ */ jsxs('tr', {
841
843
  children: [
842
844
  extraHeaders(extraCellsBefore),
843
- idColumn === false
845
+ isFalse(idColumn)
844
846
  ? null
845
847
  : /* @__PURE__ */ jsxs(Fragment, {
846
848
  children: [
@@ -910,14 +912,15 @@ const useSortingAndPagination = (
910
912
  (offset2) => setStateAndChange([currentCellId, currentDescending, offset2]),
911
913
  [setStateAndChange, currentCellId, currentDescending],
912
914
  );
913
- const PaginatorComponent =
914
- paginator === true ? SortedTablePaginator : paginator;
915
+ const PaginatorComponent = isTrue(paginator)
916
+ ? SortedTablePaginator
917
+ : paginator;
915
918
  return [
916
919
  [currentCellId, currentDescending, currentOffset],
917
920
  handleSort,
918
921
  useMemo(
919
922
  () =>
920
- paginator === false
923
+ isFalse(paginator)
921
924
  ? null
922
925
  : /* @__PURE__ */ jsx(PaginatorComponent, {
923
926
  offset: currentOffset,
@@ -1207,7 +1210,7 @@ const ValuesInHtmlTable = ({
1207
1210
  {
1208
1211
  children: [
1209
1212
  extraValueCells(extraCellsBefore, valueProps),
1210
- idColumn === false
1213
+ isFalse(idColumn)
1211
1214
  ? null
1212
1215
  : /* @__PURE__ */ jsx('th', {
1213
1216
  title: valueId,