@wener/utils 1.1.31 → 1.1.33

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 (317) hide show
  1. package/dist/LICENSE.txt +1 -0
  2. package/dist/cjs/index.cjs +21 -0
  3. package/dist/cjs/index.cjs.map +1 -0
  4. package/dist/esm/index.js +21 -0
  5. package/dist/esm/index.js.map +1 -0
  6. package/dist/system/index.js +21 -0
  7. package/dist/system/index.js.map +1 -0
  8. package/package.json +37 -69
  9. package/src/asyncs/nextOfAsyncIterator.ts +13 -1
  10. package/src/asyncs/timeout.ts +15 -12
  11. package/src/cn/index.ts +1 -0
  12. package/src/cn/parseChineseNumber.test.ts +24 -0
  13. package/src/cn/parseChineseNumber.ts +97 -0
  14. package/src/crypto/getRandomValues.ts +5 -3
  15. package/src/crypto/hashing.test.ts +1 -1
  16. package/src/errors/Errors.test.ts +22 -0
  17. package/src/errors/Errors.ts +1 -4
  18. package/src/index.ts +2 -0
  19. package/src/io/Bytes.ts +64 -0
  20. package/src/isomorphics/structuredClone.ts +0 -3
  21. package/src/langs/AsyncCloser.ts +45 -0
  22. package/src/langs/Closer.ts +39 -0
  23. package/src/server/index.ts +6 -0
  24. package/src/{servers → server}/polyfill/polyfillWebSocket.ts +5 -0
  25. package/src/{types/index.d.ts → types.d.ts} +12 -0
  26. package/tsconfig.json +7 -5
  27. package/index.ts +0 -1
  28. package/lib/arrays/MaybeArray.js +0 -41
  29. package/lib/arrays/MaybeArray.js.map +0 -1
  30. package/lib/arrays/arrayFromAsync.js +0 -7
  31. package/lib/arrays/arrayFromAsync.js.map +0 -1
  32. package/lib/asyncs/AsyncInterval.js +0 -14
  33. package/lib/asyncs/AsyncInterval.js.map +0 -1
  34. package/lib/asyncs/MaybePromise.js +0 -3
  35. package/lib/asyncs/MaybePromise.js.map +0 -1
  36. package/lib/asyncs/createAsyncIterator.js +0 -41
  37. package/lib/asyncs/createAsyncIterator.js.map +0 -1
  38. package/lib/asyncs/createLazyPromise.js +0 -65
  39. package/lib/asyncs/createLazyPromise.js.map +0 -1
  40. package/lib/asyncs/firstOfAsyncIterator.js +0 -11
  41. package/lib/asyncs/firstOfAsyncIterator.js.map +0 -1
  42. package/lib/asyncs/generatorOfStream.js +0 -16
  43. package/lib/asyncs/generatorOfStream.js.map +0 -1
  44. package/lib/asyncs/isIterator.js +0 -5
  45. package/lib/asyncs/isIterator.js.map +0 -1
  46. package/lib/asyncs/isPromise.js +0 -5
  47. package/lib/asyncs/isPromise.js.map +0 -1
  48. package/lib/asyncs/isThenable.js +0 -6
  49. package/lib/asyncs/isThenable.js.map +0 -1
  50. package/lib/asyncs/nextOfAsyncIterator.js +0 -25
  51. package/lib/asyncs/nextOfAsyncIterator.js.map +0 -1
  52. package/lib/asyncs/promiseOfCallback.js +0 -17
  53. package/lib/asyncs/promiseOfCallback.js.map +0 -1
  54. package/lib/asyncs/sleep.js +0 -3
  55. package/lib/asyncs/sleep.js.map +0 -1
  56. package/lib/asyncs/timeout.js +0 -25
  57. package/lib/asyncs/timeout.js.map +0 -1
  58. package/lib/browsers/copy.js +0 -53
  59. package/lib/browsers/copy.js.map +0 -1
  60. package/lib/browsers/download.js +0 -41
  61. package/lib/browsers/download.js.map +0 -1
  62. package/lib/browsers/getFileFromDataTransfer.js +0 -45
  63. package/lib/browsers/getFileFromDataTransfer.js.map +0 -1
  64. package/lib/browsers/loaders.js +0 -49
  65. package/lib/browsers/loaders.js.map +0 -1
  66. package/lib/crypto/base.js +0 -7
  67. package/lib/crypto/base.js.map +0 -1
  68. package/lib/crypto/getNodeCrypto.js +0 -18
  69. package/lib/crypto/getNodeCrypto.js.map +0 -1
  70. package/lib/crypto/getRandomValues.js +0 -29
  71. package/lib/crypto/getRandomValues.js.map +0 -1
  72. package/lib/crypto/hashing.js +0 -57
  73. package/lib/crypto/hashing.js.map +0 -1
  74. package/lib/crypto/md5.bench.js +0 -21
  75. package/lib/crypto/md5.bench.js.map +0 -1
  76. package/lib/crypto/md5.d.js +0 -3
  77. package/lib/crypto/md5.d.js.map +0 -1
  78. package/lib/crypto/md5.js +0 -121
  79. package/lib/crypto/md5.js.map +0 -1
  80. package/lib/crypto/pem/pem.js +0 -35
  81. package/lib/crypto/pem/pem.js.map +0 -1
  82. package/lib/crypto/randomUUID.js +0 -16
  83. package/lib/crypto/randomUUID.js.map +0 -1
  84. package/lib/crypto/ulid.js +0 -153
  85. package/lib/crypto/ulid.js.map +0 -1
  86. package/lib/errors/Errors.js +0 -181
  87. package/lib/errors/Errors.js.map +0 -1
  88. package/lib/fetch/createFetchWith.js +0 -23
  89. package/lib/fetch/createFetchWith.js.map +0 -1
  90. package/lib/fetch/createFetchWithLogging.js +0 -25
  91. package/lib/fetch/createFetchWithLogging.js.map +0 -1
  92. package/lib/fetch/createFetchWithRetry.js +0 -66
  93. package/lib/fetch/createFetchWithRetry.js.map +0 -1
  94. package/lib/fetch/dumpRequest.js +0 -45
  95. package/lib/fetch/dumpRequest.js.map +0 -1
  96. package/lib/fetch/dumpResponse.js +0 -16
  97. package/lib/fetch/dumpResponse.js.map +0 -1
  98. package/lib/fetch/index.js +0 -7
  99. package/lib/fetch/index.js.map +0 -1
  100. package/lib/fetch/types.js +0 -3
  101. package/lib/fetch/types.js.map +0 -1
  102. package/lib/http/HttpStatus.js +0 -94
  103. package/lib/http/HttpStatus.js.map +0 -1
  104. package/lib/i18n/createTranslate.js +0 -54
  105. package/lib/i18n/createTranslate.js.map +0 -1
  106. package/lib/index.js +0 -80
  107. package/lib/index.js.map +0 -1
  108. package/lib/io/AbstractEncoding.js +0 -7
  109. package/lib/io/AbstractEncoding.js.map +0 -1
  110. package/lib/io/ArrayBuffer.test-d.js +0 -7
  111. package/lib/io/ArrayBuffer.test-d.js.map +0 -1
  112. package/lib/io/ArrayBuffers.js +0 -210
  113. package/lib/io/ArrayBuffers.js.map +0 -1
  114. package/lib/io/Buffer.js +0 -25
  115. package/lib/io/Buffer.js.map +0 -1
  116. package/lib/io/base64.js +0 -54
  117. package/lib/io/base64.js.map +0 -1
  118. package/lib/io/isBuffer.js +0 -9
  119. package/lib/io/isBuffer.js.map +0 -1
  120. package/lib/io/isTransferable.js +0 -30
  121. package/lib/io/isTransferable.js.map +0 -1
  122. package/lib/isomorphics/getGlobalThis.js +0 -19
  123. package/lib/isomorphics/getGlobalThis.js.map +0 -1
  124. package/lib/isomorphics/structuredClone.js +0 -80
  125. package/lib/isomorphics/structuredClone.js.map +0 -1
  126. package/lib/langs/MaybeFunction.js +0 -9
  127. package/lib/langs/MaybeFunction.js.map +0 -1
  128. package/lib/langs/classOf.js +0 -5
  129. package/lib/langs/classOf.js.map +0 -1
  130. package/lib/langs/deepEqual.js +0 -87
  131. package/lib/langs/deepEqual.js.map +0 -1
  132. package/lib/langs/deepFreeze.js +0 -20
  133. package/lib/langs/deepFreeze.js.map +0 -1
  134. package/lib/langs/hashCode.ignored.js +0 -112
  135. package/lib/langs/hashCode.ignored.js.map +0 -1
  136. package/lib/langs/isClass.js +0 -5
  137. package/lib/langs/isClass.js.map +0 -1
  138. package/lib/langs/isDefined.js +0 -5
  139. package/lib/langs/isDefined.js.map +0 -1
  140. package/lib/langs/isEmptyObject.js +0 -6
  141. package/lib/langs/isEmptyObject.js.map +0 -1
  142. package/lib/langs/isFunction.js +0 -5
  143. package/lib/langs/isFunction.js.map +0 -1
  144. package/lib/langs/isPlainObject.js +0 -10
  145. package/lib/langs/isPlainObject.js.map +0 -1
  146. package/lib/langs/memoize.js +0 -22
  147. package/lib/langs/memoize.js.map +0 -1
  148. package/lib/langs/parseBoolean.js +0 -30
  149. package/lib/langs/parseBoolean.js.map +0 -1
  150. package/lib/langs/shallowClone.js +0 -15
  151. package/lib/langs/shallowClone.js.map +0 -1
  152. package/lib/langs/shallowEqual.js +0 -24
  153. package/lib/langs/shallowEqual.js.map +0 -1
  154. package/lib/libs/ms.js +0 -137
  155. package/lib/libs/ms.js.map +0 -1
  156. package/lib/logging/Logger.js +0 -5
  157. package/lib/logging/Logger.js.map +0 -1
  158. package/lib/logging/createChildLogger.js +0 -16
  159. package/lib/logging/createChildLogger.js.map +0 -1
  160. package/lib/logging/createLogger.js +0 -63
  161. package/lib/logging/createLogger.js.map +0 -1
  162. package/lib/logging/createNoopLogger.js +0 -13
  163. package/lib/logging/createNoopLogger.js.map +0 -1
  164. package/lib/logging/slog.js +0 -143
  165. package/lib/logging/slog.js.map +0 -1
  166. package/lib/maths/clamp.js +0 -21
  167. package/lib/maths/clamp.js.map +0 -1
  168. package/lib/maths/random.js +0 -17
  169. package/lib/maths/random.js.map +0 -1
  170. package/lib/modules/isModule.js +0 -7
  171. package/lib/modules/isModule.js.map +0 -1
  172. package/lib/modules/parseModuleId.js +0 -39
  173. package/lib/modules/parseModuleId.js.map +0 -1
  174. package/lib/objects/get.js +0 -16
  175. package/lib/objects/get.js.map +0 -1
  176. package/lib/objects/get.test-d.js +0 -33
  177. package/lib/objects/get.test-d.js.map +0 -1
  178. package/lib/objects/merge/index.js +0 -3
  179. package/lib/objects/merge/index.js.map +0 -1
  180. package/lib/objects/merge/isMergeableObject.js +0 -19
  181. package/lib/objects/merge/isMergeableObject.js.map +0 -1
  182. package/lib/objects/merge/merge.js +0 -89
  183. package/lib/objects/merge/merge.js.map +0 -1
  184. package/lib/objects/parseObjectPath.js +0 -39
  185. package/lib/objects/parseObjectPath.js.map +0 -1
  186. package/lib/objects/set.js +0 -38
  187. package/lib/objects/set.js.map +0 -1
  188. package/lib/schema/typebox/gen/codegen/common/encoder.js +0 -100
  189. package/lib/schema/typebox/gen/codegen/common/encoder.js.map +0 -1
  190. package/lib/schema/typebox/gen/codegen/common/formatter.js +0 -33
  191. package/lib/schema/typebox/gen/codegen/common/formatter.js.map +0 -1
  192. package/lib/schema/typebox/gen/codegen/common/index.js +0 -5
  193. package/lib/schema/typebox/gen/codegen/common/index.js.map +0 -1
  194. package/lib/schema/typebox/gen/codegen/common/jsdoc.js +0 -117
  195. package/lib/schema/typebox/gen/codegen/common/jsdoc.js.map +0 -1
  196. package/lib/schema/typebox/gen/codegen/expression/compiler.js +0 -367
  197. package/lib/schema/typebox/gen/codegen/expression/compiler.js.map +0 -1
  198. package/lib/schema/typebox/gen/codegen/expression/errors.js +0 -259
  199. package/lib/schema/typebox/gen/codegen/expression/errors.js.map +0 -1
  200. package/lib/schema/typebox/gen/codegen/expression/evaluator.js +0 -254
  201. package/lib/schema/typebox/gen/codegen/expression/evaluator.js.map +0 -1
  202. package/lib/schema/typebox/gen/codegen/expression/expression.js +0 -384
  203. package/lib/schema/typebox/gen/codegen/expression/expression.js.map +0 -1
  204. package/lib/schema/typebox/gen/codegen/expression/index.js +0 -6
  205. package/lib/schema/typebox/gen/codegen/expression/index.js.map +0 -1
  206. package/lib/schema/typebox/gen/codegen/index.js +0 -5
  207. package/lib/schema/typebox/gen/codegen/index.js.map +0 -1
  208. package/lib/schema/typebox/gen/codegen/model/index.js +0 -16
  209. package/lib/schema/typebox/gen/codegen/model/index.js.map +0 -1
  210. package/lib/schema/typebox/gen/codegen/model/model-to-arktype.js +0 -239
  211. package/lib/schema/typebox/gen/codegen/model/model-to-arktype.js.map +0 -1
  212. package/lib/schema/typebox/gen/codegen/model/model-to-expression.js +0 -359
  213. package/lib/schema/typebox/gen/codegen/model/model-to-expression.js.map +0 -1
  214. package/lib/schema/typebox/gen/codegen/model/model-to-grpc.js +0 -217
  215. package/lib/schema/typebox/gen/codegen/model/model-to-grpc.js.map +0 -1
  216. package/lib/schema/typebox/gen/codegen/model/model-to-io-ts.js +0 -253
  217. package/lib/schema/typebox/gen/codegen/model/model-to-io-ts.js.map +0 -1
  218. package/lib/schema/typebox/gen/codegen/model/model-to-javascript.js +0 -47
  219. package/lib/schema/typebox/gen/codegen/model/model-to-javascript.js.map +0 -1
  220. package/lib/schema/typebox/gen/codegen/model/model-to-json-schema.js +0 -171
  221. package/lib/schema/typebox/gen/codegen/model/model-to-json-schema.js.map +0 -1
  222. package/lib/schema/typebox/gen/codegen/model/model-to-typebox.js +0 -33
  223. package/lib/schema/typebox/gen/codegen/model/model-to-typebox.js.map +0 -1
  224. package/lib/schema/typebox/gen/codegen/model/model-to-typescript.js +0 -164
  225. package/lib/schema/typebox/gen/codegen/model/model-to-typescript.js.map +0 -1
  226. package/lib/schema/typebox/gen/codegen/model/model-to-valibot.js +0 -218
  227. package/lib/schema/typebox/gen/codegen/model/model-to-valibot.js.map +0 -1
  228. package/lib/schema/typebox/gen/codegen/model/model-to-value.js +0 -43
  229. package/lib/schema/typebox/gen/codegen/model/model-to-value.js.map +0 -1
  230. package/lib/schema/typebox/gen/codegen/model/model-to-yrel.js +0 -206
  231. package/lib/schema/typebox/gen/codegen/model/model-to-yrel.js.map +0 -1
  232. package/lib/schema/typebox/gen/codegen/model/model-to-yup.js +0 -204
  233. package/lib/schema/typebox/gen/codegen/model/model-to-yup.js.map +0 -1
  234. package/lib/schema/typebox/gen/codegen/model/model-to-zod.js +0 -227
  235. package/lib/schema/typebox/gen/codegen/model/model-to-zod.js.map +0 -1
  236. package/lib/schema/typebox/gen/codegen/model/model.js +0 -27
  237. package/lib/schema/typebox/gen/codegen/model/model.js.map +0 -1
  238. package/lib/schema/typebox/gen/codegen/typescript/index.js +0 -4
  239. package/lib/schema/typebox/gen/codegen/typescript/index.js.map +0 -1
  240. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-model.js +0 -48
  241. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-model.js.map +0 -1
  242. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-typebox.js +0 -596
  243. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-typebox.js.map +0 -1
  244. package/lib/schema/typebox/gen/index.js +0 -3
  245. package/lib/schema/typebox/gen/index.js.map +0 -1
  246. package/lib/schema/typebox/index.js +0 -3
  247. package/lib/schema/typebox/index.js.map +0 -1
  248. package/lib/schema/typebox/typebox.js +0 -23
  249. package/lib/schema/typebox/typebox.js.map +0 -1
  250. package/lib/server.js +0 -7
  251. package/lib/server.js.map +0 -1
  252. package/lib/servers/crypto/md5.js +0 -6
  253. package/lib/servers/crypto/md5.js.map +0 -1
  254. package/lib/servers/fetch/createFetchWithProxy.js +0 -4
  255. package/lib/servers/fetch/createFetchWithProxy.js.map +0 -1
  256. package/lib/servers/fetch/createFetchWithProxyByNodeFetch.js +0 -38
  257. package/lib/servers/fetch/createFetchWithProxyByNodeFetch.js.map +0 -1
  258. package/lib/servers/fetch/createFetchWithProxyByUndici.js +0 -64
  259. package/lib/servers/fetch/createFetchWithProxyByUndici.js.map +0 -1
  260. package/lib/servers/getPackageDir.js +0 -16
  261. package/lib/servers/getPackageDir.js.map +0 -1
  262. package/lib/servers/jsdom.js +0 -3
  263. package/lib/servers/jsdom.js.map +0 -1
  264. package/lib/servers/node-fetch.js +0 -4
  265. package/lib/servers/node-fetch.js.map +0 -1
  266. package/lib/servers/polyfill/polyfillBrowser.js +0 -17
  267. package/lib/servers/polyfill/polyfillBrowser.js.map +0 -1
  268. package/lib/servers/polyfill/polyfillCrypto.js +0 -11
  269. package/lib/servers/polyfill/polyfillCrypto.js.map +0 -1
  270. package/lib/servers/polyfill/polyfillFetch.js +0 -25
  271. package/lib/servers/polyfill/polyfillFetch.js.map +0 -1
  272. package/lib/servers/polyfill/polyfillJsDom.js +0 -64
  273. package/lib/servers/polyfill/polyfillJsDom.js.map +0 -1
  274. package/lib/servers/polyfill/polyfillWebSocket.js +0 -16
  275. package/lib/servers/polyfill/polyfillWebSocket.js.map +0 -1
  276. package/lib/servers/ws.js +0 -3
  277. package/lib/servers/ws.js.map +0 -1
  278. package/lib/strings/camelCase.js +0 -58
  279. package/lib/strings/camelCase.js.map +0 -1
  280. package/lib/strings/formatBytes.js +0 -43
  281. package/lib/strings/formatBytes.js.map +0 -1
  282. package/lib/strings/renderTemplate.js +0 -32
  283. package/lib/strings/renderTemplate.js.map +0 -1
  284. package/lib/typedoc.js +0 -4
  285. package/lib/typedoc.js.map +0 -1
  286. package/lib/types/global.d.js +0 -2
  287. package/lib/types/global.d.js.map +0 -1
  288. package/lib/types/index.d.js +0 -6
  289. package/lib/types/index.d.js.map +0 -1
  290. package/lib/validations/asserts.js +0 -14
  291. package/lib/validations/asserts.js.map +0 -1
  292. package/lib/validations/isUUID.js +0 -5
  293. package/lib/validations/isUUID.js.map +0 -1
  294. package/lib/validations/parseTimestamp.js +0 -29
  295. package/lib/validations/parseTimestamp.js.map +0 -1
  296. package/schema/typebox/gen/index.ts +0 -1
  297. package/schema/typebox/index.ts +0 -1
  298. package/server/jsdom.ts +0 -1
  299. package/server/node-fetch.ts +0 -1
  300. package/server/ws.ts +0 -1
  301. package/server.ts +0 -1
  302. package/src/server.ts +0 -6
  303. package/src/types/global.d.ts +0 -11
  304. package/types.d.ts +0 -1
  305. /package/src/{servers → server}/crypto/md5.ts +0 -0
  306. /package/src/{servers → server}/fetch/createFetchWithProxy.ts +0 -0
  307. /package/src/{servers → server}/fetch/createFetchWithProxyByNodeFetch.ts +0 -0
  308. /package/src/{servers → server}/fetch/createFetchWithProxyByUndici.ts +0 -0
  309. /package/src/{servers → server}/getPackageDir.ts +0 -0
  310. /package/src/{servers → server}/jsdom.ts +0 -0
  311. /package/src/{servers → server}/node-fetch.ts +0 -0
  312. /package/src/{servers → server}/polyfill/polyfillBrowser.test.ts +0 -0
  313. /package/src/{servers → server}/polyfill/polyfillBrowser.ts +0 -0
  314. /package/src/{servers → server}/polyfill/polyfillCrypto.ts +0 -0
  315. /package/src/{servers → server}/polyfill/polyfillFetch.ts +0 -0
  316. /package/src/{servers → server}/polyfill/polyfillJsDom.ts +0 -0
  317. /package/src/{servers → server}/ws.ts +0 -0
@@ -1,5 +0,0 @@
1
- /**
2
- * Logger interface satisfies the `console`, `pino` logger interface.
3
- */ export { };
4
-
5
- //# sourceMappingURL=Logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/logging/Logger.ts"],"sourcesContent":["/**\n * Logger interface satisfies the `console`, `pino` logger interface.\n */\nexport interface Logger {\n trace(...args: any[]): void;\n\n debug(...args: any[]): void;\n\n info(...args: any[]): void;\n\n warn(...args: any[]): void;\n\n error(...args: any[]): void;\n\n /**\n * create child logger with given context\n */\n child?: (o: object) => Logger;\n}\n\nexport interface LoggerWithChild extends Logger {\n child: (o: Record<string, any>) => LoggerWithChild;\n}\n\nexport type LogLevel = 'error' | 'warn' | 'info' | 'debug' | 'trace';\n"],"names":[],"mappings":"AAAA;;CAEC,GACD,WAqBqE"}
@@ -1,16 +0,0 @@
1
- import { createLogger } from './createLogger.js';
2
- export function createChildLogger(l, ctx) {
3
- if (l.child) {
4
- return l.child(ctx);
5
- }
6
- return createLogger((o)=>{
7
- const { level, values, ...c } = o;
8
- if (Object.keys(c).length) {
9
- l[level](c, ...values);
10
- } else {
11
- l[level](...values);
12
- }
13
- }, ctx);
14
- }
15
-
16
- //# sourceMappingURL=createChildLogger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/logging/createChildLogger.ts"],"sourcesContent":["import type { Logger, LoggerWithChild } from './Logger';\nimport { createLogger } from './createLogger';\n\nexport function createChildLogger(l: Logger, ctx: object): LoggerWithChild {\n if (l.child) {\n return l.child(ctx) as LoggerWithChild;\n }\n return createLogger((o) => {\n const { level, values, ...c } = o;\n if (Object.keys(c).length) {\n l[level](c, ...values);\n } else {\n l[level](...values);\n }\n }, ctx);\n}\n"],"names":["createLogger","createChildLogger","l","ctx","child","o","level","values","c","Object","keys","length"],"mappings":"AACA,SAASA,YAAY,QAAQ,iBAAiB;AAE9C,OAAO,SAASC,kBAAkBC,CAAS,EAAEC,GAAW;IACtD,IAAID,EAAEE,KAAK,EAAE;QACX,OAAOF,EAAEE,KAAK,CAACD;IACjB;IACA,OAAOH,aAAa,CAACK;QACnB,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAGC,GAAG,GAAGH;QAChC,IAAII,OAAOC,IAAI,CAACF,GAAGG,MAAM,EAAE;YACzBT,CAAC,CAACI,MAAM,CAACE,MAAMD;QACjB,OAAO;YACLL,CAAC,CAACI,MAAM,IAAIC;QACd;IACF,GAAGJ;AACL"}
@@ -1,63 +0,0 @@
1
- export function createLogger(write = ({ level, values, ...ctx })=>{
2
- ({ values, ...ctx } = merge(ctx, values));
3
- console[level]?.(...values, ctx);
4
- }, context = {}) {
5
- return {
6
- trace: (...values)=>{
7
- write({
8
- ...context,
9
- level: 'trace',
10
- values
11
- });
12
- },
13
- debug: (...values)=>{
14
- write({
15
- ...context,
16
- level: 'debug',
17
- values
18
- });
19
- },
20
- info: (...values)=>{
21
- write({
22
- ...context,
23
- level: 'info',
24
- values
25
- });
26
- },
27
- warn: (...values)=>{
28
- write({
29
- ...context,
30
- level: 'warn',
31
- values
32
- });
33
- },
34
- error: (...values)=>{
35
- write({
36
- ...context,
37
- level: 'error',
38
- values
39
- });
40
- },
41
- child: (ctx)=>createLogger(write, {
42
- ...context,
43
- ...ctx
44
- })
45
- };
46
- }
47
- // logger.info({name:'wener'},'message')
48
- // merge initial context with message object
49
- function merge(ctx, values) {
50
- if (values[0] && typeof values[0] === 'object') {
51
- return {
52
- ...ctx,
53
- ...values[0],
54
- values: values.slice(1)
55
- };
56
- }
57
- return {
58
- ...ctx,
59
- values
60
- };
61
- } // https://github.com/nestjs/nest/blob/master/packages/common/services/console-logger.service.ts
62
-
63
- //# sourceMappingURL=createLogger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/logging/createLogger.ts"],"sourcesContent":["import type { LoggerWithChild, LogLevel } from './Logger';\n\nexport interface CreateLoggerOptions {\n name?: string;\n handler?: (o: { level: LogLevel; values: any[] } & Record<string | symbol, any>) => void;\n context?: Record<string, any>;\n levels?: LogLevel[];\n}\n\nexport function createLogger(\n write: (o: { level: LogLevel; values: any[] } & Record<string | symbol, any>) => void = ({\n level,\n values,\n ...ctx\n }) => {\n ({ values, ...ctx } = merge(ctx, values));\n console[level]?.(...values, ctx);\n },\n context: object = {},\n): LoggerWithChild {\n return {\n trace: (...values) => {\n write({ ...context, level: 'trace', values });\n },\n debug: (...values) => {\n write({ ...context, level: 'debug', values });\n },\n info: (...values) => {\n write({ ...context, level: 'info', values });\n },\n warn: (...values) => {\n write({ ...context, level: 'warn', values });\n },\n error: (...values) => {\n write({ ...context, level: 'error', values });\n },\n child: (ctx) => createLogger(write, { ...context, ...ctx }),\n };\n}\n\n// logger.info({name:'wener'},'message')\n// merge initial context with message object\nfunction merge(ctx: any, values: any[]) {\n if (values[0] && typeof values[0] === 'object') {\n return { ...ctx, ...values[0], values: values.slice(1) };\n }\n return { ...ctx, values };\n}\n\n// https://github.com/nestjs/nest/blob/master/packages/common/services/console-logger.service.ts\n"],"names":["createLogger","write","level","values","ctx","merge","console","context","trace","debug","info","warn","error","child","slice"],"mappings":"AASA,OAAO,SAASA,aACdC,QAAwF,CAAC,EACvFC,KAAK,EACLC,MAAM,EACN,GAAGC,KACJ;IACE,CAAA,EAAED,MAAM,EAAE,GAAGC,KAAK,GAAGC,MAAMD,KAAKD,OAAM;IACvCG,OAAO,CAACJ,MAAM,MAAMC,QAAQC;AAC9B,CAAC,EACDG,UAAkB,CAAC,CAAC;IAEpB,OAAO;QACLC,OAAO,CAAC,GAAGL;YACTF,MAAM;gBAAE,GAAGM,OAAO;gBAAEL,OAAO;gBAASC;YAAO;QAC7C;QACAM,OAAO,CAAC,GAAGN;YACTF,MAAM;gBAAE,GAAGM,OAAO;gBAAEL,OAAO;gBAASC;YAAO;QAC7C;QACAO,MAAM,CAAC,GAAGP;YACRF,MAAM;gBAAE,GAAGM,OAAO;gBAAEL,OAAO;gBAAQC;YAAO;QAC5C;QACAQ,MAAM,CAAC,GAAGR;YACRF,MAAM;gBAAE,GAAGM,OAAO;gBAAEL,OAAO;gBAAQC;YAAO;QAC5C;QACAS,OAAO,CAAC,GAAGT;YACTF,MAAM;gBAAE,GAAGM,OAAO;gBAAEL,OAAO;gBAASC;YAAO;QAC7C;QACAU,OAAO,CAACT,MAAQJ,aAAaC,OAAO;gBAAE,GAAGM,OAAO;gBAAE,GAAGH,GAAG;YAAC;IAC3D;AACF;AAEA,wCAAwC;AACxC,4CAA4C;AAC5C,SAASC,MAAMD,GAAQ,EAAED,MAAa;IACpC,IAAIA,MAAM,CAAC,EAAE,IAAI,OAAOA,MAAM,CAAC,EAAE,KAAK,UAAU;QAC9C,OAAO;YAAE,GAAGC,GAAG;YAAE,GAAGD,MAAM,CAAC,EAAE;YAAEA,QAAQA,OAAOW,KAAK,CAAC;QAAG;IACzD;IACA,OAAO;QAAE,GAAGV,GAAG;QAAED;IAAO;AAC1B,EAEA,gGAAgG"}
@@ -1,13 +0,0 @@
1
- export function createNoopLogger() {
2
- const noop = (..._)=>undefined;
3
- return {
4
- trace: noop,
5
- debug: noop,
6
- info: noop,
7
- warn: noop,
8
- error: noop,
9
- child: ()=>createNoopLogger()
10
- };
11
- }
12
-
13
- //# sourceMappingURL=createNoopLogger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/logging/createNoopLogger.ts"],"sourcesContent":["import type { LoggerWithChild } from './Logger';\n\nexport function createNoopLogger(): LoggerWithChild {\n const noop = (..._: any[]) => undefined;\n return {\n trace: noop,\n debug: noop,\n info: noop,\n warn: noop,\n error: noop,\n child: () => createNoopLogger(),\n };\n}\n"],"names":["createNoopLogger","noop","_","undefined","trace","debug","info","warn","error","child"],"mappings":"AAEA,OAAO,SAASA;IACd,MAAMC,OAAO,CAAC,GAAGC,IAAaC;IAC9B,OAAO;QACLC,OAAOH;QACPI,OAAOJ;QACPK,MAAML;QACNM,MAAMN;QACNO,OAAOP;QACPQ,OAAO,IAAMT;IACf;AACF"}
@@ -1,143 +0,0 @@
1
- var Level;
2
- (function(Level) {
3
- Level[Level["trace"] = -8] = "trace";
4
- Level[Level["debug"] = -4] = "debug";
5
- Level[Level["info"] = 0] = "info";
6
- Level[Level["warn"] = 4] = "warn";
7
- Level[Level["error"] = 8] = "error";
8
- })(Level || (Level = {}));
9
- function createLogFunc(opts) {
10
- return (msg, ...args)=>{
11
- const rec = {
12
- message: String(msg),
13
- level: opts.level,
14
- attrs: Object.assign({}, opts.attrs)
15
- };
16
- if (args[0] && typeof args[0] === 'object') {
17
- rec.attrs = Object.assign(rec.attrs, args[0]);
18
- } else {
19
- for(let i = 0; i < args.length; i += 2){
20
- rec.attrs[String(args[i])] = args[i + 1];
21
- }
22
- }
23
- opts.onRecord(rec);
24
- };
25
- }
26
- function stringify(rec, opts = {}) {
27
- const sb = [];
28
- if (rec.time) {
29
- sb.push(rec.time.toJSON());
30
- }
31
- rec.level && opts.level !== false && sb.push(rec.level.toUpperCase().padStart(5, ' '));
32
- sb.push(rec.message);
33
- if (rec.attrs) {
34
- for (let [key, value] of Object.entries(rec.attrs)){
35
- sb.push(`${key}=${JSON.stringify(value)}`);
36
- }
37
- }
38
- return sb.join(' ');
39
- }
40
- export function createLogger(opts = {}) {
41
- opts.time ??= typeof window === 'undefined';
42
- const onRecord = (record)=>{
43
- // can change options after create
44
- const { writer = createLogger.writer, level, time } = opts;
45
- if (level) {
46
- if (Level[level] < Level[record.level]) {
47
- return;
48
- }
49
- }
50
- if (time) {
51
- record.time = new Date();
52
- }
53
- writer(record);
54
- };
55
- return {
56
- trace: createLogFunc({
57
- onRecord,
58
- level: 'trace'
59
- }),
60
- debug: createLogFunc({
61
- onRecord,
62
- level: 'debug'
63
- }),
64
- info: createLogFunc({
65
- onRecord,
66
- level: 'info'
67
- }),
68
- warn: createLogFunc({
69
- onRecord,
70
- level: 'warn'
71
- }),
72
- error: createLogFunc({
73
- onRecord,
74
- level: 'error'
75
- })
76
- };
77
- }
78
- createLogger.writer = (record)=>{
79
- const { level } = record;
80
- console[level || 'info'](stringify(record));
81
- };
82
- let formatter = (open, close, replace = open)=>(input)=>{
83
- let string = '' + input;
84
- let index = string.indexOf(close, open.length);
85
- return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;
86
- };
87
- let replaceClose = (string, close, replace, index)=>{
88
- let start = string.substring(0, index) + replace;
89
- let end = string.substring(index + close.length);
90
- let nextIndex = end.indexOf(close);
91
- return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end;
92
- };
93
- function getEnv() {
94
- if (typeof process === 'object') {
95
- return process.env;
96
- }
97
- return {};
98
- }
99
- function isColorSupported() {
100
- if (typeof window === 'object') {
101
- return true;
102
- }
103
- const env = getEnv();
104
- if ('NO_COLOR' in env) {
105
- return false;
106
- }
107
- if ('FORCE_COLOR' in env || 'CI' in env) {
108
- return true;
109
- }
110
- return false;
111
- }
112
- export function createConsoleColors(enabled = isColorSupported()) {
113
- return {
114
- isColorSupported: enabled,
115
- reset: enabled ? (s)=>`\x1b[0m${s}\x1b[0m` : String,
116
- bold: enabled ? formatter('\x1b[1m', '\x1b[22m', '\x1b[22m\x1b[1m') : String,
117
- dim: enabled ? formatter('\x1b[2m', '\x1b[22m', '\x1b[22m\x1b[2m') : String,
118
- italic: enabled ? formatter('\x1b[3m', '\x1b[23m') : String,
119
- underline: enabled ? formatter('\x1b[4m', '\x1b[24m') : String,
120
- inverse: enabled ? formatter('\x1b[7m', '\x1b[27m') : String,
121
- hidden: enabled ? formatter('\x1b[8m', '\x1b[28m') : String,
122
- strikethrough: enabled ? formatter('\x1b[9m', '\x1b[29m') : String,
123
- black: enabled ? formatter('\x1b[30m', '\x1b[39m') : String,
124
- red: enabled ? formatter('\x1b[31m', '\x1b[39m') : String,
125
- green: enabled ? formatter('\x1b[32m', '\x1b[39m') : String,
126
- yellow: enabled ? formatter('\x1b[33m', '\x1b[39m') : String,
127
- blue: enabled ? formatter('\x1b[34m', '\x1b[39m') : String,
128
- magenta: enabled ? formatter('\x1b[35m', '\x1b[39m') : String,
129
- cyan: enabled ? formatter('\x1b[36m', '\x1b[39m') : String,
130
- white: enabled ? formatter('\x1b[37m', '\x1b[39m') : String,
131
- gray: enabled ? formatter('\x1b[90m', '\x1b[39m') : String,
132
- bgBlack: enabled ? formatter('\x1b[40m', '\x1b[49m') : String,
133
- bgRed: enabled ? formatter('\x1b[41m', '\x1b[49m') : String,
134
- bgGreen: enabled ? formatter('\x1b[42m', '\x1b[49m') : String,
135
- bgYellow: enabled ? formatter('\x1b[43m', '\x1b[49m') : String,
136
- bgBlue: enabled ? formatter('\x1b[44m', '\x1b[49m') : String,
137
- bgMagenta: enabled ? formatter('\x1b[45m', '\x1b[49m') : String,
138
- bgCyan: enabled ? formatter('\x1b[46m', '\x1b[49m') : String,
139
- bgWhite: enabled ? formatter('\x1b[47m', '\x1b[49m') : String
140
- };
141
- }
142
-
143
- //# sourceMappingURL=slog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/logging/slog.ts"],"sourcesContent":["import { Logger, LogLevel } from './Logger';\n\nenum Level {\n trace = -8,\n debug = -4,\n info = 0,\n warn = 4,\n error = 8,\n}\n\ninterface LogRecord {\n time?: Date;\n message: string;\n level?: 'info' | 'debug' | 'warn' | 'error' | 'trace';\n attrs?: Record<string, any>;\n\n source?: {\n func?: string;\n file?: string;\n line?: number;\n };\n\n // https://cs.opensource.google/go/x/exp/+/d63ba01a:slog/record.go\n}\n\ntype LogFunc =\n | ((message: string) => void)\n | ((message: string, attrs: Record<string, any>) => void)\n | ((message: string, key: string, value: any, ...attrs: any[]) => void);\n\nfunction createLogFunc(opts: {\n onRecord: (rec: LogRecord) => void;\n attrs?: Record<string, any>;\n level?: LogLevel;\n}): LogFunc {\n return (msg: string, ...args: any[]) => {\n const rec = {\n message: String(msg),\n level: opts.level,\n attrs: Object.assign({}, opts.attrs),\n };\n\n if (args[0] && typeof args[0] === 'object') {\n rec.attrs = Object.assign(rec.attrs, args[0]);\n } else {\n for (let i = 0; i < args.length; i += 2) {\n rec.attrs[String(args[i])] = args[i + 1];\n }\n }\n\n opts.onRecord(rec);\n };\n}\n\nfunction stringify(rec: LogRecord, opts: { level?: boolean } = {}) {\n const sb = [];\n if (rec.time) {\n sb.push(rec.time.toJSON());\n }\n rec.level && opts.level !== false && sb.push(rec.level.toUpperCase().padStart(5, ' '));\n sb.push(rec.message);\n\n if (rec.attrs) {\n for (let [key, value] of Object.entries(rec.attrs)) {\n sb.push(`${key}=${JSON.stringify(value)}`);\n }\n }\n return sb.join(' ');\n}\n\nexport function createLogger(\n opts: { writer?: (record: LogRecord) => void; level?: LogLevel; time?: boolean } = {},\n): Logger {\n opts.time ??= typeof window === 'undefined';\n const onRecord = (record: LogRecord) => {\n // can change options after create\n const { writer = createLogger.writer, level, time } = opts;\n if (level) {\n if (Level[level] < Level[record.level!]) {\n return;\n }\n }\n if (time) {\n record.time = new Date();\n }\n writer(record);\n };\n return {\n trace: createLogFunc({ onRecord, level: 'trace' }),\n debug: createLogFunc({ onRecord, level: 'debug' }),\n info: createLogFunc({ onRecord, level: 'info' }),\n warn: createLogFunc({ onRecord, level: 'warn' }),\n error: createLogFunc({ onRecord, level: 'error' }),\n };\n}\n\ncreateLogger.writer = (record: LogRecord) => {\n const { level } = record;\n console[level || 'info'](stringify(record));\n};\n\n// https://github.com/alexeyraspopov/picocolors/blob/main/picocolors.js\n/*\nMDN: Styling console output\nhttps://developer.mozilla.org/en-US/docs/Web/API/console#Usage\n\nChrome: Console API Reference\nhttps://developers.google.com/web/tools/chrome-devtools/console/console-write#styling_console_output_with_css\n\nWebKit: Console Object API\nhttps://webkit.org/web-inspector/console-object-api/\n\nhttps://stackoverflow.com/questions/7505623\n\nconsole.log('\\x1b[36m Hello \\x1b[34m Colored \\x1b[35m World!');\nconsole.log('\\x1B[31mHello\\x1B[34m World');\nconsole.log('\\x1b[43mHighlighted');\n\n\nNestJS Formatter\nhttps://github.com/nestjs/nest/blob/d4bda940fc10238eb18f14ebf66d66b7ef8bff41/packages/common/services/console-logger.service.ts#L201-L227\n\n */\n\nexport type Formatter = (input: string | number | null | undefined) => string;\n\nexport interface Colors {\n isColorSupported: boolean;\n reset: Formatter;\n bold: Formatter;\n dim: Formatter;\n italic: Formatter;\n underline: Formatter;\n inverse: Formatter;\n hidden: Formatter;\n strikethrough: Formatter;\n black: Formatter;\n red: Formatter;\n green: Formatter;\n yellow: Formatter;\n blue: Formatter;\n magenta: Formatter;\n cyan: Formatter;\n white: Formatter;\n gray: Formatter;\n bgBlack: Formatter;\n bgRed: Formatter;\n bgGreen: Formatter;\n bgYellow: Formatter;\n bgBlue: Formatter;\n bgMagenta: Formatter;\n bgCyan: Formatter;\n bgWhite: Formatter;\n}\n\nlet formatter =\n (open: string, close: string, replace: string = open) =>\n (input: string) => {\n let string = '' + input;\n let index = string.indexOf(close, open.length);\n return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;\n };\n\nlet replaceClose = (string: string, close: string, replace: string, index: number): string => {\n let start = string.substring(0, index) + replace;\n let end = string.substring(index + close.length);\n let nextIndex = end.indexOf(close);\n return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end;\n};\n\nfunction getEnv(): Record<string, string | undefined> {\n if (typeof process === 'object') {\n return process.env;\n }\n return {};\n}\n\nfunction isColorSupported() {\n if (typeof window === 'object') {\n return true;\n }\n const env = getEnv();\n if ('NO_COLOR' in env) {\n return false;\n }\n if ('FORCE_COLOR' in env || 'CI' in env) {\n return true;\n }\n return false;\n}\n\nexport function createConsoleColors(enabled = isColorSupported()) {\n return {\n isColorSupported: enabled,\n reset: enabled ? (s: string) => `\\x1b[0m${s}\\x1b[0m` : String,\n bold: enabled ? formatter('\\x1b[1m', '\\x1b[22m', '\\x1b[22m\\x1b[1m') : String,\n dim: enabled ? formatter('\\x1b[2m', '\\x1b[22m', '\\x1b[22m\\x1b[2m') : String,\n italic: enabled ? formatter('\\x1b[3m', '\\x1b[23m') : String,\n underline: enabled ? formatter('\\x1b[4m', '\\x1b[24m') : String,\n inverse: enabled ? formatter('\\x1b[7m', '\\x1b[27m') : String,\n hidden: enabled ? formatter('\\x1b[8m', '\\x1b[28m') : String,\n strikethrough: enabled ? formatter('\\x1b[9m', '\\x1b[29m') : String,\n black: enabled ? formatter('\\x1b[30m', '\\x1b[39m') : String,\n red: enabled ? formatter('\\x1b[31m', '\\x1b[39m') : String,\n green: enabled ? formatter('\\x1b[32m', '\\x1b[39m') : String,\n yellow: enabled ? formatter('\\x1b[33m', '\\x1b[39m') : String,\n blue: enabled ? formatter('\\x1b[34m', '\\x1b[39m') : String,\n magenta: enabled ? formatter('\\x1b[35m', '\\x1b[39m') : String,\n cyan: enabled ? formatter('\\x1b[36m', '\\x1b[39m') : String,\n white: enabled ? formatter('\\x1b[37m', '\\x1b[39m') : String,\n gray: enabled ? formatter('\\x1b[90m', '\\x1b[39m') : String,\n bgBlack: enabled ? formatter('\\x1b[40m', '\\x1b[49m') : String,\n bgRed: enabled ? formatter('\\x1b[41m', '\\x1b[49m') : String,\n bgGreen: enabled ? formatter('\\x1b[42m', '\\x1b[49m') : String,\n bgYellow: enabled ? formatter('\\x1b[43m', '\\x1b[49m') : String,\n bgBlue: enabled ? formatter('\\x1b[44m', '\\x1b[49m') : String,\n bgMagenta: enabled ? formatter('\\x1b[45m', '\\x1b[49m') : String,\n bgCyan: enabled ? formatter('\\x1b[46m', '\\x1b[49m') : String,\n bgWhite: enabled ? formatter('\\x1b[47m', '\\x1b[49m') : String,\n };\n}\n"],"names":["Level","trace","debug","info","warn","error","createLogFunc","opts","msg","args","rec","message","String","level","attrs","Object","assign","i","length","onRecord","stringify","sb","time","push","toJSON","toUpperCase","padStart","key","value","entries","JSON","join","createLogger","window","record","writer","Date","console","formatter","open","close","replace","input","string","index","indexOf","replaceClose","start","substring","end","nextIndex","getEnv","process","env","isColorSupported","createConsoleColors","enabled","reset","s","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite"],"mappings":"IAEA;UAAKA,KAAK;IAALA,MAAAA,MACHC,WAAAA,MAAAA;IADGD,MAAAA,MAEHE,WAAAA,MAAAA;IAFGF,MAAAA,MAGHG,UAAO,KAAPA;IAHGH,MAAAA,MAIHI,UAAO,KAAPA;IAJGJ,MAAAA,MAKHK,WAAQ,KAARA;GALGL,UAAAA;AA4BL,SAASM,cAAcC,IAItB;IACC,OAAO,CAACC,KAAa,GAAGC;QACtB,MAAMC,MAAM;YACVC,SAASC,OAAOJ;YAChBK,OAAON,KAAKM,KAAK;YACjBC,OAAOC,OAAOC,MAAM,CAAC,CAAC,GAAGT,KAAKO,KAAK;QACrC;QAEA,IAAIL,IAAI,CAAC,EAAE,IAAI,OAAOA,IAAI,CAAC,EAAE,KAAK,UAAU;YAC1CC,IAAII,KAAK,GAAGC,OAAOC,MAAM,CAACN,IAAII,KAAK,EAAEL,IAAI,CAAC,EAAE;QAC9C,OAAO;YACL,IAAK,IAAIQ,IAAI,GAAGA,IAAIR,KAAKS,MAAM,EAAED,KAAK,EAAG;gBACvCP,IAAII,KAAK,CAACF,OAAOH,IAAI,CAACQ,EAAE,EAAE,GAAGR,IAAI,CAACQ,IAAI,EAAE;YAC1C;QACF;QAEAV,KAAKY,QAAQ,CAACT;IAChB;AACF;AAEA,SAASU,UAAUV,GAAc,EAAEH,OAA4B,CAAC,CAAC;IAC/D,MAAMc,KAAK,EAAE;IACb,IAAIX,IAAIY,IAAI,EAAE;QACZD,GAAGE,IAAI,CAACb,IAAIY,IAAI,CAACE,MAAM;IACzB;IACAd,IAAIG,KAAK,IAAIN,KAAKM,KAAK,KAAK,SAASQ,GAAGE,IAAI,CAACb,IAAIG,KAAK,CAACY,WAAW,GAAGC,QAAQ,CAAC,GAAG;IACjFL,GAAGE,IAAI,CAACb,IAAIC,OAAO;IAEnB,IAAID,IAAII,KAAK,EAAE;QACb,KAAK,IAAI,CAACa,KAAKC,MAAM,IAAIb,OAAOc,OAAO,CAACnB,IAAII,KAAK,EAAG;YAClDO,GAAGE,IAAI,CAAC,CAAC,EAAEI,IAAI,CAAC,EAAEG,KAAKV,SAAS,CAACQ,OAAO,CAAC;QAC3C;IACF;IACA,OAAOP,GAAGU,IAAI,CAAC;AACjB;AAEA,OAAO,SAASC,aACdzB,OAAmF,CAAC,CAAC;IAErFA,KAAKe,IAAI,KAAK,OAAOW,WAAW;IAChC,MAAMd,WAAW,CAACe;QAChB,kCAAkC;QAClC,MAAM,EAAEC,SAASH,aAAaG,MAAM,EAAEtB,KAAK,EAAES,IAAI,EAAE,GAAGf;QACtD,IAAIM,OAAO;YACT,IAAIb,KAAK,CAACa,MAAM,GAAGb,KAAK,CAACkC,OAAOrB,KAAK,CAAE,EAAE;gBACvC;YACF;QACF;QACA,IAAIS,MAAM;YACRY,OAAOZ,IAAI,GAAG,IAAIc;QACpB;QACAD,OAAOD;IACT;IACA,OAAO;QACLjC,OAAOK,cAAc;YAAEa;YAAUN,OAAO;QAAQ;QAChDX,OAAOI,cAAc;YAAEa;YAAUN,OAAO;QAAQ;QAChDV,MAAMG,cAAc;YAAEa;YAAUN,OAAO;QAAO;QAC9CT,MAAME,cAAc;YAAEa;YAAUN,OAAO;QAAO;QAC9CR,OAAOC,cAAc;YAAEa;YAAUN,OAAO;QAAQ;IAClD;AACF;AAEAmB,aAAaG,MAAM,GAAG,CAACD;IACrB,MAAM,EAAErB,KAAK,EAAE,GAAGqB;IAClBG,OAAO,CAACxB,SAAS,OAAO,CAACO,UAAUc;AACrC;AAwDA,IAAII,YACF,CAACC,MAAcC,OAAeC,UAAkBF,IAAI,GACpD,CAACG;QACC,IAAIC,SAAS,KAAKD;QAClB,IAAIE,QAAQD,OAAOE,OAAO,CAACL,OAAOD,KAAKrB,MAAM;QAC7C,OAAO,CAAC0B,QAAQL,OAAOO,aAAaH,QAAQH,OAAOC,SAASG,SAASJ,QAAQD,OAAOI,SAASH;IAC/F;AAEF,IAAIM,eAAe,CAACH,QAAgBH,OAAeC,SAAiBG;IAClE,IAAIG,QAAQJ,OAAOK,SAAS,CAAC,GAAGJ,SAASH;IACzC,IAAIQ,MAAMN,OAAOK,SAAS,CAACJ,QAAQJ,MAAMtB,MAAM;IAC/C,IAAIgC,YAAYD,IAAIJ,OAAO,CAACL;IAC5B,OAAO,CAACU,YAAYH,QAAQD,aAAaG,KAAKT,OAAOC,SAASS,aAAaH,QAAQE;AACrF;AAEA,SAASE;IACP,IAAI,OAAOC,YAAY,UAAU;QAC/B,OAAOA,QAAQC,GAAG;IACpB;IACA,OAAO,CAAC;AACV;AAEA,SAASC;IACP,IAAI,OAAOrB,WAAW,UAAU;QAC9B,OAAO;IACT;IACA,MAAMoB,MAAMF;IACZ,IAAI,cAAcE,KAAK;QACrB,OAAO;IACT;IACA,IAAI,iBAAiBA,OAAO,QAAQA,KAAK;QACvC,OAAO;IACT;IACA,OAAO;AACT;AAEA,OAAO,SAASE,oBAAoBC,UAAUF,kBAAkB;IAC9D,OAAO;QACLA,kBAAkBE;QAClBC,OAAOD,UAAU,CAACE,IAAc,CAAC,OAAO,EAAEA,EAAE,OAAO,CAAC,GAAG9C;QACvD+C,MAAMH,UAAUlB,UAAU,WAAW,YAAY,qBAAqB1B;QACtEgD,KAAKJ,UAAUlB,UAAU,WAAW,YAAY,qBAAqB1B;QACrEiD,QAAQL,UAAUlB,UAAU,WAAW,cAAc1B;QACrDkD,WAAWN,UAAUlB,UAAU,WAAW,cAAc1B;QACxDmD,SAASP,UAAUlB,UAAU,WAAW,cAAc1B;QACtDoD,QAAQR,UAAUlB,UAAU,WAAW,cAAc1B;QACrDqD,eAAeT,UAAUlB,UAAU,WAAW,cAAc1B;QAC5DsD,OAAOV,UAAUlB,UAAU,YAAY,cAAc1B;QACrDuD,KAAKX,UAAUlB,UAAU,YAAY,cAAc1B;QACnDwD,OAAOZ,UAAUlB,UAAU,YAAY,cAAc1B;QACrDyD,QAAQb,UAAUlB,UAAU,YAAY,cAAc1B;QACtD0D,MAAMd,UAAUlB,UAAU,YAAY,cAAc1B;QACpD2D,SAASf,UAAUlB,UAAU,YAAY,cAAc1B;QACvD4D,MAAMhB,UAAUlB,UAAU,YAAY,cAAc1B;QACpD6D,OAAOjB,UAAUlB,UAAU,YAAY,cAAc1B;QACrD8D,MAAMlB,UAAUlB,UAAU,YAAY,cAAc1B;QACpD+D,SAASnB,UAAUlB,UAAU,YAAY,cAAc1B;QACvDgE,OAAOpB,UAAUlB,UAAU,YAAY,cAAc1B;QACrDiE,SAASrB,UAAUlB,UAAU,YAAY,cAAc1B;QACvDkE,UAAUtB,UAAUlB,UAAU,YAAY,cAAc1B;QACxDmE,QAAQvB,UAAUlB,UAAU,YAAY,cAAc1B;QACtDoE,WAAWxB,UAAUlB,UAAU,YAAY,cAAc1B;QACzDqE,QAAQzB,UAAUlB,UAAU,YAAY,cAAc1B;QACtDsE,SAAS1B,UAAUlB,UAAU,YAAY,cAAc1B;IACzD;AACF"}
@@ -1,21 +0,0 @@
1
- // export function clamp<T>(value: T | null | undefined, o: { min: T; max: T; default?: T }): T;
2
- export function clamp(value, ...o) {
3
- let min, max, def;
4
- if (o.length === 1) {
5
- ({ min, max, default: def = min } = o[0]);
6
- } else {
7
- [min, max, def = min] = o;
8
- }
9
- if (value === null || value === undefined) {
10
- return def;
11
- }
12
- if (value < min) {
13
- return min;
14
- }
15
- if (value > max) {
16
- return max;
17
- }
18
- return value;
19
- } // type Comparable = number | string | Date | BigInt;
20
-
21
- //# sourceMappingURL=clamp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/maths/clamp.ts"],"sourcesContent":["// export function clamp<T>(value: T | null | undefined, o: { min: T; max: T; default?: T }): T;\n\nexport function clamp<T>(value: T | null | undefined, min: T, max: T, def?: T): T;\nexport function clamp<T>(value: T | null | undefined, ...o: any[]): T {\n let min: T, max: T, def: T;\n if (o.length === 1) {\n ({ min, max, default: def = min! } = o[0]);\n } else {\n [min, max, def = min!] = o;\n }\n if (value === null || value === undefined) {\n return def;\n }\n if (value < min) {\n return min;\n }\n if (value > max) {\n return max;\n }\n return value;\n}\n\n// type Comparable = number | string | Date | BigInt;\n"],"names":["clamp","value","o","min","max","def","length","default","undefined"],"mappings":"AAAA,gGAAgG;AAGhG,OAAO,SAASA,MAASC,KAA2B,EAAE,GAAGC,CAAQ;IAC/D,IAAIC,KAAQC,KAAQC;IACpB,IAAIH,EAAEI,MAAM,KAAK,GAAG;QACjB,CAAA,EAAEH,GAAG,EAAEC,GAAG,EAAEG,SAASF,MAAMF,GAAI,EAAE,GAAGD,CAAC,CAAC,EAAE,AAAD;IAC1C,OAAO;QACL,CAACC,KAAKC,KAAKC,MAAMF,GAAI,CAAC,GAAGD;IAC3B;IACA,IAAID,UAAU,QAAQA,UAAUO,WAAW;QACzC,OAAOH;IACT;IACA,IAAIJ,QAAQE,KAAK;QACf,OAAOA;IACT;IACA,IAAIF,QAAQG,KAAK;QACf,OAAOA;IACT;IACA,OAAOH;AACT,EAEA,qDAAqD"}
@@ -1,17 +0,0 @@
1
- /// javascript pseudo random
2
- export function createRandom(o = {}) {
3
- let seed = typeof o.seed === 'string' ? 0 : o.seed ?? 0;
4
- if (typeof o.seed === 'string') {
5
- let sum = 0;
6
- for(let i = 0; i < o.seed.length; i++){
7
- sum += o.seed.charCodeAt(i);
8
- }
9
- seed = sum;
10
- }
11
- return ()=>{
12
- const x = Math.sin(seed++) * 10000;
13
- return x - Math.floor(x);
14
- };
15
- }
16
-
17
- //# sourceMappingURL=random.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/maths/random.ts"],"sourcesContent":["/// javascript pseudo random\nexport function createRandom(o: { seed?: string | number } = {}) {\n let seed = typeof o.seed === 'string' ? 0 : o.seed ?? 0;\n if (typeof o.seed === 'string') {\n let sum = 0;\n for (let i = 0; i < o.seed.length; i++) {\n sum += o.seed.charCodeAt(i);\n }\n seed = sum;\n }\n\n return () => {\n const x = Math.sin(seed++) * 10000;\n return x - Math.floor(x);\n };\n}\n"],"names":["createRandom","o","seed","sum","i","length","charCodeAt","x","Math","sin","floor"],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,SAASA,aAAaC,IAAgC,CAAC,CAAC;IAC7D,IAAIC,OAAO,OAAOD,EAAEC,IAAI,KAAK,WAAW,IAAID,EAAEC,IAAI,IAAI;IACtD,IAAI,OAAOD,EAAEC,IAAI,KAAK,UAAU;QAC9B,IAAIC,MAAM;QACV,IAAK,IAAIC,IAAI,GAAGA,IAAIH,EAAEC,IAAI,CAACG,MAAM,EAAED,IAAK;YACtCD,OAAOF,EAAEC,IAAI,CAACI,UAAU,CAACF;QAC3B;QACAF,OAAOC;IACT;IAEA,OAAO;QACL,MAAMI,IAAIC,KAAKC,GAAG,CAACP,UAAU;QAC7B,OAAOK,IAAIC,KAAKE,KAAK,CAACH;IACxB;AACF"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Check is ESM Module
3
- */ export function isModule(o) {
4
- return o && o[Symbol.toStringTag] === 'Module';
5
- }
6
-
7
- //# sourceMappingURL=isModule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/modules/isModule.ts"],"sourcesContent":["/**\n * Check is ESM Module\n */\nexport function isModule(o: any): o is Module {\n return o && o[Symbol.toStringTag] === 'Module';\n}\n\nexport interface Module {\n [Symbol.toStringTag]: 'Module';\n default?: any;\n\n [k: string | symbol]: any;\n}\n"],"names":["isModule","o","Symbol","toStringTag"],"mappings":"AAAA;;CAEC,GACD,OAAO,SAASA,SAASC,CAAM;IAC7B,OAAOA,KAAKA,CAAC,CAACC,OAAOC,WAAW,CAAC,KAAK;AACxC"}
@@ -1,39 +0,0 @@
1
- // https://regex101.com/r/eMcXQ9/1
2
- const regModuleId = /^(?<n>(?:@(?<org>[a-z0-9-~][a-z0-9-._~]*)\/)?(?<pkg>[a-z0-9-~][a-z0-9-._~]*))(?:@(?<v>[-a-z0-9><=_.^~]+))?(?<p>\/[^\r\n]*)?$/;
3
- /**
4
- * Parse NPM module id
5
- *
6
- * @example
7
- * parseModuleId('@wener/reaction@latest/index.js')
8
- * // { id: '@wener/reaction@latest', name: '@wener/reaction', version: 'latest', range: 'latest', pkg: 'reaction', path: '/index.js', scoped: true, org: 'wener' }
9
- */ export function parseModuleId(s) {
10
- const groups = s.match(regModuleId)?.groups;
11
- if (!groups) {
12
- return undefined;
13
- }
14
- const { n: name, v: version, p: path, org, pkg } = groups;
15
- const scoped = Boolean(org);
16
- const v = /^\d+\.\d+\.\d+/.test(version) ? version : undefined;
17
- const range = version || 'latest';
18
- const o = {
19
- id: `${name}@${range}`,
20
- name,
21
- range,
22
- scoped,
23
- pkg,
24
- org,
25
- versioned: Boolean(version)
26
- };
27
- if (v) {
28
- o.version = v;
29
- }
30
- if (path) {
31
- o.path = path;
32
- }
33
- if (!o.scoped) {
34
- delete o.org;
35
- }
36
- return o;
37
- }
38
-
39
- //# sourceMappingURL=parseModuleId.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/modules/parseModuleId.ts"],"sourcesContent":["// https://regex101.com/r/eMcXQ9/1\nconst regModuleId =\n /^(?<n>(?:@(?<org>[a-z0-9-~][a-z0-9-._~]*)\\/)?(?<pkg>[a-z0-9-~][a-z0-9-._~]*))(?:@(?<v>[-a-z0-9><=_.^~]+))?(?<p>\\/[^\\r\\n]*)?$/;\n\nexport type ParsedModuleId = {\n id: string; // name@version\n name: string; // @org/pkg, pkg\n version?: string; // 1.1.1\n range: string; // version, tag, range\n pkg: string;\n path?: string;\n org?: string;\n versioned: boolean; // is module id contain a version specifier\n} & (\n | { scoped: false }\n | {\n scoped: true;\n org: string;\n }\n);\n\n/**\n * Parse NPM module id\n *\n * @example\n * parseModuleId('@wener/reaction@latest/index.js')\n * // { id: '@wener/reaction@latest', name: '@wener/reaction', version: 'latest', range: 'latest', pkg: 'reaction', path: '/index.js', scoped: true, org: 'wener' }\n */\nexport function parseModuleId(s: string): ParsedModuleId | undefined {\n const groups = s.match(regModuleId)?.groups;\n if (!groups) {\n return undefined;\n }\n const { n: name, v: version, p: path, org, pkg } = groups;\n const scoped = Boolean(org);\n const v = /^\\d+\\.\\d+\\.\\d+/.test(version) ? version : undefined;\n const range = version || 'latest';\n const o: ParsedModuleId = {\n id: `${name}@${range}`,\n name,\n range,\n scoped,\n pkg,\n org,\n versioned: Boolean(version),\n };\n if (v) {\n o.version = v;\n }\n if (path) {\n o.path = path;\n }\n if (!o.scoped) {\n delete o.org;\n }\n return o;\n}\n"],"names":["regModuleId","parseModuleId","s","groups","match","undefined","n","name","v","version","p","path","org","pkg","scoped","Boolean","test","range","o","id","versioned"],"mappings":"AAAA,kCAAkC;AAClC,MAAMA,cACJ;AAmBF;;;;;;CAMC,GACD,OAAO,SAASC,cAAcC,CAAS;IACrC,MAAMC,SAASD,EAAEE,KAAK,CAACJ,cAAcG;IACrC,IAAI,CAACA,QAAQ;QACX,OAAOE;IACT;IACA,MAAM,EAAEC,GAAGC,IAAI,EAAEC,GAAGC,OAAO,EAAEC,GAAGC,IAAI,EAAEC,GAAG,EAAEC,GAAG,EAAE,GAAGV;IACnD,MAAMW,SAASC,QAAQH;IACvB,MAAMJ,IAAI,iBAAiBQ,IAAI,CAACP,WAAWA,UAAUJ;IACrD,MAAMY,QAAQR,WAAW;IACzB,MAAMS,IAAoB;QACxBC,IAAI,CAAC,EAAEZ,KAAK,CAAC,EAAEU,MAAM,CAAC;QACtBV;QACAU;QACAH;QACAD;QACAD;QACAQ,WAAWL,QAAQN;IACrB;IACA,IAAID,GAAG;QACLU,EAAET,OAAO,GAAGD;IACd;IACA,IAAIG,MAAM;QACRO,EAAEP,IAAI,GAAGA;IACX;IACA,IAAI,CAACO,EAAEJ,MAAM,EAAE;QACb,OAAOI,EAAEN,GAAG;IACd;IACA,OAAOM;AACT"}
@@ -1,16 +0,0 @@
1
- import { parseObjectPath } from './parseObjectPath.js';
2
- /**
3
- * get by path
4
- *
5
- * {@link https://github.com/developit/dlv dlv}
6
- */ export function get(obj, key, def) {
7
- const undef = undefined;
8
- const path = parseObjectPath(key);
9
- let out = obj;
10
- for (const i of path){
11
- out = out ? out[i] : undef;
12
- }
13
- return out === undef ? def : out;
14
- }
15
-
16
- //# sourceMappingURL=get.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/objects/get.ts"],"sourcesContent":["import type { ObjectKey } from './parseObjectPath';\nimport { parseObjectPath } from './parseObjectPath';\n\n/**\n * get by path\n *\n * {@link https://github.com/developit/dlv dlv}\n */\nexport function get<O extends object, P extends ObjectKey, OrElse extends unknown>(\n obj: O,\n key: P | P[],\n def?: OrElse,\n): ResolveObjectPathType<O, P, OrElse> {\n const undef = undefined;\n const path = parseObjectPath(key);\n let out: any = obj;\n for (const i of path) {\n out = out ? out[i] : undef;\n }\n return out === undef ? def : out;\n}\n\n/**\n * It tries to resolve the path of the given object, otherwise it will return OrElse\n *\n * {@link https://github.com/Pouja/typescript-deep-path-safe typescript-deep-path-safe}\n */\nexport type ResolveObjectPathType<\n ObjectType,\n Path extends string | symbol | number,\n OrElse,\n> = Path extends keyof ObjectType\n ? ObjectType[Path]\n : Path extends `${infer LeftSide}.${infer RightSide}`\n ? LeftSide extends keyof ObjectType\n ? ResolveObjectPathType<ObjectType[LeftSide], RightSide, OrElse>\n : Path extends `${infer LeftSide}[${number}].${infer RightSide}`\n ? LeftSide extends keyof ObjectType\n ? ObjectType[LeftSide] extends Array<infer U>\n ? ResolveObjectPathType<U, RightSide, OrElse>\n : OrElse\n : OrElse\n : OrElse\n : Path extends `${infer LeftSide}[${number}]`\n ? LeftSide extends keyof ObjectType\n ? ObjectType[LeftSide] extends Array<infer U>\n ? U\n : OrElse\n : OrElse\n : OrElse;\n"],"names":["parseObjectPath","get","obj","key","def","undef","undefined","path","out","i"],"mappings":"AACA,SAASA,eAAe,QAAQ,oBAAoB;AAEpD;;;;CAIC,GACD,OAAO,SAASC,IACdC,GAAM,EACNC,GAAY,EACZC,GAAY;IAEZ,MAAMC,QAAQC;IACd,MAAMC,OAAOP,gBAAgBG;IAC7B,IAAIK,MAAWN;IACf,KAAK,MAAMO,KAAKF,KAAM;QACpBC,MAAMA,MAAMA,GAAG,CAACC,EAAE,GAAGJ;IACvB;IACA,OAAOG,QAAQH,QAAQD,MAAMI;AAC/B"}
@@ -1,33 +0,0 @@
1
- import { expectTypeOf, test } from 'vitest';
2
- import { get } from './get.js';
3
- test('get typing', ()=>{
4
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
5
- const obj = {};
6
- expectTypeOf(get(obj, 'nested.a', null)).toMatchTypeOf();
7
- expectTypeOf(get(obj, 'normal', null)).toMatchTypeOf();
8
- expectTypeOf(get(obj, 'nested.a')).toMatchTypeOf();
9
- expectTypeOf(get(obj, 'nested.b.c')).toMatchTypeOf();
10
- expectTypeOf(get(obj, 'arr')).toMatchTypeOf();
11
- expectTypeOf(get(obj, 'arr[13]')).toMatchTypeOf();
12
- // @ts-ignore
13
- expectTypeOf(get(obj, 'arr.13')).toMatchTypeOf();
14
- expectTypeOf(get(obj, 'nestedArr[3].other')).toMatchTypeOf();
15
- // @ts-ignore
16
- expectTypeOf(get(obj, 'deep.deep')).toMatchTypeOf();
17
- expectTypeOf(get(obj, 'deep.arr[333]')).toMatchTypeOf();
18
- expectTypeOf(get(obj, 'deep.arr[333].length')).toMatchTypeOf();
19
- // @ts-ignore
20
- expectTypeOf(get(obj, 'nested["b"]["c"]')).toMatchTypeOf();
21
- // @ts-ignore
22
- expectTypeOf(get(obj, '')).toMatchTypeOf();
23
- expectTypeOf(get(obj, '', 3)).toMatchTypeOf();
24
- // @ts-ignore
25
- expectTypeOf(get(obj, 'nested.asdfasdf')).toMatchTypeOf();
26
- expectTypeOf(get(obj, 'deeplvl1[1].deeplvl2.deeplvl3[88].deeplvl4.value')).toMatchTypeOf();
27
- // @ts-ignore
28
- expectTypeOf(get(obj, 'deeplvl1[1].deeplvl2.deeplvl1[88].deeplvl4.value')).toMatchTypeOf();
29
- expectTypeOf(get(obj, 'deeplvl1[1].deeplvl2.deeplvl1[88].deeplvl4.value', obj)).toMatchTypeOf();
30
- expectTypeOf(get(obj, 'nested["dd"]', '')).toMatchTypeOf();
31
- });
32
-
33
- //# sourceMappingURL=get.test-d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/objects/get.test-d.ts"],"sourcesContent":["import { expectTypeOf, test } from 'vitest';\nimport { get } from './get';\n\ninterface TestClass {\n normal: string;\n nested: {\n a: number;\n b: {\n c: boolean;\n };\n };\n arr: number[];\n nestedArr: {\n sum: number;\n other: null;\n }[];\n deep: {\n arr: string[];\n };\n deeplvl1: {\n deeplvl2: {\n deeplvl3: {\n deeplvl4: {\n value: RegExp;\n };\n }[];\n };\n }[];\n}\n\ntest('get typing', () => {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const obj = {} as TestClass;\n expectTypeOf(get(obj, 'nested.a', null)).toMatchTypeOf<number>();\n expectTypeOf(get(obj, 'normal', null)).toMatchTypeOf<string>();\n expectTypeOf(get(obj, 'nested.a')).toMatchTypeOf<number>();\n expectTypeOf(get(obj, 'nested.b.c')).toMatchTypeOf<boolean>();\n expectTypeOf(get(obj, 'arr')).toMatchTypeOf<number[]>();\n expectTypeOf(get(obj, 'arr[13]')).toMatchTypeOf<number>();\n // @ts-ignore\n expectTypeOf(get(obj, 'arr.13')).toMatchTypeOf<number>();\n expectTypeOf(get(obj, 'nestedArr[3].other')).toMatchTypeOf<null>();\n // @ts-ignore\n expectTypeOf(get(obj, 'deep.deep')).toMatchTypeOf<string[]>();\n expectTypeOf(get(obj, 'deep.arr[333]')).toMatchTypeOf<string>();\n expectTypeOf(get(obj, 'deep.arr[333].length')).toMatchTypeOf<number>();\n // @ts-ignore\n expectTypeOf(get(obj, 'nested[\"b\"][\"c\"]')).toMatchTypeOf<boolean>();\n // @ts-ignore\n expectTypeOf(get(obj, '')).toMatchTypeOf<never>();\n expectTypeOf(get(obj, '', 3)).toMatchTypeOf<number>();\n // @ts-ignore\n expectTypeOf(get(obj, 'nested.asdfasdf')).toMatchTypeOf<never>();\n expectTypeOf(get(obj, 'deeplvl1[1].deeplvl2.deeplvl3[88].deeplvl4.value')).toMatchTypeOf<RegExp>();\n // @ts-ignore\n expectTypeOf(get(obj, 'deeplvl1[1].deeplvl2.deeplvl1[88].deeplvl4.value')).toMatchTypeOf<never>();\n expectTypeOf(get(obj, 'deeplvl1[1].deeplvl2.deeplvl1[88].deeplvl4.value', obj)).toMatchTypeOf<TestClass>();\n expectTypeOf(get(obj, 'nested[\"dd\"]', '')).toMatchTypeOf<string>();\n});\n"],"names":["expectTypeOf","test","get","obj","toMatchTypeOf"],"mappings":"AAAA,SAASA,YAAY,EAAEC,IAAI,QAAQ,SAAS;AAC5C,SAASC,GAAG,QAAQ,QAAQ;AA6B5BD,KAAK,cAAc;IACjB,yEAAyE;IACzE,MAAME,MAAM,CAAC;IACbH,aAAaE,IAAIC,KAAK,YAAY,OAAOC,aAAa;IACtDJ,aAAaE,IAAIC,KAAK,UAAU,OAAOC,aAAa;IACpDJ,aAAaE,IAAIC,KAAK,aAAaC,aAAa;IAChDJ,aAAaE,IAAIC,KAAK,eAAeC,aAAa;IAClDJ,aAAaE,IAAIC,KAAK,QAAQC,aAAa;IAC3CJ,aAAaE,IAAIC,KAAK,YAAYC,aAAa;IAC/C,aAAa;IACbJ,aAAaE,IAAIC,KAAK,WAAWC,aAAa;IAC9CJ,aAAaE,IAAIC,KAAK,uBAAuBC,aAAa;IAC1D,aAAa;IACbJ,aAAaE,IAAIC,KAAK,cAAcC,aAAa;IACjDJ,aAAaE,IAAIC,KAAK,kBAAkBC,aAAa;IACrDJ,aAAaE,IAAIC,KAAK,yBAAyBC,aAAa;IAC5D,aAAa;IACbJ,aAAaE,IAAIC,KAAK,qBAAqBC,aAAa;IACxD,aAAa;IACbJ,aAAaE,IAAIC,KAAK,KAAKC,aAAa;IACxCJ,aAAaE,IAAIC,KAAK,IAAI,IAAIC,aAAa;IAC3C,aAAa;IACbJ,aAAaE,IAAIC,KAAK,oBAAoBC,aAAa;IACvDJ,aAAaE,IAAIC,KAAK,qDAAqDC,aAAa;IACxF,aAAa;IACbJ,aAAaE,IAAIC,KAAK,qDAAqDC,aAAa;IACxFJ,aAAaE,IAAIC,KAAK,oDAAoDA,MAAMC,aAAa;IAC7FJ,aAAaE,IAAIC,KAAK,gBAAgB,KAAKC,aAAa;AAC1D"}
@@ -1,3 +0,0 @@
1
- export { merge } from './merge.js';
2
-
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/objects/merge/index.ts"],"sourcesContent":["export { merge, type MergeOptions } from './merge';\n"],"names":["merge"],"mappings":"AAAA,SAASA,KAAK,QAA2B,UAAU"}
@@ -1,19 +0,0 @@
1
- // https://github.com/TehShrike/is-mergeable-object/blob/master/index.js
2
- export function isMergeableObject(value) {
3
- return isNonNullObject(value) && !isSpecial(value);
4
- }
5
- function isNonNullObject(value) {
6
- return !!value && typeof value === 'object';
7
- }
8
- function isSpecial(value) {
9
- var stringValue = Object.prototype.toString.call(value);
10
- return stringValue === '[object RegExp]' || stringValue === '[object Date]' || isReactElement(value);
11
- }
12
- // see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25
13
- var canUseSymbol = typeof Symbol === 'function' && Symbol.for;
14
- var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;
15
- function isReactElement(value) {
16
- return value.$$typeof === REACT_ELEMENT_TYPE;
17
- }
18
-
19
- //# sourceMappingURL=isMergeableObject.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/objects/merge/isMergeableObject.ts"],"sourcesContent":["// https://github.com/TehShrike/is-mergeable-object/blob/master/index.js\n\nexport function isMergeableObject(value: any) {\n return isNonNullObject(value) && !isSpecial(value);\n}\n\nfunction isNonNullObject(value: any) {\n return !!value && typeof value === 'object';\n}\n\nfunction isSpecial(value: any) {\n var stringValue = Object.prototype.toString.call(value);\n\n return stringValue === '[object RegExp]' || stringValue === '[object Date]' || isReactElement(value);\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value: any) {\n return value.$$typeof === REACT_ELEMENT_TYPE;\n}\n"],"names":["isMergeableObject","value","isNonNullObject","isSpecial","stringValue","Object","prototype","toString","call","isReactElement","canUseSymbol","Symbol","for","REACT_ELEMENT_TYPE","$$typeof"],"mappings":"AAAA,wEAAwE;AAExE,OAAO,SAASA,kBAAkBC,KAAU;IAC1C,OAAOC,gBAAgBD,UAAU,CAACE,UAAUF;AAC9C;AAEA,SAASC,gBAAgBD,KAAU;IACjC,OAAO,CAAC,CAACA,SAAS,OAAOA,UAAU;AACrC;AAEA,SAASE,UAAUF,KAAU;IAC3B,IAAIG,cAAcC,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACP;IAEjD,OAAOG,gBAAgB,qBAAqBA,gBAAgB,mBAAmBK,eAAeR;AAChG;AAEA,6IAA6I;AAC7I,IAAIS,eAAe,OAAOC,WAAW,cAAcA,OAAOC,GAAG;AAC7D,IAAIC,qBAAqBH,eAAeC,OAAOC,GAAG,CAAC,mBAAmB;AAEtE,SAASH,eAAeR,KAAU;IAChC,OAAOA,MAAMa,QAAQ,KAAKD;AAC5B"}
@@ -1,89 +0,0 @@
1
- import { isMergeableObject as defaultIsMergeableObject } from './isMergeableObject.js';
2
- function emptyTarget(val) {
3
- return Array.isArray(val) ? [] : {};
4
- }
5
- function cloneUnlessOtherwiseSpecified(value, options) {
6
- return options.clone !== false && options.isMergeableObject(value) ? merge(emptyTarget(value), value, options) : value;
7
- }
8
- function defaultArrayMerge(target, source, options) {
9
- return target.concat(source).map(function(element) {
10
- return cloneUnlessOtherwiseSpecified(element, options);
11
- });
12
- }
13
- function getMergeFunction(key, options) {
14
- if (!options.customMerge) {
15
- return merge;
16
- }
17
- var customMerge = options.customMerge(key);
18
- return typeof customMerge === 'function' ? customMerge : merge;
19
- }
20
- function getEnumerableOwnPropertySymbols(target) {
21
- return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function(symbol) {
22
- return Object.propertyIsEnumerable.call(target, symbol);
23
- }) : [];
24
- }
25
- function getKeys(target) {
26
- return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));
27
- }
28
- function propertyIsOnObject(object, property) {
29
- try {
30
- return property in object;
31
- } catch (_) {
32
- return false;
33
- }
34
- }
35
- // Protects from prototype poisoning and unexpected merging up the prototype chain.
36
- function propertyIsUnsafe(target, key) {
37
- return propertyIsOnObject(target, key) && // Properties are safe to merge if they don't exist in the target yet,
38
- !(Object.hasOwnProperty.call(target, key) && // unsafe if they exist up the prototype chain,
39
- Object.propertyIsEnumerable.call(target, key)); // and also unsafe if they're nonenumerable.
40
- }
41
- function mergeObject(target, source, options) {
42
- const destination = {};
43
- if (options.isMergeableObject(target)) {
44
- getKeys(target).forEach((key)=>{
45
- destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);
46
- });
47
- }
48
- getKeys(source).forEach((key)=>{
49
- if (propertyIsUnsafe(target, key)) {
50
- return;
51
- }
52
- if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {
53
- destination[key] = getMergeFunction(key, options)(target[key], source[key], options);
54
- } else {
55
- destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);
56
- }
57
- });
58
- return destination;
59
- }
60
- export function merge(target, source, opts) {
61
- const options = {
62
- arrayMerge: defaultArrayMerge,
63
- isMergeableObject: defaultIsMergeableObject,
64
- ...opts,
65
- // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()
66
- // implementations can use it. The caller may not replace it.
67
- cloneUnlessOtherwiseSpecified
68
- };
69
- let sourceIsArray = Array.isArray(source);
70
- let targetIsArray = Array.isArray(target);
71
- let sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;
72
- if (!sourceAndTargetTypesMatch) {
73
- return cloneUnlessOtherwiseSpecified(source, options);
74
- } else if (sourceIsArray) {
75
- return options.arrayMerge(target, source, options);
76
- } else {
77
- return mergeObject(target, source, options);
78
- }
79
- }
80
- merge.all = function deepmergeAll(array, options) {
81
- if (!Array.isArray(array)) {
82
- throw new Error('first argument should be an array');
83
- }
84
- return array.reduce(function(prev, next) {
85
- return merge(prev, next, options);
86
- }, {});
87
- };
88
-
89
- //# sourceMappingURL=merge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/objects/merge/merge.ts"],"sourcesContent":["// https://github.com/TehShrike/deepmerge/blob/master/index.js\nimport { isMergeableObject as defaultIsMergeableObject } from './isMergeableObject';\n\nfunction emptyTarget(val: any) {\n return Array.isArray(val) ? [] : {};\n}\n\nfunction cloneUnlessOtherwiseSpecified(value: any, options: Options) {\n return options.clone !== false && options.isMergeableObject(value)\n ? merge(emptyTarget(value), value, options)\n : value;\n}\n\nfunction defaultArrayMerge(target: any, source: any, options: Options) {\n return target.concat(source).map(function (element: any) {\n return cloneUnlessOtherwiseSpecified(element, options);\n });\n}\n\ntype Merger = (x: any, y: any, options: Options) => any;\n\nfunction getMergeFunction(key: any, options: Options): Merger {\n if (!options.customMerge) {\n return merge;\n }\n var customMerge = options.customMerge(key);\n return typeof customMerge === 'function' ? customMerge : merge;\n}\n\nfunction getEnumerableOwnPropertySymbols(target: any): any {\n return Object.getOwnPropertySymbols\n ? Object.getOwnPropertySymbols(target).filter(function (symbol) {\n return Object.propertyIsEnumerable.call(target, symbol);\n })\n : [];\n}\n\nfunction getKeys(target: any) {\n return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));\n}\n\nfunction propertyIsOnObject(object: any, property: any) {\n try {\n return property in object;\n } catch (_) {\n return false;\n }\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target: any, key: string) {\n return (\n propertyIsOnObject(target, key) && // Properties are safe to merge if they don't exist in the target yet,\n !(\n Object.hasOwnProperty.call(target, key) && // unsafe if they exist up the prototype chain,\n Object.propertyIsEnumerable.call(target, key)\n )\n ); // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target: any, source: any, options: Options) {\n const destination: Record<string, any> = {};\n if (options.isMergeableObject(target)) {\n getKeys(target).forEach((key) => {\n destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n });\n }\n getKeys(source).forEach((key) => {\n if (propertyIsUnsafe(target, key)) {\n return;\n }\n\n if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n destination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n } else {\n destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n }\n });\n return destination;\n}\n\nexport function merge<T1, T2>(x: Partial<T1>, y: Partial<T2>, options?: MergeOptions): T1 & T2;\nexport function merge<T>(x: Partial<T>, y: Partial<T>, options?: MergeOptions): T;\n\nexport function merge(target: any, source: any, opts?: any): any {\n const options = {\n arrayMerge: defaultArrayMerge,\n isMergeableObject: defaultIsMergeableObject,\n ...opts,\n // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n // implementations can use it. The caller may not replace it.\n cloneUnlessOtherwiseSpecified,\n } as Options & ArrayMergeOptions;\n\n let sourceIsArray = Array.isArray(source);\n let targetIsArray = Array.isArray(target);\n let sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified(source, options);\n } else if (sourceIsArray) {\n return options.arrayMerge(target, source, options);\n } else {\n return mergeObject(target, source, options);\n }\n}\n\nmerge.all = function deepmergeAll(array: any[], options?: MergeOptions) {\n if (!Array.isArray(array)) {\n throw new Error('first argument should be an array');\n }\n\n return array.reduce(function (prev, next) {\n return merge(prev, next, options);\n }, {});\n};\n\nexport interface MergeOptions {\n arrayMerge?(target: any[], source: any[], options?: ArrayMergeOptions): any[];\n\n clone?: boolean;\n customMerge?: (key: string, options?: MergeOptions) => ((x: any, y: any) => any) | undefined;\n\n isMergeableObject?(value: object): boolean;\n}\n\ninterface Options {\n arrayMerge(target: any[], source: any[], options?: ArrayMergeOptions): any[];\n\n clone: boolean;\n customMerge: (key: string, options?: MergeOptions) => ((x: any, y: any) => any) | undefined;\n\n isMergeableObject(value: object): boolean;\n}\n\nexport interface ArrayMergeOptions {\n isMergeableObject(value: object): boolean;\n\n cloneUnlessOtherwiseSpecified(value: object, options?: MergeOptions): object;\n}\n"],"names":["isMergeableObject","defaultIsMergeableObject","emptyTarget","val","Array","isArray","cloneUnlessOtherwiseSpecified","value","options","clone","merge","defaultArrayMerge","target","source","concat","map","element","getMergeFunction","key","customMerge","getEnumerableOwnPropertySymbols","Object","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","call","getKeys","keys","propertyIsOnObject","object","property","_","propertyIsUnsafe","hasOwnProperty","mergeObject","destination","forEach","opts","arrayMerge","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","all","deepmergeAll","array","Error","reduce","prev","next"],"mappings":"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"}