@wener/utils 1.1.26 → 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 (351) hide show
  1. package/README.md +4 -0
  2. package/lib/arrays/MaybeArray.js +36 -25
  3. package/lib/arrays/MaybeArray.js.map +1 -1
  4. package/lib/arrays/arrayFromAsync.js +5 -7
  5. package/lib/arrays/arrayFromAsync.js.map +1 -1
  6. package/lib/asyncs/AsyncInterval.js +11 -12
  7. package/lib/asyncs/AsyncInterval.js.map +1 -1
  8. package/lib/asyncs/MaybePromise.js +3 -0
  9. package/lib/asyncs/MaybePromise.js.map +1 -0
  10. package/lib/asyncs/createAsyncIterator.js +37 -35
  11. package/lib/asyncs/createAsyncIterator.js.map +1 -1
  12. package/lib/asyncs/createLazyPromise.js +59 -60
  13. package/lib/asyncs/createLazyPromise.js.map +1 -1
  14. package/lib/asyncs/firstOfAsyncIterator.js +7 -9
  15. package/lib/asyncs/firstOfAsyncIterator.js.map +1 -1
  16. package/lib/asyncs/generatorOfStream.js +16 -0
  17. package/lib/asyncs/generatorOfStream.js.map +1 -0
  18. package/lib/asyncs/isIterator.js +3 -4
  19. package/lib/asyncs/isIterator.js.map +1 -1
  20. package/lib/asyncs/isPromise.js +3 -4
  21. package/lib/asyncs/isPromise.js.map +1 -1
  22. package/lib/asyncs/isThenable.js +6 -0
  23. package/lib/asyncs/isThenable.js.map +1 -0
  24. package/lib/asyncs/nextOfAsyncIterator.js +20 -14
  25. package/lib/asyncs/nextOfAsyncIterator.js.map +1 -1
  26. package/lib/asyncs/promiseOfCallback.js +17 -0
  27. package/lib/asyncs/promiseOfCallback.js.map +1 -0
  28. package/lib/asyncs/sleep.js +2 -3
  29. package/lib/asyncs/sleep.js.map +1 -1
  30. package/lib/asyncs/timeout.js +22 -26
  31. package/lib/asyncs/timeout.js.map +1 -1
  32. package/lib/browsers/copy.js +47 -45
  33. package/lib/browsers/copy.js.map +1 -1
  34. package/lib/browsers/download.js +38 -27
  35. package/lib/browsers/download.js.map +1 -1
  36. package/lib/browsers/getFileFromDataTransfer.js +41 -28
  37. package/lib/browsers/getFileFromDataTransfer.js.map +1 -1
  38. package/lib/browsers/loaders.js +43 -43
  39. package/lib/browsers/loaders.js.map +1 -1
  40. package/lib/crypto/base.js +5 -4
  41. package/lib/crypto/base.js.map +1 -1
  42. package/lib/crypto/getNodeCrypto.js +14 -13
  43. package/lib/crypto/getNodeCrypto.js.map +1 -1
  44. package/lib/crypto/getRandomValues.js +22 -26
  45. package/lib/crypto/getRandomValues.js.map +1 -1
  46. package/lib/crypto/hashing.js +42 -50
  47. package/lib/crypto/hashing.js.map +1 -1
  48. package/lib/crypto/md5.bench.js +21 -0
  49. package/lib/crypto/md5.bench.js.map +1 -0
  50. package/lib/crypto/md5.d.js +3 -0
  51. package/lib/crypto/md5.d.js.map +1 -0
  52. package/lib/crypto/md5.js +119 -121
  53. package/lib/crypto/md5.js.map +1 -1
  54. package/lib/crypto/pem/pem.js +32 -35
  55. package/lib/crypto/pem/pem.js.map +1 -1
  56. package/lib/crypto/randomUUID.js +12 -11
  57. package/lib/crypto/randomUUID.js.map +1 -1
  58. package/lib/crypto/ulid.js +123 -112
  59. package/lib/crypto/ulid.js.map +1 -1
  60. package/lib/errors/Errors.js +167 -149
  61. package/lib/errors/Errors.js.map +1 -1
  62. package/lib/fetch/createFetchWith.js +20 -23
  63. package/lib/fetch/createFetchWith.js.map +1 -1
  64. package/lib/fetch/createFetchWithLogging.js +20 -16
  65. package/lib/fetch/createFetchWithLogging.js.map +1 -1
  66. package/lib/fetch/createFetchWithRetry.js +61 -65
  67. package/lib/fetch/createFetchWithRetry.js.map +1 -1
  68. package/lib/fetch/dumpRequest.js +39 -42
  69. package/lib/fetch/dumpRequest.js.map +1 -1
  70. package/lib/fetch/dumpResponse.js +13 -20
  71. package/lib/fetch/dumpResponse.js.map +1 -1
  72. package/lib/fetch/index.js +7 -0
  73. package/lib/fetch/index.js.map +1 -0
  74. package/lib/fetch/types.js +3 -0
  75. package/lib/fetch/types.js.map +1 -0
  76. package/lib/http/HttpStatus.js +89 -80
  77. package/lib/http/HttpStatus.js.map +1 -1
  78. package/lib/i18n/createTranslate.js +48 -48
  79. package/lib/i18n/createTranslate.js.map +1 -1
  80. package/lib/index.js +30 -14
  81. package/lib/index.js.map +1 -1
  82. package/lib/io/AbstractEncoding.js +7 -0
  83. package/lib/io/AbstractEncoding.js.map +1 -0
  84. package/lib/io/ArrayBuffer.test-d.js +7 -0
  85. package/lib/io/ArrayBuffer.test-d.js.map +1 -0
  86. package/lib/io/ArrayBuffers.js +198 -172
  87. package/lib/io/ArrayBuffers.js.map +1 -1
  88. package/lib/io/Buffer.js +21 -20
  89. package/lib/io/Buffer.js.map +1 -1
  90. package/lib/io/base64.js +49 -48
  91. package/lib/io/base64.js.map +1 -1
  92. package/lib/io/isBuffer.js +7 -5
  93. package/lib/io/isBuffer.js.map +1 -1
  94. package/lib/io/isTransferable.js +23 -19
  95. package/lib/io/isTransferable.js.map +1 -1
  96. package/lib/isomorphics/getGlobalThis.js +17 -12
  97. package/lib/isomorphics/getGlobalThis.js.map +1 -1
  98. package/lib/isomorphics/structuredClone.js +71 -63
  99. package/lib/isomorphics/structuredClone.js.map +1 -1
  100. package/lib/langs/MaybeFunction.js +7 -7
  101. package/lib/langs/MaybeFunction.js.map +1 -1
  102. package/lib/langs/classOf.js +3 -4
  103. package/lib/langs/classOf.js.map +1 -1
  104. package/lib/langs/deepEqual.js +77 -85
  105. package/lib/langs/deepEqual.js.map +1 -1
  106. package/lib/langs/deepFreeze.js +20 -0
  107. package/lib/langs/deepFreeze.js.map +1 -0
  108. package/lib/langs/hashCode.ignored.js +112 -0
  109. package/lib/langs/hashCode.ignored.js.map +1 -0
  110. package/lib/langs/isClass.js +3 -4
  111. package/lib/langs/isClass.js.map +1 -1
  112. package/lib/langs/isDefined.js +3 -4
  113. package/lib/langs/isDefined.js.map +1 -1
  114. package/lib/langs/isEmptyObject.js +3 -5
  115. package/lib/langs/isEmptyObject.js.map +1 -1
  116. package/lib/langs/isFunction.js +5 -0
  117. package/lib/langs/isFunction.js.map +1 -0
  118. package/lib/langs/isPlainObject.js +7 -8
  119. package/lib/langs/isPlainObject.js.map +1 -1
  120. package/lib/langs/memoize.js +19 -21
  121. package/lib/langs/memoize.js.map +1 -1
  122. package/lib/langs/parseBoolean.js +26 -27
  123. package/lib/langs/parseBoolean.js.map +1 -1
  124. package/lib/langs/shallowClone.js +12 -12
  125. package/lib/langs/shallowClone.js.map +1 -1
  126. package/lib/langs/shallowEqual.js +21 -18
  127. package/lib/langs/shallowEqual.js.map +1 -1
  128. package/lib/libs/ms.js +123 -103
  129. package/lib/libs/ms.js.map +1 -1
  130. package/lib/logging/Logger.js +5 -0
  131. package/lib/logging/Logger.js.map +1 -0
  132. package/lib/logging/createChildLogger.js +12 -14
  133. package/lib/logging/createChildLogger.js.map +1 -1
  134. package/lib/logging/createLogger.js +59 -33
  135. package/lib/logging/createLogger.js.map +1 -1
  136. package/lib/logging/createNoopLogger.js +11 -12
  137. package/lib/logging/createNoopLogger.js.map +1 -1
  138. package/lib/logging/slog.js +143 -0
  139. package/lib/logging/slog.js.map +1 -0
  140. package/lib/maths/clamp.js +21 -0
  141. package/lib/maths/clamp.js.map +1 -0
  142. package/lib/maths/random.js +14 -15
  143. package/lib/maths/random.js.map +1 -1
  144. package/lib/modules/isModule.js +5 -4
  145. package/lib/modules/isModule.js.map +1 -1
  146. package/lib/modules/parseModuleId.js +36 -31
  147. package/lib/modules/parseModuleId.js.map +1 -1
  148. package/lib/objects/get.js +13 -11
  149. package/lib/objects/get.js.map +1 -1
  150. package/lib/objects/get.test-d.js +33 -0
  151. package/lib/objects/get.test-d.js.map +1 -0
  152. package/lib/objects/merge/index.js +3 -0
  153. package/lib/objects/merge/index.js.map +1 -0
  154. package/lib/objects/merge/isMergeableObject.js +11 -10
  155. package/lib/objects/merge/isMergeableObject.js.map +1 -1
  156. package/lib/objects/merge/merge.js +65 -66
  157. package/lib/objects/merge/merge.js.map +1 -1
  158. package/lib/objects/parseObjectPath.js +35 -23
  159. package/lib/objects/parseObjectPath.js.map +1 -1
  160. package/lib/objects/set.js +33 -34
  161. package/lib/objects/set.js.map +1 -1
  162. package/lib/schema/typebox/gen/codegen/common/encoder.js +100 -0
  163. package/lib/schema/typebox/gen/codegen/common/encoder.js.map +1 -0
  164. package/lib/schema/typebox/gen/codegen/common/formatter.js +33 -0
  165. package/lib/schema/typebox/gen/codegen/common/formatter.js.map +1 -0
  166. package/lib/schema/typebox/gen/codegen/common/index.js +5 -0
  167. package/lib/schema/typebox/gen/codegen/common/index.js.map +1 -0
  168. package/lib/schema/typebox/gen/codegen/common/jsdoc.js +117 -0
  169. package/lib/schema/typebox/gen/codegen/common/jsdoc.js.map +1 -0
  170. package/lib/schema/typebox/gen/codegen/expression/compiler.js +367 -0
  171. package/lib/schema/typebox/gen/codegen/expression/compiler.js.map +1 -0
  172. package/lib/schema/typebox/gen/codegen/expression/errors.js +259 -0
  173. package/lib/schema/typebox/gen/codegen/expression/errors.js.map +1 -0
  174. package/lib/schema/typebox/gen/codegen/expression/evaluator.js +254 -0
  175. package/lib/schema/typebox/gen/codegen/expression/evaluator.js.map +1 -0
  176. package/lib/schema/typebox/gen/codegen/expression/expression.js +384 -0
  177. package/lib/schema/typebox/gen/codegen/expression/expression.js.map +1 -0
  178. package/lib/schema/typebox/gen/codegen/expression/index.js +6 -0
  179. package/lib/schema/typebox/gen/codegen/expression/index.js.map +1 -0
  180. package/lib/schema/typebox/gen/codegen/index.js +5 -0
  181. package/lib/schema/typebox/gen/codegen/index.js.map +1 -0
  182. package/lib/schema/typebox/gen/codegen/model/index.js +16 -0
  183. package/lib/schema/typebox/gen/codegen/model/index.js.map +1 -0
  184. package/lib/schema/typebox/gen/codegen/model/model-to-arktype.js +239 -0
  185. package/lib/schema/typebox/gen/codegen/model/model-to-arktype.js.map +1 -0
  186. package/lib/schema/typebox/gen/codegen/model/model-to-expression.js +359 -0
  187. package/lib/schema/typebox/gen/codegen/model/model-to-expression.js.map +1 -0
  188. package/lib/schema/typebox/gen/codegen/model/model-to-grpc.js +217 -0
  189. package/lib/schema/typebox/gen/codegen/model/model-to-grpc.js.map +1 -0
  190. package/lib/schema/typebox/gen/codegen/model/model-to-io-ts.js +253 -0
  191. package/lib/schema/typebox/gen/codegen/model/model-to-io-ts.js.map +1 -0
  192. package/lib/schema/typebox/gen/codegen/model/model-to-javascript.js +47 -0
  193. package/lib/schema/typebox/gen/codegen/model/model-to-javascript.js.map +1 -0
  194. package/lib/schema/typebox/gen/codegen/model/model-to-json-schema.js +171 -0
  195. package/lib/schema/typebox/gen/codegen/model/model-to-json-schema.js.map +1 -0
  196. package/lib/schema/typebox/gen/codegen/model/model-to-typebox.js +33 -0
  197. package/lib/schema/typebox/gen/codegen/model/model-to-typebox.js.map +1 -0
  198. package/lib/schema/typebox/gen/codegen/model/model-to-typescript.js +164 -0
  199. package/lib/schema/typebox/gen/codegen/model/model-to-typescript.js.map +1 -0
  200. package/lib/schema/typebox/gen/codegen/model/model-to-valibot.js +218 -0
  201. package/lib/schema/typebox/gen/codegen/model/model-to-valibot.js.map +1 -0
  202. package/lib/schema/typebox/gen/codegen/model/model-to-value.js +43 -0
  203. package/lib/schema/typebox/gen/codegen/model/model-to-value.js.map +1 -0
  204. package/lib/schema/typebox/gen/codegen/model/model-to-yrel.js +206 -0
  205. package/lib/schema/typebox/gen/codegen/model/model-to-yrel.js.map +1 -0
  206. package/lib/schema/typebox/gen/codegen/model/model-to-yup.js +204 -0
  207. package/lib/schema/typebox/gen/codegen/model/model-to-yup.js.map +1 -0
  208. package/lib/schema/typebox/gen/codegen/model/model-to-zod.js +227 -0
  209. package/lib/schema/typebox/gen/codegen/model/model-to-zod.js.map +1 -0
  210. package/lib/schema/typebox/gen/codegen/model/model.js +27 -0
  211. package/lib/schema/typebox/gen/codegen/model/model.js.map +1 -0
  212. package/lib/schema/typebox/gen/codegen/typescript/index.js +4 -0
  213. package/lib/schema/typebox/gen/codegen/typescript/index.js.map +1 -0
  214. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-model.js +48 -0
  215. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-model.js.map +1 -0
  216. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-typebox.js +596 -0
  217. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-typebox.js.map +1 -0
  218. package/lib/schema/typebox/gen/index.js +3 -0
  219. package/lib/schema/typebox/gen/index.js.map +1 -0
  220. package/lib/schema/typebox/index.js +3 -0
  221. package/lib/schema/typebox/index.js.map +1 -0
  222. package/lib/schema/typebox/typebox.js +23 -0
  223. package/lib/schema/typebox/typebox.js.map +1 -0
  224. package/lib/server.js +2 -1
  225. package/lib/server.js.map +1 -1
  226. package/lib/servers/crypto/md5.js +3 -5
  227. package/lib/servers/crypto/md5.js.map +1 -1
  228. package/lib/servers/fetch/createFetchWithProxy.js +2 -4
  229. package/lib/servers/fetch/createFetchWithProxy.js.map +1 -1
  230. package/lib/servers/fetch/createFetchWithProxyByNodeFetch.js +34 -34
  231. package/lib/servers/fetch/createFetchWithProxyByNodeFetch.js.map +1 -1
  232. package/lib/servers/fetch/createFetchWithProxyByUndici.js +59 -45
  233. package/lib/servers/fetch/createFetchWithProxyByUndici.js.map +1 -1
  234. package/lib/servers/getPackageDir.js +8 -10
  235. package/lib/servers/getPackageDir.js.map +1 -1
  236. package/lib/servers/jsdom.js +3 -2
  237. package/lib/servers/jsdom.js.map +1 -1
  238. package/lib/servers/node-fetch.js +4 -3
  239. package/lib/servers/node-fetch.js.map +1 -1
  240. package/lib/servers/polyfill/polyfillBrowser.js +17 -0
  241. package/lib/servers/polyfill/polyfillBrowser.js.map +1 -0
  242. package/lib/servers/polyfill/polyfillCrypto.js +8 -10
  243. package/lib/servers/polyfill/polyfillCrypto.js.map +1 -1
  244. package/lib/servers/polyfill/polyfillFetch.js +23 -22
  245. package/lib/servers/polyfill/polyfillFetch.js.map +1 -1
  246. package/lib/servers/polyfill/polyfillJsDom.js +59 -52
  247. package/lib/servers/polyfill/polyfillJsDom.js.map +1 -1
  248. package/lib/servers/polyfill/polyfillWebSocket.js +13 -13
  249. package/lib/servers/polyfill/polyfillWebSocket.js.map +1 -1
  250. package/lib/servers/ws.js +3 -2
  251. package/lib/servers/ws.js.map +1 -1
  252. package/lib/strings/camelCase.js +51 -49
  253. package/lib/strings/camelCase.js.map +1 -1
  254. package/lib/strings/formatBytes.js +41 -15
  255. package/lib/strings/formatBytes.js.map +1 -1
  256. package/lib/strings/renderTemplate.js +27 -20
  257. package/lib/strings/renderTemplate.js.map +1 -1
  258. package/lib/typedoc.js +4 -0
  259. package/lib/typedoc.js.map +1 -0
  260. package/lib/types/global.d.js +2 -0
  261. package/lib/types/global.d.js.map +1 -0
  262. package/lib/types/index.d.js +6 -0
  263. package/lib/types/index.d.js.map +1 -0
  264. package/lib/validations/asserts.js +14 -0
  265. package/lib/validations/asserts.js.map +1 -0
  266. package/lib/validations/isUUID.js +3 -4
  267. package/lib/validations/isUUID.js.map +1 -1
  268. package/lib/validations/parseTimestamp.js +25 -21
  269. package/lib/validations/parseTimestamp.js.map +1 -1
  270. package/package.json +59 -44
  271. package/src/index.ts +3 -3
  272. package/src/langs/deepFreeze.ts +19 -0
  273. package/src/langs/hashCode.ignored.ts +125 -0
  274. package/src/libs/README.md +2 -0
  275. package/src/logging/slog.ts +121 -0
  276. package/src/maths/clamp.test.ts +19 -0
  277. package/src/maths/clamp.ts +23 -1
  278. package/src/objects/get.ts +14 -14
  279. package/src/objects/set.ts +5 -5
  280. package/src/schema/typebox/gen/codegen/common/encoder.ts +99 -0
  281. package/src/schema/typebox/gen/codegen/common/formatter.ts +31 -0
  282. package/src/schema/typebox/gen/codegen/common/index.ts +29 -0
  283. package/src/schema/typebox/gen/codegen/common/jsdoc.ts +93 -0
  284. package/src/schema/typebox/gen/codegen/expression/compiler.ts +377 -0
  285. package/src/schema/typebox/gen/codegen/expression/errors.ts +302 -0
  286. package/src/schema/typebox/gen/codegen/expression/evaluator.ts +268 -0
  287. package/src/schema/typebox/gen/codegen/expression/expression.ts +538 -0
  288. package/src/schema/typebox/gen/codegen/expression/index.ts +32 -0
  289. package/src/schema/typebox/gen/codegen/index.ts +29 -0
  290. package/src/schema/typebox/gen/codegen/model/index.ts +40 -0
  291. package/src/schema/typebox/gen/codegen/model/model-to-arktype.ts +266 -0
  292. package/src/schema/typebox/gen/codegen/model/model-to-expression.ts +378 -0
  293. package/src/schema/typebox/gen/codegen/model/model-to-grpc.ts +244 -0
  294. package/src/schema/typebox/gen/codegen/model/model-to-io-ts.ts +294 -0
  295. package/src/schema/typebox/gen/codegen/model/model-to-javascript.ts +42 -0
  296. package/src/schema/typebox/gen/codegen/model/model-to-json-schema.ts +166 -0
  297. package/src/schema/typebox/gen/codegen/model/model-to-typebox.ts +32 -0
  298. package/src/schema/typebox/gen/codegen/model/model-to-typescript.ts +189 -0
  299. package/src/schema/typebox/gen/codegen/model/model-to-valibot.ts +236 -0
  300. package/src/schema/typebox/gen/codegen/model/model-to-value.ts +42 -0
  301. package/src/schema/typebox/gen/codegen/model/model-to-yrel.ts +232 -0
  302. package/src/schema/typebox/gen/codegen/model/model-to-yup.ts +226 -0
  303. package/src/schema/typebox/gen/codegen/model/model-to-zod.ts +251 -0
  304. package/src/schema/typebox/gen/codegen/model/model.ts +33 -0
  305. package/src/schema/typebox/gen/codegen/typescript/index.ts +28 -0
  306. package/src/schema/typebox/gen/codegen/typescript/typescript-to-model.ts +61 -0
  307. package/src/schema/typebox/gen/codegen/typescript/typescript-to-typebox.ts +647 -0
  308. package/src/schema/typebox/gen/gen.test.ts +12 -0
  309. package/src/schema/typebox/gen/index.ts +1 -0
  310. package/src/schema/typebox/index.ts +1 -0
  311. package/src/schema/typebox/typebox.ts +34 -0
  312. package/src/servers/fetch/createFetchWithProxyByUndici.ts +16 -1
  313. package/src/types/index.d.ts +1 -0
  314. package/dist/LICENSE.txt +0 -1
  315. package/dist/cjs/getGlobalThis-304f74e0.js +0 -2
  316. package/dist/cjs/getGlobalThis-304f74e0.js.map +0 -1
  317. package/dist/cjs/index.cjs +0 -21
  318. package/dist/cjs/index.cjs.map +0 -1
  319. package/dist/cjs/server.cjs +0 -2
  320. package/dist/cjs/server.cjs.map +0 -1
  321. package/dist/cjs/servers/jsdom.cjs +0 -2
  322. package/dist/cjs/servers/jsdom.cjs.map +0 -1
  323. package/dist/cjs/servers/node-fetch.cjs +0 -2
  324. package/dist/cjs/servers/node-fetch.cjs.map +0 -1
  325. package/dist/cjs/servers/ws.cjs +0 -2
  326. package/dist/cjs/servers/ws.cjs.map +0 -1
  327. package/dist/esm/getGlobalThis-b7ad0cf9.js +0 -2
  328. package/dist/esm/getGlobalThis-b7ad0cf9.js.map +0 -1
  329. package/dist/esm/index.js +0 -21
  330. package/dist/esm/index.js.map +0 -1
  331. package/dist/esm/server.js +0 -2
  332. package/dist/esm/server.js.map +0 -1
  333. package/dist/esm/servers/jsdom.js +0 -2
  334. package/dist/esm/servers/jsdom.js.map +0 -1
  335. package/dist/esm/servers/node-fetch.js +0 -2
  336. package/dist/esm/servers/node-fetch.js.map +0 -1
  337. package/dist/esm/servers/ws.js +0 -2
  338. package/dist/esm/servers/ws.js.map +0 -1
  339. package/dist/system/getGlobalThis-8951eb0e.js +0 -2
  340. package/dist/system/getGlobalThis-8951eb0e.js.map +0 -1
  341. package/dist/system/index.js +0 -21
  342. package/dist/system/index.js.map +0 -1
  343. package/dist/system/server.js +0 -2
  344. package/dist/system/server.js.map +0 -1
  345. package/dist/system/servers/jsdom.js +0 -2
  346. package/dist/system/servers/jsdom.js.map +0 -1
  347. package/dist/system/servers/node-fetch.js +0 -2
  348. package/dist/system/servers/node-fetch.js.map +0 -1
  349. package/dist/system/servers/ws.js +0 -2
  350. package/dist/system/servers/ws.js.map +0 -1
  351. package/src/langs/hashCode.ts +0 -37
@@ -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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"}
@@ -0,0 +1,20 @@
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;
9
+ }
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);
18
+ }
19
+
20
+ //# sourceMappingURL=deepFreeze.js.map
@@ -0,0 +1 @@
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
@@ -1 +1 @@
1
- {"version":3,"file":"parseBoolean.js","sources":["../../src/langs/parseBoolean.ts"],"sourcesContent":["export function parseBoolean(s: string | boolean | number | null | undefined, strict: true): boolean | undefined;\nexport function parseBoolean(s: string | boolean | number | null | undefined | any): boolean;\nexport function parseBoolean(s?: string | boolean | number | null, strict = false): boolean | undefined {\n if (typeof s === 'boolean') {\n return s;\n }\n if (typeof s === 'string') {\n switch (s.toLowerCase()) {\n case 'f':\n case 'false':\n case '0':\n return false;\n case '1':\n case 't':\n case 'true':\n return true;\n }\n } else if (typeof s === 'number') {\n switch (s) {\n case 0:\n return false;\n case 1:\n return true;\n }\n }\n if (strict) {\n return undefined;\n }\n return Boolean(s);\n}\n"],"names":[],"mappings":"AAEgB,SAAA,YAAA,CAAa,CAAsC,EAAA,MAAA,GAAS,KAA4B,EAAA;AACtG,EAAI,IAAA,OAAO,MAAM,SAAW,EAAA;AAC1B,IAAO,OAAA,CAAA,CAAA;AAAA,GACT;AACA,EAAI,IAAA,OAAO,MAAM,QAAU,EAAA;AACzB,IAAQ,QAAA,CAAA,CAAE,aAAe;AAAA,MACvB,KAAK,GAAA,CAAA;AAAA,MACL,KAAK,OAAA,CAAA;AAAA,MACL,KAAK,GAAA;AACH,QAAO,OAAA,KAAA,CAAA;AAAA,MACT,KAAK,GAAA,CAAA;AAAA,MACL,KAAK,GAAA,CAAA;AAAA,MACL,KAAK,MAAA;AACH,QAAO,OAAA,IAAA,CAAA;AAAA,KACX;AAAA,GACF,MAAA,IAAW,OAAO,CAAA,KAAM,QAAU,EAAA;AAChC,IAAA,QAAQ,CAAG;AAAA,MACT,KAAK,CAAA;AACH,QAAO,OAAA,KAAA,CAAA;AAAA,MACT,KAAK,CAAA;AACH,QAAO,OAAA,IAAA,CAAA;AAAA,KACX;AAAA,GACF;AACA,EAAA,IAAI,MAAQ,EAAA;AACV,IAAO,OAAA,KAAA,CAAA,CAAA;AAAA,GACT;AACA,EAAA,OAAO,QAAQ,CAAC,CAAA,CAAA;AAClB;;;;"}
1
+ {"version":3,"sources":["../../src/langs/parseBoolean.ts"],"sourcesContent":["export function parseBoolean(s: string | boolean | number | null | undefined, strict: true): boolean | undefined;\nexport function parseBoolean(s: string | boolean | number | null | undefined | any): boolean;\nexport function parseBoolean(s?: string | boolean | number | null, strict = false): boolean | undefined {\n if (typeof s === 'boolean') {\n return s;\n }\n if (typeof s === 'string') {\n switch (s.toLowerCase()) {\n case 'f':\n case 'false':\n case '0':\n return false;\n case '1':\n case 't':\n case 'true':\n return true;\n }\n } else if (typeof s === 'number') {\n switch (s) {\n case 0:\n return false;\n case 1:\n return true;\n }\n }\n if (strict) {\n return undefined;\n }\n return Boolean(s);\n}\n"],"names":["parseBoolean","s","strict","toLowerCase","undefined","Boolean"],"mappings":"AAEA,OAAO,SAASA,aAAaC,CAAoC,EAAEC,SAAS,KAAK;IAC/E,IAAI,OAAOD,MAAM,WAAW;QAC1B,OAAOA;IACT;IACA,IAAI,OAAOA,MAAM,UAAU;QACzB,OAAQA,EAAEE,WAAW;YACnB,KAAK;YACL,KAAK;YACL,KAAK;gBACH,OAAO;YACT,KAAK;YACL,KAAK;YACL,KAAK;gBACH,OAAO;QACX;IACF,OAAO,IAAI,OAAOF,MAAM,UAAU;QAChC,OAAQA;YACN,KAAK;gBACH,OAAO;YACT,KAAK;gBACH,OAAO;QACX;IACF;IACA,IAAIC,QAAQ;QACV,OAAOE;IACT;IACA,OAAOC,QAAQJ;AACjB"}