@wener/utils 1.1.27 → 1.1.29

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 (324) hide show
  1. package/lib/arrays/MaybeArray.js +36 -25
  2. package/lib/arrays/MaybeArray.js.map +1 -1
  3. package/lib/arrays/arrayFromAsync.js +5 -7
  4. package/lib/arrays/arrayFromAsync.js.map +1 -1
  5. package/lib/asyncs/AsyncInterval.js +11 -12
  6. package/lib/asyncs/AsyncInterval.js.map +1 -1
  7. package/lib/asyncs/MaybePromise.js +3 -0
  8. package/lib/asyncs/MaybePromise.js.map +1 -0
  9. package/lib/asyncs/createAsyncIterator.js +37 -35
  10. package/lib/asyncs/createAsyncIterator.js.map +1 -1
  11. package/lib/asyncs/createLazyPromise.js +59 -60
  12. package/lib/asyncs/createLazyPromise.js.map +1 -1
  13. package/lib/asyncs/firstOfAsyncIterator.js +7 -9
  14. package/lib/asyncs/firstOfAsyncIterator.js.map +1 -1
  15. package/lib/asyncs/generatorOfStream.js +16 -0
  16. package/lib/asyncs/generatorOfStream.js.map +1 -0
  17. package/lib/asyncs/isIterator.js +3 -4
  18. package/lib/asyncs/isIterator.js.map +1 -1
  19. package/lib/asyncs/isPromise.js +3 -4
  20. package/lib/asyncs/isPromise.js.map +1 -1
  21. package/lib/asyncs/isThenable.js +6 -0
  22. package/lib/asyncs/isThenable.js.map +1 -0
  23. package/lib/asyncs/nextOfAsyncIterator.js +20 -14
  24. package/lib/asyncs/nextOfAsyncIterator.js.map +1 -1
  25. package/lib/asyncs/promiseOfCallback.js +17 -0
  26. package/lib/asyncs/promiseOfCallback.js.map +1 -0
  27. package/lib/asyncs/sleep.js +2 -3
  28. package/lib/asyncs/sleep.js.map +1 -1
  29. package/lib/asyncs/timeout.js +22 -26
  30. package/lib/asyncs/timeout.js.map +1 -1
  31. package/lib/browsers/copy.js +47 -45
  32. package/lib/browsers/copy.js.map +1 -1
  33. package/lib/browsers/download.js +38 -27
  34. package/lib/browsers/download.js.map +1 -1
  35. package/lib/browsers/getFileFromDataTransfer.js +41 -28
  36. package/lib/browsers/getFileFromDataTransfer.js.map +1 -1
  37. package/lib/browsers/loaders.js +43 -43
  38. package/lib/browsers/loaders.js.map +1 -1
  39. package/lib/crypto/base.js +5 -4
  40. package/lib/crypto/base.js.map +1 -1
  41. package/lib/crypto/getNodeCrypto.js +14 -13
  42. package/lib/crypto/getNodeCrypto.js.map +1 -1
  43. package/lib/crypto/getRandomValues.js +22 -26
  44. package/lib/crypto/getRandomValues.js.map +1 -1
  45. package/lib/crypto/hashing.js +42 -50
  46. package/lib/crypto/hashing.js.map +1 -1
  47. package/lib/crypto/md5.bench.js +21 -0
  48. package/lib/crypto/md5.bench.js.map +1 -0
  49. package/lib/crypto/md5.d.js +3 -0
  50. package/lib/crypto/md5.d.js.map +1 -0
  51. package/lib/crypto/md5.js +119 -121
  52. package/lib/crypto/md5.js.map +1 -1
  53. package/lib/crypto/pem/pem.js +32 -35
  54. package/lib/crypto/pem/pem.js.map +1 -1
  55. package/lib/crypto/randomUUID.js +12 -11
  56. package/lib/crypto/randomUUID.js.map +1 -1
  57. package/lib/crypto/ulid.js +123 -112
  58. package/lib/crypto/ulid.js.map +1 -1
  59. package/lib/errors/Errors.js +167 -149
  60. package/lib/errors/Errors.js.map +1 -1
  61. package/lib/fetch/createFetchWith.js +20 -23
  62. package/lib/fetch/createFetchWith.js.map +1 -1
  63. package/lib/fetch/createFetchWithLogging.js +20 -16
  64. package/lib/fetch/createFetchWithLogging.js.map +1 -1
  65. package/lib/fetch/createFetchWithRetry.js +61 -65
  66. package/lib/fetch/createFetchWithRetry.js.map +1 -1
  67. package/lib/fetch/dumpRequest.js +39 -42
  68. package/lib/fetch/dumpRequest.js.map +1 -1
  69. package/lib/fetch/dumpResponse.js +13 -20
  70. package/lib/fetch/dumpResponse.js.map +1 -1
  71. package/lib/fetch/index.js +7 -0
  72. package/lib/fetch/index.js.map +1 -0
  73. package/lib/fetch/types.js +3 -0
  74. package/lib/fetch/types.js.map +1 -0
  75. package/lib/http/HttpStatus.js +89 -80
  76. package/lib/http/HttpStatus.js.map +1 -1
  77. package/lib/i18n/createTranslate.js +48 -48
  78. package/lib/i18n/createTranslate.js.map +1 -1
  79. package/lib/index.js +28 -14
  80. package/lib/index.js.map +1 -1
  81. package/lib/io/AbstractEncoding.js +7 -0
  82. package/lib/io/AbstractEncoding.js.map +1 -0
  83. package/lib/io/ArrayBuffer.test-d.js +7 -0
  84. package/lib/io/ArrayBuffer.test-d.js.map +1 -0
  85. package/lib/io/ArrayBuffers.js +198 -172
  86. package/lib/io/ArrayBuffers.js.map +1 -1
  87. package/lib/io/Buffer.js +21 -20
  88. package/lib/io/Buffer.js.map +1 -1
  89. package/lib/io/base64.js +49 -48
  90. package/lib/io/base64.js.map +1 -1
  91. package/lib/io/isBuffer.js +7 -5
  92. package/lib/io/isBuffer.js.map +1 -1
  93. package/lib/io/isTransferable.js +23 -19
  94. package/lib/io/isTransferable.js.map +1 -1
  95. package/lib/isomorphics/getGlobalThis.js +17 -12
  96. package/lib/isomorphics/getGlobalThis.js.map +1 -1
  97. package/lib/isomorphics/structuredClone.js +71 -63
  98. package/lib/isomorphics/structuredClone.js.map +1 -1
  99. package/lib/langs/MaybeFunction.js +7 -7
  100. package/lib/langs/MaybeFunction.js.map +1 -1
  101. package/lib/langs/classOf.js +3 -4
  102. package/lib/langs/classOf.js.map +1 -1
  103. package/lib/langs/deepEqual.js +77 -85
  104. package/lib/langs/deepEqual.js.map +1 -1
  105. package/lib/langs/deepFreeze.js +17 -13
  106. package/lib/langs/deepFreeze.js.map +1 -1
  107. package/lib/langs/hashCode.ignored.js +112 -0
  108. package/lib/langs/hashCode.ignored.js.map +1 -0
  109. package/lib/langs/isClass.js +3 -4
  110. package/lib/langs/isClass.js.map +1 -1
  111. package/lib/langs/isDefined.js +3 -4
  112. package/lib/langs/isDefined.js.map +1 -1
  113. package/lib/langs/isEmptyObject.js +3 -5
  114. package/lib/langs/isEmptyObject.js.map +1 -1
  115. package/lib/langs/isFunction.js +5 -0
  116. package/lib/langs/isFunction.js.map +1 -0
  117. package/lib/langs/isPlainObject.js +7 -8
  118. package/lib/langs/isPlainObject.js.map +1 -1
  119. package/lib/langs/memoize.js +19 -21
  120. package/lib/langs/memoize.js.map +1 -1
  121. package/lib/langs/parseBoolean.js +26 -27
  122. package/lib/langs/parseBoolean.js.map +1 -1
  123. package/lib/langs/shallowClone.js +12 -12
  124. package/lib/langs/shallowClone.js.map +1 -1
  125. package/lib/langs/shallowEqual.js +21 -18
  126. package/lib/langs/shallowEqual.js.map +1 -1
  127. package/lib/libs/ms.js +123 -103
  128. package/lib/libs/ms.js.map +1 -1
  129. package/lib/logging/Logger.js +5 -0
  130. package/lib/logging/Logger.js.map +1 -0
  131. package/lib/logging/createChildLogger.js +12 -14
  132. package/lib/logging/createChildLogger.js.map +1 -1
  133. package/lib/logging/createLogger.js +59 -33
  134. package/lib/logging/createLogger.js.map +1 -1
  135. package/lib/logging/createNoopLogger.js +11 -12
  136. package/lib/logging/createNoopLogger.js.map +1 -1
  137. package/lib/logging/slog.js +143 -0
  138. package/lib/logging/slog.js.map +1 -0
  139. package/lib/maths/clamp.js +20 -20
  140. package/lib/maths/clamp.js.map +1 -1
  141. package/lib/maths/random.js +14 -15
  142. package/lib/maths/random.js.map +1 -1
  143. package/lib/modules/isModule.js +5 -4
  144. package/lib/modules/isModule.js.map +1 -1
  145. package/lib/modules/parseModuleId.js +36 -31
  146. package/lib/modules/parseModuleId.js.map +1 -1
  147. package/lib/objects/get.js +13 -11
  148. package/lib/objects/get.js.map +1 -1
  149. package/lib/objects/get.test-d.js +33 -0
  150. package/lib/objects/get.test-d.js.map +1 -0
  151. package/lib/objects/merge/index.js +3 -0
  152. package/lib/objects/merge/index.js.map +1 -0
  153. package/lib/objects/merge/isMergeableObject.js +11 -10
  154. package/lib/objects/merge/isMergeableObject.js.map +1 -1
  155. package/lib/objects/merge/merge.js +65 -66
  156. package/lib/objects/merge/merge.js.map +1 -1
  157. package/lib/objects/parseObjectPath.js +35 -23
  158. package/lib/objects/parseObjectPath.js.map +1 -1
  159. package/lib/objects/set.js +33 -34
  160. package/lib/objects/set.js.map +1 -1
  161. package/lib/schema/typebox/gen/codegen/common/encoder.js +93 -67
  162. package/lib/schema/typebox/gen/codegen/common/encoder.js.map +1 -1
  163. package/lib/schema/typebox/gen/codegen/common/formatter.js +31 -8
  164. package/lib/schema/typebox/gen/codegen/common/formatter.js.map +1 -1
  165. package/lib/schema/typebox/gen/codegen/common/index.js +5 -0
  166. package/lib/schema/typebox/gen/codegen/common/index.js.map +1 -0
  167. package/lib/schema/typebox/gen/codegen/common/jsdoc.js +109 -60
  168. package/lib/schema/typebox/gen/codegen/common/jsdoc.js.map +1 -1
  169. package/lib/schema/typebox/gen/codegen/expression/compiler.js +359 -317
  170. package/lib/schema/typebox/gen/codegen/expression/compiler.js.map +1 -1
  171. package/lib/schema/typebox/gen/codegen/expression/errors.js +255 -233
  172. package/lib/schema/typebox/gen/codegen/expression/errors.js.map +1 -1
  173. package/lib/schema/typebox/gen/codegen/expression/evaluator.js +249 -236
  174. package/lib/schema/typebox/gen/codegen/expression/evaluator.js.map +1 -1
  175. package/lib/schema/typebox/gen/codegen/expression/expression.js +382 -198
  176. package/lib/schema/typebox/gen/codegen/expression/expression.js.map +1 -1
  177. package/lib/schema/typebox/gen/codegen/expression/index.js +6 -0
  178. package/lib/schema/typebox/gen/codegen/expression/index.js.map +1 -0
  179. package/lib/schema/typebox/gen/codegen/index.js +5 -19
  180. package/lib/schema/typebox/gen/codegen/index.js.map +1 -1
  181. package/lib/schema/typebox/gen/codegen/model/index.js +16 -0
  182. package/lib/schema/typebox/gen/codegen/model/index.js.map +1 -0
  183. package/lib/schema/typebox/gen/codegen/model/model-to-arktype.js +236 -260
  184. package/lib/schema/typebox/gen/codegen/model/model-to-arktype.js.map +1 -1
  185. package/lib/schema/typebox/gen/codegen/model/model-to-expression.js +348 -352
  186. package/lib/schema/typebox/gen/codegen/model/model-to-expression.js.map +1 -1
  187. package/lib/schema/typebox/gen/codegen/model/model-to-grpc.js +214 -242
  188. package/lib/schema/typebox/gen/codegen/model/model-to-grpc.js.map +1 -1
  189. package/lib/schema/typebox/gen/codegen/model/model-to-io-ts.js +229 -292
  190. package/lib/schema/typebox/gen/codegen/model/model-to-io-ts.js.map +1 -1
  191. package/lib/schema/typebox/gen/codegen/model/model-to-javascript.js +42 -15
  192. package/lib/schema/typebox/gen/codegen/model/model-to-javascript.js.map +1 -1
  193. package/lib/schema/typebox/gen/codegen/model/model-to-json-schema.js +168 -168
  194. package/lib/schema/typebox/gen/codegen/model/model-to-json-schema.js.map +1 -1
  195. package/lib/schema/typebox/gen/codegen/model/model-to-typebox.js +31 -8
  196. package/lib/schema/typebox/gen/codegen/model/model-to-typebox.js.map +1 -1
  197. package/lib/schema/typebox/gen/codegen/model/model-to-typescript.js +156 -190
  198. package/lib/schema/typebox/gen/codegen/model/model-to-typescript.js.map +1 -1
  199. package/lib/schema/typebox/gen/codegen/model/model-to-valibot.js +215 -249
  200. package/lib/schema/typebox/gen/codegen/model/model-to-valibot.js.map +1 -1
  201. package/lib/schema/typebox/gen/codegen/model/model-to-value.js +37 -13
  202. package/lib/schema/typebox/gen/codegen/model/model-to-value.js.map +1 -1
  203. package/lib/schema/typebox/gen/codegen/model/model-to-yrel.js +201 -242
  204. package/lib/schema/typebox/gen/codegen/model/model-to-yrel.js.map +1 -1
  205. package/lib/schema/typebox/gen/codegen/model/model-to-yup.js +200 -245
  206. package/lib/schema/typebox/gen/codegen/model/model-to-yup.js.map +1 -1
  207. package/lib/schema/typebox/gen/codegen/model/model-to-zod.js +223 -268
  208. package/lib/schema/typebox/gen/codegen/model/model-to-zod.js.map +1 -1
  209. package/lib/schema/typebox/gen/codegen/model/model.js +27 -0
  210. package/lib/schema/typebox/gen/codegen/model/model.js.map +1 -0
  211. package/lib/schema/typebox/gen/codegen/typescript/index.js +4 -0
  212. package/lib/schema/typebox/gen/codegen/typescript/index.js.map +1 -0
  213. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-model.js +43 -40
  214. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-model.js.map +1 -1
  215. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-typebox.js +592 -616
  216. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-typebox.js.map +1 -1
  217. package/lib/schema/typebox/gen/index.js +3 -3
  218. package/lib/schema/typebox/gen/index.js.map +1 -1
  219. package/lib/schema/typebox/index.js +3 -3
  220. package/lib/schema/typebox/index.js.map +1 -1
  221. package/lib/schema/typebox/typebox.js +18 -29
  222. package/lib/schema/typebox/typebox.js.map +1 -1
  223. package/lib/server.js +2 -1
  224. package/lib/server.js.map +1 -1
  225. package/lib/servers/crypto/md5.js +3 -5
  226. package/lib/servers/crypto/md5.js.map +1 -1
  227. package/lib/servers/fetch/createFetchWithProxy.js +2 -4
  228. package/lib/servers/fetch/createFetchWithProxy.js.map +1 -1
  229. package/lib/servers/fetch/createFetchWithProxyByNodeFetch.js +34 -34
  230. package/lib/servers/fetch/createFetchWithProxyByNodeFetch.js.map +1 -1
  231. package/lib/servers/fetch/createFetchWithProxyByUndici.js +57 -58
  232. package/lib/servers/fetch/createFetchWithProxyByUndici.js.map +1 -1
  233. package/lib/servers/getPackageDir.js +8 -10
  234. package/lib/servers/getPackageDir.js.map +1 -1
  235. package/lib/servers/jsdom.js +3 -2
  236. package/lib/servers/jsdom.js.map +1 -1
  237. package/lib/servers/node-fetch.js +4 -3
  238. package/lib/servers/node-fetch.js.map +1 -1
  239. package/lib/servers/polyfill/polyfillBrowser.js +17 -0
  240. package/lib/servers/polyfill/polyfillBrowser.js.map +1 -0
  241. package/lib/servers/polyfill/polyfillCrypto.js +8 -10
  242. package/lib/servers/polyfill/polyfillCrypto.js.map +1 -1
  243. package/lib/servers/polyfill/polyfillFetch.js +23 -22
  244. package/lib/servers/polyfill/polyfillFetch.js.map +1 -1
  245. package/lib/servers/polyfill/polyfillJsDom.js +59 -52
  246. package/lib/servers/polyfill/polyfillJsDom.js.map +1 -1
  247. package/lib/servers/polyfill/polyfillWebSocket.js +13 -13
  248. package/lib/servers/polyfill/polyfillWebSocket.js.map +1 -1
  249. package/lib/servers/ws.js +3 -2
  250. package/lib/servers/ws.js.map +1 -1
  251. package/lib/strings/camelCase.js +51 -49
  252. package/lib/strings/camelCase.js.map +1 -1
  253. package/lib/strings/formatBytes.js +41 -15
  254. package/lib/strings/formatBytes.js.map +1 -1
  255. package/lib/strings/renderTemplate.js +27 -20
  256. package/lib/strings/renderTemplate.js.map +1 -1
  257. package/lib/typedoc.js +4 -0
  258. package/lib/typedoc.js.map +1 -0
  259. package/lib/types/global.d.js +2 -0
  260. package/lib/types/global.d.js.map +1 -0
  261. package/lib/types/index.d.js +6 -0
  262. package/lib/types/index.d.js.map +1 -0
  263. package/lib/validations/asserts.js +14 -0
  264. package/lib/validations/asserts.js.map +1 -0
  265. package/lib/validations/isUUID.js +3 -4
  266. package/lib/validations/isUUID.js.map +1 -1
  267. package/lib/validations/parseTimestamp.js +25 -21
  268. package/lib/validations/parseTimestamp.js.map +1 -1
  269. package/package.json +47 -47
  270. package/dist/LICENSE.txt +0 -1
  271. package/dist/cjs/createFetchWith-qhRObsE4.js +0 -2
  272. package/dist/cjs/createFetchWith-qhRObsE4.js.map +0 -1
  273. package/dist/cjs/getGlobalThis-GhffAgiG.js +0 -2
  274. package/dist/cjs/getGlobalThis-GhffAgiG.js.map +0 -1
  275. package/dist/cjs/index.cjs +0 -21
  276. package/dist/cjs/index.cjs.map +0 -1
  277. package/dist/cjs/schema/typebox/gen/index.cjs +0 -118
  278. package/dist/cjs/schema/typebox/gen/index.cjs.map +0 -1
  279. package/dist/cjs/schema/typebox/index.cjs +0 -2
  280. package/dist/cjs/schema/typebox/index.cjs.map +0 -1
  281. package/dist/cjs/server.cjs +0 -2
  282. package/dist/cjs/server.cjs.map +0 -1
  283. package/dist/cjs/servers/jsdom.cjs +0 -2
  284. package/dist/cjs/servers/jsdom.cjs.map +0 -1
  285. package/dist/cjs/servers/node-fetch.cjs +0 -2
  286. package/dist/cjs/servers/node-fetch.cjs.map +0 -1
  287. package/dist/cjs/servers/ws.cjs +0 -2
  288. package/dist/cjs/servers/ws.cjs.map +0 -1
  289. package/dist/esm/createFetchWith-1q1S-Xro.js +0 -2
  290. package/dist/esm/createFetchWith-1q1S-Xro.js.map +0 -1
  291. package/dist/esm/getGlobalThis-A8F-nU7J.js +0 -2
  292. package/dist/esm/getGlobalThis-A8F-nU7J.js.map +0 -1
  293. package/dist/esm/index.js +0 -21
  294. package/dist/esm/index.js.map +0 -1
  295. package/dist/esm/schema/typebox/gen.js +0 -118
  296. package/dist/esm/schema/typebox/gen.js.map +0 -1
  297. package/dist/esm/schema/typebox.js +0 -2
  298. package/dist/esm/schema/typebox.js.map +0 -1
  299. package/dist/esm/server.js +0 -2
  300. package/dist/esm/server.js.map +0 -1
  301. package/dist/esm/servers/jsdom.js +0 -2
  302. package/dist/esm/servers/jsdom.js.map +0 -1
  303. package/dist/esm/servers/node-fetch.js +0 -2
  304. package/dist/esm/servers/node-fetch.js.map +0 -1
  305. package/dist/esm/servers/ws.js +0 -2
  306. package/dist/esm/servers/ws.js.map +0 -1
  307. package/dist/system/createFetchWith-TjUle-dI.js +0 -2
  308. package/dist/system/createFetchWith-TjUle-dI.js.map +0 -1
  309. package/dist/system/getGlobalThis-X5ifUXDI.js +0 -2
  310. package/dist/system/getGlobalThis-X5ifUXDI.js.map +0 -1
  311. package/dist/system/index.js +0 -21
  312. package/dist/system/index.js.map +0 -1
  313. package/dist/system/schema/typebox/gen.js +0 -118
  314. package/dist/system/schema/typebox/gen.js.map +0 -1
  315. package/dist/system/schema/typebox.js +0 -2
  316. package/dist/system/schema/typebox.js.map +0 -1
  317. package/dist/system/server.js +0 -2
  318. package/dist/system/server.js.map +0 -1
  319. package/dist/system/servers/jsdom.js +0 -2
  320. package/dist/system/servers/jsdom.js.map +0 -1
  321. package/dist/system/servers/node-fetch.js +0 -2
  322. package/dist/system/servers/node-fetch.js.map +0 -1
  323. package/dist/system/servers/ws.js +0 -2
  324. package/dist/system/servers/ws.js.map +0 -1
@@ -1,95 +1,87 @@
1
1
  const has = Object.prototype.hasOwnProperty;
2
- const hasElementType = typeof Element !== "undefined";
2
+ const hasElementType = typeof Element !== 'undefined';
3
3
  function find(iter, tar, key) {
4
- for (key of iter.keys()) {
5
- if (deepEqual(key, tar))
6
- return key;
7
- }
8
- }
9
- function deepEqual(foo, bar) {
10
- let ctor, len, tmp;
11
- if (foo === bar)
12
- return true;
13
- if (foo && bar && (ctor = foo.constructor) === bar.constructor) {
14
- if (ctor === Date)
15
- return foo.getTime() === bar.getTime();
16
- if (ctor === RegExp)
17
- return foo.toString() === bar.toString();
18
- if (ctor === Array) {
19
- if ((len = foo.length) === bar.length) {
20
- while (len-- && deepEqual(foo[len], bar[len]))
21
- ;
22
- }
23
- return len === -1;
4
+ for (key of iter.keys()){
5
+ if (deepEqual(key, tar)) return key;
24
6
  }
25
- if (ctor === Set) {
26
- if (foo.size !== bar.size) {
27
- return false;
28
- }
29
- for (len of foo) {
30
- tmp = len;
31
- if (tmp && typeof tmp === "object") {
32
- tmp = find(bar, tmp);
33
- if (!tmp)
34
- return false;
7
+ }
8
+ /**
9
+ * deep equal - support react, dom, Date, RegExp, Array, ArrayBuffer, Set, Map, Object
10
+ * @see {@link https://github.com/lukeed/dequal/blob/master/src/lite.js dequal/src/lite.js}
11
+ * @see {@link https://github.com/FormidableLabs/react-fast-compare/blob/master/index.js react-fast-compare/index.js}
12
+ */ export function deepEqual(foo, bar) {
13
+ let ctor, len, tmp;
14
+ if (foo === bar) return true;
15
+ if (foo && bar && (ctor = foo.constructor) === bar.constructor) {
16
+ if (ctor === Date) return foo.getTime() === bar.getTime();
17
+ if (ctor === RegExp) return foo.toString() === bar.toString();
18
+ if (ctor === Array) {
19
+ if ((len = foo.length) === bar.length) {
20
+ while(len-- && deepEqual(foo[len], bar[len]));
21
+ }
22
+ return len === -1;
35
23
  }
36
- if (!bar.has(tmp))
37
- return false;
38
- }
39
- return true;
40
- }
41
- if (ctor === Map) {
42
- if (foo.size !== bar.size) {
43
- return false;
44
- }
45
- for (len of foo) {
46
- tmp = len[0];
47
- if (tmp && typeof tmp === "object") {
48
- tmp = find(bar, tmp);
49
- if (!tmp)
50
- return false;
24
+ if (ctor === Set) {
25
+ if (foo.size !== bar.size) {
26
+ return false;
27
+ }
28
+ for (len of foo){
29
+ tmp = len;
30
+ if (tmp && typeof tmp === 'object') {
31
+ tmp = find(bar, tmp);
32
+ if (!tmp) return false;
33
+ }
34
+ if (!bar.has(tmp)) return false;
35
+ }
36
+ return true;
51
37
  }
52
- if (!deepEqual(len[1], bar.get(tmp))) {
53
- return false;
38
+ if (ctor === Map) {
39
+ if (foo.size !== bar.size) {
40
+ return false;
41
+ }
42
+ for (len of foo){
43
+ tmp = len[0];
44
+ if (tmp && typeof tmp === 'object') {
45
+ tmp = find(bar, tmp);
46
+ if (!tmp) return false;
47
+ }
48
+ if (!deepEqual(len[1], bar.get(tmp))) {
49
+ return false;
50
+ }
51
+ }
52
+ return true;
54
53
  }
55
- }
56
- return true;
57
- }
58
- if (ctor === ArrayBuffer) {
59
- foo = new Uint8Array(foo);
60
- bar = new Uint8Array(bar);
61
- } else if (ctor === DataView) {
62
- if ((len = foo.byteLength) === bar.byteLength) {
63
- while (len-- && foo.getInt8(len) === bar.getInt8(len))
64
- ;
65
- }
66
- return len === -1;
67
- }
68
- if (ArrayBuffer.isView(foo)) {
69
- if ((len = foo.byteLength) === bar.byteLength) {
70
- while (len-- && foo[len] === bar[len])
71
- ;
72
- }
73
- return len === -1;
74
- }
75
- if (hasElementType && foo instanceof Element)
76
- return false;
77
- if (!ctor || typeof foo === "object") {
78
- len = 0;
79
- for (ctor in foo) {
80
- if ((ctor === "_owner" || ctor === "__v" || ctor === "__o") && foo.$$typeof) {
81
- continue;
54
+ if (ctor === ArrayBuffer) {
55
+ foo = new Uint8Array(foo);
56
+ bar = new Uint8Array(bar);
57
+ } else if (ctor === DataView) {
58
+ if ((len = foo.byteLength) === bar.byteLength) {
59
+ while(len-- && foo.getInt8(len) === bar.getInt8(len));
60
+ }
61
+ return len === -1;
62
+ }
63
+ if (ArrayBuffer.isView(foo)) {
64
+ if ((len = foo.byteLength) === bar.byteLength) {
65
+ while(len-- && foo[len] === bar[len]);
66
+ }
67
+ return len === -1;
68
+ }
69
+ // react & dom
70
+ if (hasElementType && foo instanceof Element) return false;
71
+ if (!ctor || typeof foo === 'object') {
72
+ len = 0;
73
+ for(ctor in foo){
74
+ if ((ctor === '_owner' || ctor === '__v' || ctor === '__o') && foo.$$typeof) {
75
+ continue;
76
+ }
77
+ if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
78
+ if (!(ctor in bar) || !deepEqual(foo[ctor], bar[ctor])) return false;
79
+ }
80
+ return Object.keys(bar).length === len;
82
81
  }
83
- if (has.call(foo, ctor) && ++len && !has.call(bar, ctor))
84
- return false;
85
- if (!(ctor in bar) || !deepEqual(foo[ctor], bar[ctor]))
86
- return false;
87
- }
88
- return Object.keys(bar).length === len;
89
82
  }
90
- }
91
- return foo !== foo && bar !== bar;
83
+ // eslint-disable-next-line no-self-compare
84
+ return foo !== foo && bar !== bar;
92
85
  }
93
86
 
94
- export { deepEqual };
95
- //# sourceMappingURL=deepEqual.js.map
87
+ //# sourceMappingURL=deepEqual.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deepEqual.js","sources":["../../src/langs/deepEqual.ts"],"sourcesContent":["const has = Object.prototype.hasOwnProperty;\nconst hasElementType = typeof Element !== 'undefined';\n\nfunction find(iter: any, tar: any, key?: any) {\n for (key of iter.keys()) {\n if (deepEqual(key, tar)) return key;\n }\n}\n\n/**\n * deep equal - support react, dom, Date, RegExp, Array, ArrayBuffer, Set, Map, Object\n * @see {@link https://github.com/lukeed/dequal/blob/master/src/lite.js dequal/src/lite.js}\n * @see {@link https://github.com/FormidableLabs/react-fast-compare/blob/master/index.js react-fast-compare/index.js}\n */\nexport function deepEqual(foo: any, bar: any) {\n let ctor, len, tmp;\n if (foo === bar) return true;\n\n if (foo && bar && (ctor = foo.constructor) === bar.constructor) {\n if (ctor === Date) return foo.getTime() === bar.getTime();\n if (ctor === RegExp) return foo.toString() === bar.toString();\n\n if (ctor === Array) {\n if ((len = foo.length) === bar.length) {\n while (len-- && deepEqual(foo[len], bar[len]));\n }\n return len === -1;\n }\n\n if (ctor === Set) {\n if (foo.size !== bar.size) {\n return false;\n }\n for (len of foo) {\n tmp = len;\n if (tmp && typeof tmp === 'object') {\n tmp = find(bar, tmp);\n if (!tmp) return false;\n }\n if (!bar.has(tmp)) return false;\n }\n return true;\n }\n\n if (ctor === Map) {\n if (foo.size !== bar.size) {\n return false;\n }\n for (len of foo) {\n tmp = len[0];\n if (tmp && typeof tmp === 'object') {\n tmp = find(bar, tmp);\n if (!tmp) return false;\n }\n if (!deepEqual(len[1], bar.get(tmp))) {\n return false;\n }\n }\n return true;\n }\n\n if (ctor === ArrayBuffer) {\n foo = new Uint8Array(foo);\n bar = new Uint8Array(bar);\n } else if (ctor === DataView) {\n if ((len = foo.byteLength) === bar.byteLength) {\n while (len-- && foo.getInt8(len) === bar.getInt8(len));\n }\n return len === -1;\n }\n\n if (ArrayBuffer.isView(foo)) {\n if ((len = foo.byteLength) === bar.byteLength) {\n while (len-- && (foo as any)[len] === bar[len]);\n }\n return len === -1;\n }\n\n // react & dom\n if (hasElementType && foo instanceof Element) return false;\n\n if (!ctor || typeof foo === 'object') {\n len = 0;\n for (ctor in foo) {\n if ((ctor === '_owner' || ctor === '__v' || ctor === '__o') && foo.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n if (!(ctor in bar) || !deepEqual(foo[ctor], bar[ctor])) return false;\n }\n return Object.keys(bar).length === len;\n }\n }\n\n // eslint-disable-next-line no-self-compare\n return foo !== foo && bar !== bar;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/langs/deepEqual.ts"],"sourcesContent":["const has = Object.prototype.hasOwnProperty;\nconst hasElementType = typeof Element !== 'undefined';\n\nfunction find(iter: any, tar: any, key?: any) {\n for (key of iter.keys()) {\n if (deepEqual(key, tar)) return key;\n }\n}\n\n/**\n * deep equal - support react, dom, Date, RegExp, Array, ArrayBuffer, Set, Map, Object\n * @see {@link https://github.com/lukeed/dequal/blob/master/src/lite.js dequal/src/lite.js}\n * @see {@link https://github.com/FormidableLabs/react-fast-compare/blob/master/index.js react-fast-compare/index.js}\n */\nexport function deepEqual(foo: any, bar: any) {\n let ctor, len, tmp;\n if (foo === bar) return true;\n\n if (foo && bar && (ctor = foo.constructor) === bar.constructor) {\n if (ctor === Date) return foo.getTime() === bar.getTime();\n if (ctor === RegExp) return foo.toString() === bar.toString();\n\n if (ctor === Array) {\n if ((len = foo.length) === bar.length) {\n while (len-- && deepEqual(foo[len], bar[len]));\n }\n return len === -1;\n }\n\n if (ctor === Set) {\n if (foo.size !== bar.size) {\n return false;\n }\n for (len of foo) {\n tmp = len;\n if (tmp && typeof tmp === 'object') {\n tmp = find(bar, tmp);\n if (!tmp) return false;\n }\n if (!bar.has(tmp)) return false;\n }\n return true;\n }\n\n if (ctor === Map) {\n if (foo.size !== bar.size) {\n return false;\n }\n for (len of foo) {\n tmp = len[0];\n if (tmp && typeof tmp === 'object') {\n tmp = find(bar, tmp);\n if (!tmp) return false;\n }\n if (!deepEqual(len[1], bar.get(tmp))) {\n return false;\n }\n }\n return true;\n }\n\n if (ctor === ArrayBuffer) {\n foo = new Uint8Array(foo);\n bar = new Uint8Array(bar);\n } else if (ctor === DataView) {\n if ((len = foo.byteLength) === bar.byteLength) {\n while (len-- && foo.getInt8(len) === bar.getInt8(len));\n }\n return len === -1;\n }\n\n if (ArrayBuffer.isView(foo)) {\n if ((len = foo.byteLength) === bar.byteLength) {\n while (len-- && (foo as any)[len] === bar[len]);\n }\n return len === -1;\n }\n\n // react & dom\n if (hasElementType && foo instanceof Element) return false;\n\n if (!ctor || typeof foo === 'object') {\n len = 0;\n for (ctor in foo) {\n if ((ctor === '_owner' || ctor === '__v' || ctor === '__o') && foo.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n if (!(ctor in bar) || !deepEqual(foo[ctor], bar[ctor])) return false;\n }\n return Object.keys(bar).length === len;\n }\n }\n\n // eslint-disable-next-line no-self-compare\n return foo !== foo && bar !== bar;\n}\n"],"names":["has","Object","prototype","hasOwnProperty","hasElementType","Element","find","iter","tar","key","keys","deepEqual","foo","bar","ctor","len","tmp","constructor","Date","getTime","RegExp","toString","Array","length","Set","size","Map","get","ArrayBuffer","Uint8Array","DataView","byteLength","getInt8","isView","$$typeof","call"],"mappings":"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"}
@@ -1,16 +1,20 @@
1
- function deepFreeze(obj) {
2
- if (obj === null || typeof obj !== "object") {
3
- return obj;
4
- }
5
- const props = Object.getOwnPropertyNames(obj);
6
- for (const prop of props) {
7
- const value = obj[prop];
8
- if (value && typeof value === "object") {
9
- deepFreeze(value);
1
+ /**
2
+ * Freezes the given object and all its nested objects recursively.
3
+ *
4
+ * @param {T} obj - The object to freeze.
5
+ * @returns {T} - The frozen object.
6
+ */ export function deepFreeze(obj) {
7
+ if (obj === null || typeof obj !== 'object') {
8
+ return obj;
10
9
  }
11
- }
12
- return Object.freeze(obj);
10
+ const props = Object.getOwnPropertyNames(obj);
11
+ for (const prop of props){
12
+ const value = obj[prop];
13
+ if (value && typeof value === 'object') {
14
+ deepFreeze(value);
15
+ }
16
+ }
17
+ return Object.freeze(obj);
13
18
  }
14
19
 
15
- export { deepFreeze };
16
- //# sourceMappingURL=deepFreeze.js.map
20
+ //# sourceMappingURL=deepFreeze.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deepFreeze.js","sources":["../../src/langs/deepFreeze.ts"],"sourcesContent":["/**\n * Freezes the given object and all its nested objects recursively.\n *\n * @param {T} obj - The object to freeze.\n * @returns {T} - The frozen object.\n */\nexport function deepFreeze<T>(obj: T): T {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n const props = Object.getOwnPropertyNames(obj);\n for (const prop of props) {\n const value = (obj as any)[prop];\n if (value && typeof value === 'object') {\n deepFreeze(value);\n }\n }\n return Object.freeze(obj);\n}\n"],"names":[],"mappings":"AAMO,SAAS,WAAc,GAAW,EAAA;AACvC,EAAA,IAAI,GAAQ,KAAA,IAAA,IAAQ,OAAO,GAAA,KAAQ,QAAU,EAAA;AAC3C,IAAO,OAAA,GAAA,CAAA;AAAA,GACT;AACA,EAAM,MAAA,KAAA,GAAQ,MAAO,CAAA,mBAAA,CAAoB,GAAG,CAAA,CAAA;AAC5C,EAAA,KAAA,MAAW,QAAQ,KAAO,EAAA;AACxB,IAAM,MAAA,KAAA,GAAS,IAAY,IAAI,CAAA,CAAA;AAC/B,IAAI,IAAA,KAAA,IAAS,OAAO,KAAA,KAAU,QAAU,EAAA;AACtC,MAAA,UAAA,CAAW,KAAK,CAAA,CAAA;AAAA,KAClB;AAAA,GACF;AACA,EAAO,OAAA,MAAA,CAAO,OAAO,GAAG,CAAA,CAAA;AAC1B;;;;"}
1
+ {"version":3,"sources":["../../src/langs/deepFreeze.ts"],"sourcesContent":["/**\n * Freezes the given object and all its nested objects recursively.\n *\n * @param {T} obj - The object to freeze.\n * @returns {T} - The frozen object.\n */\nexport function deepFreeze<T>(obj: T): T {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n const props = Object.getOwnPropertyNames(obj);\n for (const prop of props) {\n const value = (obj as any)[prop];\n if (value && typeof value === 'object') {\n deepFreeze(value);\n }\n }\n return Object.freeze(obj);\n}\n"],"names":["deepFreeze","obj","props","Object","getOwnPropertyNames","prop","value","freeze"],"mappings":"AAAA;;;;;CAKC,GACD,OAAO,SAASA,WAAcC,GAAM;IAClC,IAAIA,QAAQ,QAAQ,OAAOA,QAAQ,UAAU;QAC3C,OAAOA;IACT;IACA,MAAMC,QAAQC,OAAOC,mBAAmB,CAACH;IACzC,KAAK,MAAMI,QAAQH,MAAO;QACxB,MAAMI,QAAQ,AAACL,GAAW,CAACI,KAAK;QAChC,IAAIC,SAAS,OAAOA,UAAU,UAAU;YACtCN,WAAWM;QACb;IACF;IACA,OAAOH,OAAOI,MAAM,CAACN;AACvB"}
@@ -0,0 +1,112 @@
1
+ function sortObjectKeys(obj) {
2
+ if (obj === null || obj === undefined) {
3
+ return obj;
4
+ }
5
+ if (typeof obj !== 'object') {
6
+ // it is a primitive: number/string (in an array)
7
+ return obj;
8
+ }
9
+ return Object.keys(obj).sort().reduce((acc, key)=>{
10
+ if (Array.isArray(obj[key])) {
11
+ acc[key] = obj[key].map(sortObjectKeys);
12
+ } else if (typeof obj[key] === 'object') {
13
+ acc[key] = sortObjectKeys(obj[key]);
14
+ } else {
15
+ acc[key] = obj[key];
16
+ }
17
+ return acc;
18
+ }, {});
19
+ }
20
+ function toDeterministicJson(o) {
21
+ // https://github.com/kikobeats/json-stringify-deterministic
22
+ // https://stackoverflow.com/a/54902696/1870054
23
+ // https://github.com/sinclairzx81/typebox#hash
24
+ // https://github.com/sinclairzx81/typebox/blob/master/src/value/hash.ts
25
+ // LCS longest common subsequence
26
+ // https://github.com/sinclairzx81/typebox/issues/272
27
+ let sorted = sortObjectKeys(o);
28
+ let out = JSON.stringify(sorted, function(_, v) {
29
+ return v === undefined ? 'undef' : v;
30
+ });
31
+ // Remove all whitespace
32
+ return out.replace(/\s+/g, '');
33
+ }
34
+ function visit(o, _v, ctx) {
35
+ const v = {
36
+ array: (o, ctx)=>o.map((x)=>v.visit(x, ctx)),
37
+ object: (o, ctx)=>{
38
+ return Object.fromEntries(Object.entries(o).map(([k, v])=>[
39
+ k,
40
+ v.visit(v, ctx)
41
+ ]));
42
+ },
43
+ buffer: (o)=>{
44
+ return o;
45
+ },
46
+ boolean: (o)=>o,
47
+ number: (o)=>o,
48
+ string: (o)=>o,
49
+ symbol: (o)=>o,
50
+ bigint: (o)=>o,
51
+ date: (o)=>o,
52
+ null: (o)=>o,
53
+ undefined: (o)=>o,
54
+ unknown: (o, ctx)=>{
55
+ if (o instanceof Map) {
56
+ return new Map([
57
+ ...o.entries()
58
+ ].map(([k, v])=>[
59
+ k,
60
+ v.visit(v, ctx)
61
+ ]));
62
+ }
63
+ if (o instanceof Set) {
64
+ return new Set([
65
+ ...o.values()
66
+ ].map((v)=>v.visit(v, ctx)));
67
+ }
68
+ return o;
69
+ },
70
+ visit: (o, ctx)=>{
71
+ if (o === null) {
72
+ return v.null(o, ctx);
73
+ }
74
+ switch(typeof o){
75
+ case 'object':
76
+ if (o instanceof ArrayBuffer) {
77
+ return v.buffer(o, ctx);
78
+ }
79
+ if (Array.isArray(o)) {
80
+ return v.array(o, ctx);
81
+ }
82
+ if (o instanceof Date) {
83
+ return v.date(o, ctx);
84
+ }
85
+ // plain object
86
+ if (o.constructor === Object) {
87
+ return v.object(o, ctx);
88
+ }
89
+ //
90
+ return v.unknown(o, ctx);
91
+ case 'boolean':
92
+ return v.boolean(o, ctx);
93
+ case 'number':
94
+ return v.number(o, ctx);
95
+ case 'string':
96
+ return v.string(o, ctx);
97
+ case 'symbol':
98
+ return v.symbol(o, ctx);
99
+ case 'bigint':
100
+ return v.bigint(o, ctx);
101
+ case 'undefined':
102
+ return v.undefined(o, ctx);
103
+ default:
104
+ return v.unknown(o, ctx);
105
+ }
106
+ },
107
+ ..._v
108
+ };
109
+ return v.visit(o, ctx);
110
+ }
111
+
112
+ //# sourceMappingURL=hashCode.ignored.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/langs/hashCode.ignored.ts"],"sourcesContent":["function sortObjectKeys(obj?: Record<string, any>) {\n if (obj === null || obj === undefined) {\n return obj;\n }\n if (typeof obj !== 'object') {\n // it is a primitive: number/string (in an array)\n return obj;\n }\n return Object.keys(obj)\n .sort()\n .reduce(\n (acc, key) => {\n if (Array.isArray(obj[key])) {\n acc[key] = obj[key].map(sortObjectKeys);\n } else if (typeof obj[key] === 'object') {\n acc[key] = sortObjectKeys(obj[key]);\n } else {\n acc[key] = obj[key];\n }\n return acc;\n },\n {} as Record<string, any>,\n );\n}\n\nfunction toDeterministicJson(o: any) {\n // https://github.com/kikobeats/json-stringify-deterministic\n // https://stackoverflow.com/a/54902696/1870054\n // https://github.com/sinclairzx81/typebox#hash\n // https://github.com/sinclairzx81/typebox/blob/master/src/value/hash.ts\n // LCS longest common subsequence\n // https://github.com/sinclairzx81/typebox/issues/272\n let sorted: any = sortObjectKeys(o);\n let out = JSON.stringify(sorted, function (_, v) {\n return v === undefined ? 'undef' : v;\n });\n\n // Remove all whitespace\n return out.replace(/\\s+/g, '');\n}\n\ninterface Visitor<C> {\n array: (o: any[], ctx: C) => any;\n object: (o: Record<string, any>, ctx: C) => any;\n boolean: (o: boolean, ctx: C) => any;\n number: (o: number, ctx: C) => any;\n string: (o: string, ctx: C) => any;\n symbol: (o: symbol, ctx: C) => any;\n bigint: (o: bigint, ctx: C) => any;\n date: (o: Date, ctx: C) => any;\n buffer: (o: ArrayBuffer, ctx: C) => any;\n null: (o: null, ctx: C) => any;\n undefined: (o: undefined, ctx: C) => any;\n unknown: (o: unknown, ctx: C) => any;\n visit: (o: any, ctx: C) => any;\n}\n\nfunction visit<C>(o: any, _v: Partial<Visitor<C>>, ctx: C) {\n const v = {\n array: (o: any[], ctx: C): any => o.map((x) => v.visit(x, ctx)),\n object: (o: Record<string, any>, ctx: C) => {\n return Object.fromEntries(Object.entries(o).map(([k, v]) => [k, v.visit(v, ctx)]));\n },\n buffer: (o: ArrayBuffer) => {\n return o;\n },\n boolean: (o: boolean) => o,\n number: (o: number) => o,\n string: (o: string) => o,\n symbol: (o: symbol) => o,\n bigint: (o: bigint) => o,\n date: (o: Date) => o,\n null: (o: null) => o,\n undefined: (o: undefined) => o,\n unknown: (o: unknown, ctx: C): any => {\n if (o instanceof Map) {\n return new Map([...o.entries()].map(([k, v]) => [k, v.visit(v, ctx)]));\n }\n if (o instanceof Set) {\n return new Set([...o.values()].map((v) => v.visit(v, ctx)));\n }\n return o;\n },\n visit: (o: any, ctx: C): any => {\n if (o === null) {\n return v.null(o, ctx);\n }\n switch (typeof o) {\n case 'object':\n if (o instanceof ArrayBuffer) {\n return v.buffer(o, ctx);\n }\n if (Array.isArray(o)) {\n return v.array(o, ctx);\n }\n if (o instanceof Date) {\n return v.date(o, ctx);\n }\n // plain object\n if (o.constructor === Object) {\n return v.object(o, ctx);\n }\n //\n return v.unknown(o, ctx);\n case 'boolean':\n return v.boolean(o, ctx);\n case 'number':\n return v.number(o, ctx);\n case 'string':\n return v.string(o, ctx);\n case 'symbol':\n return v.symbol(o, ctx);\n case 'bigint':\n return v.bigint(o, ctx);\n case 'undefined':\n return v.undefined(o, ctx);\n default:\n return v.unknown(o, ctx);\n }\n },\n ..._v,\n };\n\n return v.visit(o, ctx);\n}\n"],"names":["sortObjectKeys","obj","undefined","Object","keys","sort","reduce","acc","key","Array","isArray","map","toDeterministicJson","o","sorted","out","JSON","stringify","_","v","replace","visit","_v","ctx","array","x","object","fromEntries","entries","k","buffer","boolean","number","string","symbol","bigint","date","null","unknown","Map","Set","values","ArrayBuffer","Date","constructor"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- function isClass(func) {
2
- return typeof func === "function" && /^class\s/.test(Function.prototype.toString.call(func));
1
+ export function isClass(func) {
2
+ return typeof func === 'function' && /^class\s/.test(Function.prototype.toString.call(func));
3
3
  }
4
4
 
5
- export { isClass };
6
- //# sourceMappingURL=isClass.js.map
5
+ //# sourceMappingURL=isClass.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isClass.js","sources":["../../src/langs/isClass.ts"],"sourcesContent":["export function isClass(func: any) {\n return typeof func === 'function' && /^class\\s/.test(Function.prototype.toString.call(func));\n}\n"],"names":[],"mappings":"AAAO,SAAS,QAAQ,IAAW,EAAA;AACjC,EAAO,OAAA,OAAO,IAAS,KAAA,UAAA,IAAc,UAAW,CAAA,IAAA,CAAK,SAAS,SAAU,CAAA,QAAA,CAAS,IAAK,CAAA,IAAI,CAAC,CAAA,CAAA;AAC7F;;;;"}
1
+ {"version":3,"sources":["../../src/langs/isClass.ts"],"sourcesContent":["export function isClass(func: any) {\n return typeof func === 'function' && /^class\\s/.test(Function.prototype.toString.call(func));\n}\n"],"names":["isClass","func","test","Function","prototype","toString","call"],"mappings":"AAAA,OAAO,SAASA,QAAQC,IAAS;IAC/B,OAAO,OAAOA,SAAS,cAAc,WAAWC,IAAI,CAACC,SAASC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACL;AACxF"}
@@ -1,6 +1,5 @@
1
- function isDefined(v) {
2
- return v !== null && v !== void 0;
1
+ export function isDefined(v) {
2
+ return v !== null && v !== undefined;
3
3
  }
4
4
 
5
- export { isDefined };
6
- //# sourceMappingURL=isDefined.js.map
5
+ //# sourceMappingURL=isDefined.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isDefined.js","sources":["../../src/langs/isDefined.ts"],"sourcesContent":["export function isDefined<T = any>(v: T): v is NonNullable<T> {\n return v !== null && v !== undefined;\n}\n"],"names":[],"mappings":"AAAO,SAAS,UAAmB,CAA2B,EAAA;AAC5D,EAAO,OAAA,CAAA,KAAM,QAAQ,CAAM,KAAA,KAAA,CAAA,CAAA;AAC7B;;;;"}
1
+ {"version":3,"sources":["../../src/langs/isDefined.ts"],"sourcesContent":["export function isDefined<T = any>(v: T): v is NonNullable<T> {\n return v !== null && v !== undefined;\n}\n"],"names":["isDefined","v","undefined"],"mappings":"AAAA,OAAO,SAASA,UAAmBC,CAAI;IACrC,OAAOA,MAAM,QAAQA,MAAMC;AAC7B"}
@@ -1,8 +1,6 @@
1
1
  import { isPlainObject } from './isPlainObject.js';
2
-
3
- function isEmptyObject(o) {
4
- return isPlainObject(o) && Object.keys(o).length === 0;
2
+ export function isEmptyObject(o) {
3
+ return isPlainObject(o) && Object.keys(o).length === 0;
5
4
  }
6
5
 
7
- export { isEmptyObject };
8
- //# sourceMappingURL=isEmptyObject.js.map
6
+ //# sourceMappingURL=isEmptyObject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isEmptyObject.js","sources":["../../src/langs/isEmptyObject.ts"],"sourcesContent":["import { isPlainObject } from './isPlainObject';\n\nexport function isEmptyObject(o: any) {\n return isPlainObject(o) && Object.keys(o).length === 0;\n}\n"],"names":[],"mappings":";;AAEO,SAAS,cAAc,CAAQ,EAAA;AACpC,EAAA,OAAO,cAAc,CAAC,CAAA,IAAK,OAAO,IAAK,CAAA,CAAC,EAAE,MAAW,KAAA,CAAA,CAAA;AACvD;;;;"}
1
+ {"version":3,"sources":["../../src/langs/isEmptyObject.ts"],"sourcesContent":["import { isPlainObject } from './isPlainObject';\n\nexport function isEmptyObject(o: any) {\n return isPlainObject(o) && Object.keys(o).length === 0;\n}\n"],"names":["isPlainObject","isEmptyObject","o","Object","keys","length"],"mappings":"AAAA,SAASA,aAAa,QAAQ,kBAAkB;AAEhD,OAAO,SAASC,cAAcC,CAAM;IAClC,OAAOF,cAAcE,MAAMC,OAAOC,IAAI,CAACF,GAAGG,MAAM,KAAK;AACvD"}
@@ -0,0 +1,5 @@
1
+ export function isFunction(value) {
2
+ return typeof value === 'function';
3
+ }
4
+
5
+ //# sourceMappingURL=isFunction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/langs/isFunction.ts"],"sourcesContent":["export function isFunction(value: any): value is Function {\n return typeof value === 'function';\n}\n"],"names":["isFunction","value"],"mappings":"AAAA,OAAO,SAASA,WAAWC,KAAU;IACnC,OAAO,OAAOA,UAAU;AAC1B"}
@@ -1,11 +1,10 @@
1
1
  import { classOf } from './classOf.js';
2
-
3
- function isPlainObject(value) {
4
- if (classOf(value) !== "Object") {
5
- return false;
6
- }
7
- return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
2
+ // see: https://github.com/mesqueeb/is-what/blob/88d6e4ca92fb2baab6003c54e02eedf4e729e5ab/src/index.ts
3
+ export function isPlainObject(value) {
4
+ if (classOf(value) !== 'Object') {
5
+ return false;
6
+ }
7
+ return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
8
8
  }
9
9
 
10
- export { isPlainObject };
11
- //# sourceMappingURL=isPlainObject.js.map
10
+ //# sourceMappingURL=isPlainObject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isPlainObject.js","sources":["../../src/langs/isPlainObject.ts"],"sourcesContent":["import { classOf } from './classOf';\n\n// see: https://github.com/mesqueeb/is-what/blob/88d6e4ca92fb2baab6003c54e02eedf4e729e5ab/src/index.ts\n\nexport function isPlainObject(value: any): value is Record<string, any> {\n if (classOf(value) !== 'Object') {\n return false;\n }\n return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;\n}\n"],"names":[],"mappings":";;AAIO,SAAS,cAAc,KAA0C,EAAA;AACtE,EAAI,IAAA,OAAA,CAAQ,KAAK,CAAA,KAAM,QAAU,EAAA;AAC/B,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AACA,EAAA,OAAO,MAAM,WAAgB,KAAA,MAAA,IAAU,OAAO,cAAe,CAAA,KAAK,MAAM,MAAO,CAAA,SAAA,CAAA;AACjF;;;;"}
1
+ {"version":3,"sources":["../../src/langs/isPlainObject.ts"],"sourcesContent":["import { classOf } from './classOf';\n\n// see: https://github.com/mesqueeb/is-what/blob/88d6e4ca92fb2baab6003c54e02eedf4e729e5ab/src/index.ts\n\nexport function isPlainObject(value: any): value is Record<string, any> {\n if (classOf(value) !== 'Object') {\n return false;\n }\n return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;\n}\n"],"names":["classOf","isPlainObject","value","constructor","Object","getPrototypeOf","prototype"],"mappings":"AAAA,SAASA,OAAO,QAAQ,YAAY;AAEpC,sGAAsG;AAEtG,OAAO,SAASC,cAAcC,KAAU;IACtC,IAAIF,QAAQE,WAAW,UAAU;QAC/B,OAAO;IACT;IACA,OAAOA,MAAMC,WAAW,KAAKC,UAAUA,OAAOC,cAAc,CAACH,WAAWE,OAAOE,SAAS;AAC1F"}
@@ -1,24 +1,22 @@
1
- function memoize(callback, {
2
- resolver = (...args) => JSON.stringify(args)
3
- } = {}) {
4
- if (typeof callback !== "function") {
5
- throw new Error("`callback` should be a function");
6
- }
7
- if (resolver !== void 0 && typeof resolver !== "function") {
8
- throw new Error("`resolver` should be a function");
9
- }
10
- const cache = {};
11
- const memoized = function() {
12
- const args = Array.prototype.slice.call(arguments);
13
- const key = resolver.apply(this, args);
14
- if (!(key in cache)) {
15
- cache[key] = callback.apply(this, args);
1
+ // https://github.com/angus-c/just/blob/master/packages/function-memoize/index.mjs
2
+ export function memoize(callback, { resolver = (...args)=>JSON.stringify(args) } = {}) {
3
+ if (typeof callback !== 'function') {
4
+ throw new Error('`callback` should be a function');
16
5
  }
17
- return cache[key];
18
- };
19
- memoized.cache = cache;
20
- return memoized;
6
+ if (resolver !== undefined && typeof resolver !== 'function') {
7
+ throw new Error('`resolver` should be a function');
8
+ }
9
+ const cache = {};
10
+ const memoized = function() {
11
+ const args = Array.prototype.slice.call(arguments); // to simplify JSON.stringify
12
+ const key = resolver.apply(this, args);
13
+ if (!(key in cache)) {
14
+ cache[key] = callback.apply(this, args);
15
+ }
16
+ return cache[key];
17
+ };
18
+ memoized.cache = cache;
19
+ return memoized;
21
20
  }
22
21
 
23
- export { memoize };
24
- //# sourceMappingURL=memoize.js.map
22
+ //# sourceMappingURL=memoize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memoize.js","sources":["../../src/langs/memoize.ts"],"sourcesContent":["// https://github.com/angus-c/just/blob/master/packages/function-memoize/index.mjs\ntype func = (...args: any) => any;\n\nexport function memoize<T extends func>(\n callback: T,\n {\n resolver = (...args: Parameters<T>) => JSON.stringify(args),\n }: { resolver?: (...args: Parameters<T>) => string } = {},\n): T {\n if (typeof callback !== 'function') {\n throw new Error('`callback` should be a function');\n }\n\n if (resolver !== undefined && typeof resolver !== 'function') {\n throw new Error('`resolver` should be a function');\n }\n\n const cache: Record<string, any> = {};\n\n const memoized = function (this: any) {\n const args = Array.prototype.slice.call(arguments); // to simplify JSON.stringify\n const key = resolver.apply(this, args as Parameters<T>);\n\n if (!(key in cache)) {\n cache[key] = callback.apply(this, args);\n }\n\n return cache[key];\n };\n memoized.cache = cache;\n return memoized as func as T;\n}\n"],"names":[],"mappings":"AAGO,SAAS,QACd,QACA,EAAA;AAAA,EACE,QAAW,GAAA,CAAA,GAAI,IAAwB,KAAA,IAAA,CAAK,UAAU,IAAI,CAAA;AAC5D,CAAA,GAAuD,EACpD,EAAA;AACH,EAAI,IAAA,OAAO,aAAa,UAAY,EAAA;AAClC,IAAM,MAAA,IAAI,MAAM,iCAAiC,CAAA,CAAA;AAAA,GACnD;AAEA,EAAA,IAAI,QAAa,KAAA,KAAA,CAAA,IAAa,OAAO,QAAA,KAAa,UAAY,EAAA;AAC5D,IAAM,MAAA,IAAI,MAAM,iCAAiC,CAAA,CAAA;AAAA,GACnD;AAEA,EAAA,MAAM,QAA6B,EAAC,CAAA;AAEpC,EAAA,MAAM,WAAW,WAAqB;AACpC,IAAA,MAAM,IAAO,GAAA,KAAA,CAAM,SAAU,CAAA,KAAA,CAAM,KAAK,SAAS,CAAA,CAAA;AACjD,IAAA,MAAM,GAAM,GAAA,QAAA,CAAS,KAAM,CAAA,IAAA,EAAM,IAAqB,CAAA,CAAA;AAEtD,IAAI,IAAA,EAAE,OAAO,KAAQ,CAAA,EAAA;AACnB,MAAA,KAAA,CAAM,GAAG,CAAA,GAAI,QAAS,CAAA,KAAA,CAAM,MAAM,IAAI,CAAA,CAAA;AAAA,KACxC;AAEA,IAAA,OAAO,MAAM,GAAG,CAAA,CAAA;AAAA,GAClB,CAAA;AACA,EAAA,QAAA,CAAS,KAAQ,GAAA,KAAA,CAAA;AACjB,EAAO,OAAA,QAAA,CAAA;AACT;;;;"}
1
+ {"version":3,"sources":["../../src/langs/memoize.ts"],"sourcesContent":["// https://github.com/angus-c/just/blob/master/packages/function-memoize/index.mjs\ntype func = (...args: any) => any;\n\nexport function memoize<T extends func>(\n callback: T,\n {\n resolver = (...args: Parameters<T>) => JSON.stringify(args),\n }: { resolver?: (...args: Parameters<T>) => string } = {},\n): T {\n if (typeof callback !== 'function') {\n throw new Error('`callback` should be a function');\n }\n\n if (resolver !== undefined && typeof resolver !== 'function') {\n throw new Error('`resolver` should be a function');\n }\n\n const cache: Record<string, any> = {};\n\n const memoized = function (this: any) {\n const args = Array.prototype.slice.call(arguments); // to simplify JSON.stringify\n const key = resolver.apply(this, args as Parameters<T>);\n\n if (!(key in cache)) {\n cache[key] = callback.apply(this, args);\n }\n\n return cache[key];\n };\n memoized.cache = cache;\n return memoized as func as T;\n}\n"],"names":["memoize","callback","resolver","args","JSON","stringify","Error","undefined","cache","memoized","Array","prototype","slice","call","arguments","key","apply"],"mappings":"AAAA,kFAAkF;AAGlF,OAAO,SAASA,QACdC,QAAW,EACX,EACEC,WAAW,CAAC,GAAGC,OAAwBC,KAAKC,SAAS,CAACF,KAAK,EACT,GAAG,CAAC,CAAC;IAEzD,IAAI,OAAOF,aAAa,YAAY;QAClC,MAAM,IAAIK,MAAM;IAClB;IAEA,IAAIJ,aAAaK,aAAa,OAAOL,aAAa,YAAY;QAC5D,MAAM,IAAII,MAAM;IAClB;IAEA,MAAME,QAA6B,CAAC;IAEpC,MAAMC,WAAW;QACf,MAAMN,OAAOO,MAAMC,SAAS,CAACC,KAAK,CAACC,IAAI,CAACC,YAAY,6BAA6B;QACjF,MAAMC,MAAMb,SAASc,KAAK,CAAC,IAAI,EAAEb;QAEjC,IAAI,CAAEY,CAAAA,OAAOP,KAAI,GAAI;YACnBA,KAAK,CAACO,IAAI,GAAGd,SAASe,KAAK,CAAC,IAAI,EAAEb;QACpC;QAEA,OAAOK,KAAK,CAACO,IAAI;IACnB;IACAN,SAASD,KAAK,GAAGA;IACjB,OAAOC;AACT"}
@@ -1,31 +1,30 @@
1
- function parseBoolean(s, strict = false) {
2
- if (typeof s === "boolean") {
3
- return s;
4
- }
5
- if (typeof s === "string") {
6
- switch (s.toLowerCase()) {
7
- case "f":
8
- case "false":
9
- case "0":
10
- return false;
11
- case "1":
12
- case "t":
13
- case "true":
14
- return true;
1
+ export function parseBoolean(s, strict = false) {
2
+ if (typeof s === 'boolean') {
3
+ return s;
15
4
  }
16
- } else if (typeof s === "number") {
17
- switch (s) {
18
- case 0:
19
- return false;
20
- case 1:
21
- return true;
5
+ if (typeof s === 'string') {
6
+ switch(s.toLowerCase()){
7
+ case 'f':
8
+ case 'false':
9
+ case '0':
10
+ return false;
11
+ case '1':
12
+ case 't':
13
+ case 'true':
14
+ return true;
15
+ }
16
+ } else if (typeof s === 'number') {
17
+ switch(s){
18
+ case 0:
19
+ return false;
20
+ case 1:
21
+ return true;
22
+ }
22
23
  }
23
- }
24
- if (strict) {
25
- return void 0;
26
- }
27
- return Boolean(s);
24
+ if (strict) {
25
+ return undefined;
26
+ }
27
+ return Boolean(s);
28
28
  }
29
29
 
30
- export { parseBoolean };
31
- //# sourceMappingURL=parseBoolean.js.map
30
+ //# sourceMappingURL=parseBoolean.js.map