@wener/utils 1.1.48 → 1.1.50

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 (267) hide show
  1. package/lib/arrays/MaybeArray.js.map +1 -1
  2. package/lib/arrays/arrayFromAsync.js.map +1 -1
  3. package/lib/asyncs/AsyncInterval.js.map +1 -1
  4. package/lib/asyncs/MaybePromise.js.map +1 -1
  5. package/lib/asyncs/Promises.js +9 -1
  6. package/lib/asyncs/Promises.js.map +1 -1
  7. package/lib/asyncs/createAsyncIterator.js.map +1 -1
  8. package/lib/asyncs/createLazyPromise.js +52 -51
  9. package/lib/asyncs/createLazyPromise.js.map +1 -1
  10. package/lib/asyncs/firstOfAsyncIterator.js.map +1 -1
  11. package/lib/asyncs/generatorOfStream.js.map +1 -1
  12. package/lib/asyncs/isIterator.js.map +1 -1
  13. package/lib/asyncs/isPromise.js.map +1 -1
  14. package/lib/asyncs/isThenable.js.map +1 -1
  15. package/lib/asyncs/nextOfAsyncIterator.js.map +1 -1
  16. package/lib/asyncs/promiseOfCallback.js.map +1 -1
  17. package/lib/asyncs/timeout.js +4 -4
  18. package/lib/asyncs/timeout.js.map +1 -1
  19. package/lib/browsers/copy.js.map +1 -1
  20. package/lib/browsers/download.js.map +1 -1
  21. package/lib/browsers/getFileFromDataTransfer.js.map +1 -1
  22. package/lib/browsers/loaders.js.map +1 -1
  23. package/lib/cn/division/DivisionCode.js.map +1 -1
  24. package/lib/cn/division/binarySearch.js.map +1 -1
  25. package/lib/cn/formatChineseAmount.js.map +1 -1
  26. package/lib/cn/id/Mod11.js.map +1 -1
  27. package/lib/cn/id/ResidentIdNumber.js.map +1 -1
  28. package/lib/cn/id/types.js.map +1 -1
  29. package/lib/cn/index.js.map +1 -1
  30. package/lib/cn/parseChineseNumber.js.map +1 -1
  31. package/lib/cn/pinyin/cartesianProduct.js.map +1 -1
  32. package/lib/cn/pinyin/loader.js.map +1 -1
  33. package/lib/cn/pinyin/preload.js.map +1 -1
  34. package/lib/cn/pinyin/toPinyinPure.js.map +1 -1
  35. package/lib/cn/pinyin/transform.js.map +1 -1
  36. package/lib/cn/types.js +3 -0
  37. package/lib/cn/types.js.map +1 -0
  38. package/lib/cn/uscc/Mod31.js.map +1 -1
  39. package/lib/cn/uscc/USCC.js.map +1 -1
  40. package/lib/cn/uscc/isUSCC.js.map +1 -1
  41. package/lib/crypto/base.js.map +1 -1
  42. package/lib/crypto/getNodeCrypto.js +1 -0
  43. package/lib/crypto/getNodeCrypto.js.map +1 -1
  44. package/lib/crypto/getRandomValues.js.map +1 -1
  45. package/lib/crypto/hashing.js.map +1 -1
  46. package/lib/crypto/md5.bench.js.map +1 -1
  47. package/lib/crypto/md5.d.js.map +1 -1
  48. package/lib/crypto/md5.js.map +1 -1
  49. package/lib/crypto/pem/pem.js.map +1 -1
  50. package/lib/crypto/randomUUID.js.map +1 -1
  51. package/lib/crypto/randomUUIDv7.js.map +1 -1
  52. package/lib/crypto/ulid.js.map +1 -1
  53. package/lib/emitter/types.js.map +1 -1
  54. package/lib/errors/Errors.js +38 -17
  55. package/lib/errors/Errors.js.map +1 -1
  56. package/lib/fetch/HttpStatus.js.map +1 -1
  57. package/lib/fetch/createFetchWith.js.map +1 -1
  58. package/lib/fetch/createFetchWithLogging.js.map +1 -1
  59. package/lib/fetch/createFetchWithRetry.js.map +1 -1
  60. package/lib/fetch/dumpRequest.js.map +1 -1
  61. package/lib/fetch/dumpResponse.js.map +1 -1
  62. package/lib/fetch/http.types.js.map +1 -1
  63. package/lib/fetch/index.js.map +1 -1
  64. package/lib/fetch/types.js.map +1 -1
  65. package/lib/i18n/createTranslate.js.map +1 -1
  66. package/lib/index.js +2 -0
  67. package/lib/index.js.map +1 -1
  68. package/lib/io/AbstractEncoding.js.map +1 -1
  69. package/lib/io/ArrayBuffer.test-d.js.map +1 -1
  70. package/lib/io/ArrayBuffers.js +217 -173
  71. package/lib/io/ArrayBuffers.js.map +1 -1
  72. package/lib/io/Buffer.js.map +1 -1
  73. package/lib/io/ByteBuffer.js +233 -34
  74. package/lib/io/ByteBuffer.js.map +1 -1
  75. package/lib/io/base64.js +2 -2
  76. package/lib/io/base64.js.map +1 -1
  77. package/lib/io/dump.js.map +1 -1
  78. package/lib/io/isBuffer.js.map +1 -1
  79. package/lib/io/isTransferable.js.map +1 -1
  80. package/lib/io/parseDataUri.js.map +1 -1
  81. package/lib/langs/MaybeFunction.js.map +1 -1
  82. package/lib/langs/classOf.js.map +1 -1
  83. package/lib/langs/deepEqual.js.map +1 -1
  84. package/lib/langs/deepFreeze.js.map +1 -1
  85. package/lib/langs/getGlobalStates.js +17 -0
  86. package/lib/langs/getGlobalStates.js.map +1 -0
  87. package/lib/langs/getObjectId.js +18 -0
  88. package/lib/langs/getObjectId.js.map +1 -0
  89. package/lib/langs/isClass.js.map +1 -1
  90. package/lib/langs/isDefined.js.map +1 -1
  91. package/lib/langs/isEmptyObject.js.map +1 -1
  92. package/lib/langs/isFunction.js.map +1 -1
  93. package/lib/langs/isNullish.js +5 -0
  94. package/lib/langs/isNullish.js.map +1 -0
  95. package/lib/langs/isPlainObject.js.map +1 -1
  96. package/lib/langs/memoize.js.map +1 -1
  97. package/lib/langs/mixin.js.map +1 -1
  98. package/lib/langs/parseBoolean.js.map +1 -1
  99. package/lib/langs/shallowClone.js.map +1 -1
  100. package/lib/langs/shallowEqual.js.map +1 -1
  101. package/lib/libs/ms.js.map +1 -1
  102. package/lib/logging/Logger.js.map +1 -1
  103. package/lib/logging/createChildLogger.js.map +1 -1
  104. package/lib/logging/createLogger.js.map +1 -1
  105. package/lib/logging/createNoopLogger.js.map +1 -1
  106. package/lib/logging/slog.js.map +1 -1
  107. package/lib/maths/clamp.js +7 -6
  108. package/lib/maths/clamp.js.map +1 -1
  109. package/lib/maths/random.js.map +1 -1
  110. package/lib/mitt/index.js.map +1 -1
  111. package/lib/modules/isModule.js.map +1 -1
  112. package/lib/modules/parseModuleId.js.map +1 -1
  113. package/lib/objects/computeIfAbsent.js.map +1 -1
  114. package/lib/objects/get.js.map +1 -1
  115. package/lib/objects/get.test-d.js.map +1 -1
  116. package/lib/objects/merge/index.js.map +1 -1
  117. package/lib/objects/merge/isMergeableObject.js.map +1 -1
  118. package/lib/objects/merge/merge.js.map +1 -1
  119. package/lib/objects/parseObjectPath.js.map +1 -1
  120. package/lib/objects/set.js.map +1 -1
  121. package/lib/runtime/AsyncCloser.js.map +1 -1
  122. package/lib/runtime/Closer.js.map +1 -1
  123. package/lib/runtime/getGlobalThis.js.map +1 -1
  124. package/lib/runtime/structuredClone.js.map +1 -1
  125. package/lib/schema/typebox/index.js.map +1 -1
  126. package/lib/schema/typebox/typebox.js.map +1 -1
  127. package/lib/scripts/getGenerateContext.js.map +1 -1
  128. package/lib/server/crypto/md5.js.map +1 -1
  129. package/lib/server/fetch/createFetchWithProxy.js.map +1 -1
  130. package/lib/server/fetch/createFetchWithProxyByNodeFetch.js.map +1 -1
  131. package/lib/server/fetch/createFetchWithProxyByUndici.js.map +1 -1
  132. package/lib/server/getPackageDir.js.map +1 -1
  133. package/lib/server/index.js.map +1 -1
  134. package/lib/server/jsdom.js.map +1 -1
  135. package/lib/server/node-fetch.js.map +1 -1
  136. package/lib/server/polyfill/polyfillBrowser.js.map +1 -1
  137. package/lib/server/polyfill/polyfillCrypto.js.map +1 -1
  138. package/lib/server/polyfill/polyfillFetch.js.map +1 -1
  139. package/lib/server/polyfill/polyfillJsDom.js.map +1 -1
  140. package/lib/server/polyfill/polyfillWebSocket.js.map +1 -1
  141. package/lib/server/ws.js.map +1 -1
  142. package/lib/strings/camelCase.js.map +1 -1
  143. package/lib/strings/formatBytes.js.map +1 -1
  144. package/lib/strings/renderTemplate.js.map +1 -1
  145. package/lib/typedoc.js.map +1 -1
  146. package/lib/types.d.js.map +1 -1
  147. package/lib/validations/asserts.js.map +1 -1
  148. package/lib/validations/isUUID.js.map +1 -1
  149. package/lib/validations/parseTimestamp.js.map +1 -1
  150. package/package.json +4 -4
  151. package/src/asyncs/Promises.ts +12 -2
  152. package/src/asyncs/createLazyPromise.test.ts +52 -13
  153. package/src/asyncs/createLazyPromise.ts +66 -61
  154. package/src/asyncs/firstOfAsyncIterator.ts +1 -1
  155. package/src/asyncs/nextOfAsyncIterator.ts +1 -1
  156. package/src/asyncs/timeout.ts +4 -4
  157. package/src/cn/types.ts +11 -0
  158. package/src/crypto/getNodeCrypto.ts +1 -0
  159. package/src/errors/Errors.ts +37 -16
  160. package/src/fetch/createFetchWith.ts +1 -1
  161. package/src/fetch/createFetchWithRetry.ts +1 -1
  162. package/src/index.ts +2 -0
  163. package/src/io/ArrayBuffers.base64.test.ts +7 -0
  164. package/src/io/ArrayBuffers.ts +276 -271
  165. package/src/io/ByteBuffer.test.ts +26 -14
  166. package/src/io/ByteBuffer.ts +270 -38
  167. package/src/io/base64.ts +2 -2
  168. package/src/langs/getGlobalStates.ts +21 -0
  169. package/src/langs/getObjectId.ts +20 -0
  170. package/src/langs/isNullish.ts +3 -0
  171. package/src/langs/mixin.test.ts +4 -0
  172. package/src/logging/slog.ts +1 -1
  173. package/src/maths/clamp.test.ts +5 -1
  174. package/src/maths/clamp.ts +7 -7
  175. package/src/objects/merge/merge.test.ts +1 -1
  176. package/src/schema/typebox/typebox.ts +1 -1
  177. package/src/server/fetch/createFetchWithProxyByUndici.ts +2 -2
  178. package/tsconfig.json +4 -1
  179. package/lib/schema/typebox/gen/codegen/common/encoder.js +0 -94
  180. package/lib/schema/typebox/gen/codegen/common/encoder.js.map +0 -1
  181. package/lib/schema/typebox/gen/codegen/common/formatter.js +0 -33
  182. package/lib/schema/typebox/gen/codegen/common/formatter.js.map +0 -1
  183. package/lib/schema/typebox/gen/codegen/common/index.js +0 -29
  184. package/lib/schema/typebox/gen/codegen/common/index.js.map +0 -1
  185. package/lib/schema/typebox/gen/codegen/common/jsdoc.js +0 -117
  186. package/lib/schema/typebox/gen/codegen/common/jsdoc.js.map +0 -1
  187. package/lib/schema/typebox/gen/codegen/expression/compiler.js +0 -364
  188. package/lib/schema/typebox/gen/codegen/expression/compiler.js.map +0 -1
  189. package/lib/schema/typebox/gen/codegen/expression/errors.js +0 -259
  190. package/lib/schema/typebox/gen/codegen/expression/errors.js.map +0 -1
  191. package/lib/schema/typebox/gen/codegen/expression/evaluator.js +0 -254
  192. package/lib/schema/typebox/gen/codegen/expression/evaluator.js.map +0 -1
  193. package/lib/schema/typebox/gen/codegen/expression/expression.js +0 -381
  194. package/lib/schema/typebox/gen/codegen/expression/expression.js.map +0 -1
  195. package/lib/schema/typebox/gen/codegen/expression/index.js +0 -32
  196. package/lib/schema/typebox/gen/codegen/expression/index.js.map +0 -1
  197. package/lib/schema/typebox/gen/codegen/index.js +0 -29
  198. package/lib/schema/typebox/gen/codegen/index.js.map +0 -1
  199. package/lib/schema/typebox/gen/codegen/model/index.js +0 -40
  200. package/lib/schema/typebox/gen/codegen/model/index.js.map +0 -1
  201. package/lib/schema/typebox/gen/codegen/model/model-to-arktype.js +0 -260
  202. package/lib/schema/typebox/gen/codegen/model/model-to-arktype.js.map +0 -1
  203. package/lib/schema/typebox/gen/codegen/model/model-to-expression.js +0 -383
  204. package/lib/schema/typebox/gen/codegen/model/model-to-expression.js.map +0 -1
  205. package/lib/schema/typebox/gen/codegen/model/model-to-grpc.js +0 -238
  206. package/lib/schema/typebox/gen/codegen/model/model-to-grpc.js.map +0 -1
  207. package/lib/schema/typebox/gen/codegen/model/model-to-io-ts.js +0 -274
  208. package/lib/schema/typebox/gen/codegen/model/model-to-io-ts.js.map +0 -1
  209. package/lib/schema/typebox/gen/codegen/model/model-to-javascript.js +0 -47
  210. package/lib/schema/typebox/gen/codegen/model/model-to-javascript.js.map +0 -1
  211. package/lib/schema/typebox/gen/codegen/model/model-to-json-schema.js +0 -192
  212. package/lib/schema/typebox/gen/codegen/model/model-to-json-schema.js.map +0 -1
  213. package/lib/schema/typebox/gen/codegen/model/model-to-typebox.js +0 -33
  214. package/lib/schema/typebox/gen/codegen/model/model-to-typebox.js.map +0 -1
  215. package/lib/schema/typebox/gen/codegen/model/model-to-typescript.js +0 -188
  216. package/lib/schema/typebox/gen/codegen/model/model-to-typescript.js.map +0 -1
  217. package/lib/schema/typebox/gen/codegen/model/model-to-valibot.js +0 -239
  218. package/lib/schema/typebox/gen/codegen/model/model-to-valibot.js.map +0 -1
  219. package/lib/schema/typebox/gen/codegen/model/model-to-value.js +0 -43
  220. package/lib/schema/typebox/gen/codegen/model/model-to-value.js.map +0 -1
  221. package/lib/schema/typebox/gen/codegen/model/model-to-yrel.js +0 -227
  222. package/lib/schema/typebox/gen/codegen/model/model-to-yrel.js.map +0 -1
  223. package/lib/schema/typebox/gen/codegen/model/model-to-yup.js +0 -225
  224. package/lib/schema/typebox/gen/codegen/model/model-to-yup.js.map +0 -1
  225. package/lib/schema/typebox/gen/codegen/model/model-to-zod.js +0 -248
  226. package/lib/schema/typebox/gen/codegen/model/model-to-zod.js.map +0 -1
  227. package/lib/schema/typebox/gen/codegen/model/model.js +0 -27
  228. package/lib/schema/typebox/gen/codegen/model/model.js.map +0 -1
  229. package/lib/schema/typebox/gen/codegen/typescript/index.js +0 -28
  230. package/lib/schema/typebox/gen/codegen/typescript/index.js.map +0 -1
  231. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-model.js +0 -72
  232. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-model.js.map +0 -1
  233. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-typebox.js +0 -620
  234. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-typebox.js.map +0 -1
  235. package/lib/schema/typebox/gen/index.js +0 -3
  236. package/lib/schema/typebox/gen/index.js.map +0 -1
  237. package/src/schema/typebox/gen/codegen/common/encoder.ts +0 -99
  238. package/src/schema/typebox/gen/codegen/common/formatter.ts +0 -31
  239. package/src/schema/typebox/gen/codegen/common/index.ts +0 -29
  240. package/src/schema/typebox/gen/codegen/common/jsdoc.ts +0 -93
  241. package/src/schema/typebox/gen/codegen/expression/compiler.ts +0 -377
  242. package/src/schema/typebox/gen/codegen/expression/errors.ts +0 -302
  243. package/src/schema/typebox/gen/codegen/expression/evaluator.ts +0 -268
  244. package/src/schema/typebox/gen/codegen/expression/expression.ts +0 -538
  245. package/src/schema/typebox/gen/codegen/expression/index.ts +0 -32
  246. package/src/schema/typebox/gen/codegen/index.ts +0 -29
  247. package/src/schema/typebox/gen/codegen/model/index.ts +0 -40
  248. package/src/schema/typebox/gen/codegen/model/model-to-arktype.ts +0 -266
  249. package/src/schema/typebox/gen/codegen/model/model-to-expression.ts +0 -378
  250. package/src/schema/typebox/gen/codegen/model/model-to-grpc.ts +0 -244
  251. package/src/schema/typebox/gen/codegen/model/model-to-io-ts.ts +0 -294
  252. package/src/schema/typebox/gen/codegen/model/model-to-javascript.ts +0 -42
  253. package/src/schema/typebox/gen/codegen/model/model-to-json-schema.ts +0 -166
  254. package/src/schema/typebox/gen/codegen/model/model-to-typebox.ts +0 -32
  255. package/src/schema/typebox/gen/codegen/model/model-to-typescript.ts +0 -189
  256. package/src/schema/typebox/gen/codegen/model/model-to-valibot.ts +0 -236
  257. package/src/schema/typebox/gen/codegen/model/model-to-value.ts +0 -42
  258. package/src/schema/typebox/gen/codegen/model/model-to-yrel.ts +0 -232
  259. package/src/schema/typebox/gen/codegen/model/model-to-yup.ts +0 -226
  260. package/src/schema/typebox/gen/codegen/model/model-to-zod.ts +0 -251
  261. package/src/schema/typebox/gen/codegen/model/model.ts +0 -33
  262. package/src/schema/typebox/gen/codegen/typescript/index.ts +0 -28
  263. package/src/schema/typebox/gen/codegen/typescript/typescript-to-model.ts +0 -61
  264. package/src/schema/typebox/gen/codegen/typescript/typescript-to-typebox.ts +0 -647
  265. package/src/schema/typebox/gen/gen.test.ts +0 -12
  266. package/src/schema/typebox/gen/index.ts +0 -1
  267. /package/src/schema/{typebox/gen/README.md → README.md} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/io/ByteBuffer.ts"],"sourcesContent":["import { ArrayBuffers } from './ArrayBuffers';\n\ntype AnyBuffer = BufferSource | ArrayBufferLike;\n\nfunction asBuffer(o: AnyBuffer) {\n if (o instanceof ArrayBuffer) {\n return o;\n }\n if (ArrayBuffer.isView(o)) {\n // 保留 offset&length\n if (o.byteLength !== o.buffer.byteLength) {\n // ArrayBuffer 没有 subarray\n // if ('subarray' in o.buffer) {\n // return (o.buffer as any).subarray(o.byteOffset, o.byteOffset + o.byteLength);\n // }\n return o.buffer.slice(o.byteOffset, o.byteOffset + o.byteLength);\n }\n return o.buffer;\n }\n return o;\n}\n\n// function asView(o: AnyBuffer) {\n// if (o instanceof DataView) {\n// return o;\n// }\n// if (ArrayBuffer.isView(o)) {\n// // 不 clone 也能保留 offset&length\n// return new DataView(o.buffer, o.byteOffset, o.byteLength);\n// }\n// return new DataView(o);\n// }\n\n/**\n * @see {@link https://www.egret.uk/docs/egretengine/engine/egret.ByteArray egret.ByteArray}\n * @see {@link https://github.com/protobufjs/bytebuffer.js protobufjs/bytebuffer.js}\n * @see {@link https://netty.io/4.1/api/io/netty/buffer/ByteBuf.html ByteBuf}\n */\nexport class ByteBuffer {\n position = 0;\n\n #buffer: ArrayBufferLike;\n #view: DataView;\n\n constructor(buffer: AnyBuffer = new ArrayBuffer(0, { maxByteLength: 1024 })) {\n this.#buffer = asBuffer(buffer);\n // NOTE prefer view over buffer, avoid the slice overhead ?\n this.#view = new DataView(this.#buffer);\n }\n\n get view() {\n return this.#view;\n }\n\n get buffer(): ArrayBufferLike {\n return this.#buffer;\n }\n\n set buffer(buffer: AnyBuffer) {\n this.#buffer = asBuffer(buffer);\n this.#view = new DataView(this.#buffer);\n }\n\n get length() {\n return this.view.byteLength;\n }\n\n set length(length: number) {\n this.resize(length);\n }\n\n private willWrite(length: number) {\n if (this.remaining() < length) {\n this.resize(this.position + length);\n }\n }\n\n resize(newLength: number) {\n this.buffer = ArrayBuffers.resize(this.buffer, newLength, Math.ceil(newLength * 1.2));\n }\n\n writeByte(value: number) {\n this.willWrite(1);\n this.view.setUint8(this.position++, value);\n }\n\n writeBytes(bytes: ArrayBufferLike, len: number = bytes.byteLength) {\n this.willWrite(len);\n if (len !== bytes.byteLength) bytes = bytes.slice(0, len);\n new Uint8Array(this.buffer).set(new Uint8Array(bytes), this.position);\n this.position += len;\n }\n\n writeInt8(value: number) {\n this.willWrite(1);\n this.view.setInt8(this.position, value);\n this.position += 1;\n }\n\n writeUint8(value: number) {\n this.willWrite(1);\n this.view.setUint8(this.position, value);\n this.position += 1;\n }\n\n writeInt16(value: number) {\n this.willWrite(2);\n this.view.setInt16(this.position, value);\n this.position += 2;\n }\n\n writeUint16(value: number) {\n this.willWrite(2);\n this.view.setUint16(this.position, value);\n this.position += 2;\n }\n\n writeInt32(value: number) {\n this.willWrite(4);\n this.view.setInt32(this.position, value);\n this.position += 4;\n }\n\n writeUint32(value: number) {\n this.willWrite(4);\n this.view.setUint32(this.position, value);\n this.position += 4;\n }\n\n writeInt64(value: bigint) {\n this.willWrite(8);\n this.view.setBigInt64(this.position, value);\n this.position += 8;\n }\n\n writeUint64(value: bigint) {\n this.willWrite(8);\n this.view.setBigUint64(this.position, value);\n this.position += 8;\n }\n\n writeFloat32(value: number) {\n this.willWrite(4);\n this.view.setFloat32(this.position, value);\n this.position += 4;\n }\n\n writeFloat64(value: number) {\n this.willWrite(8);\n this.view.setFloat64(this.position, value);\n this.position += 8;\n }\n\n writeBoolean(value: boolean) {\n this.writeByte(value ? 1 : 0);\n }\n\n writeString(value: string): void;\n writeString(value: string, len?: number): void;\n writeString(value: string, len?: number) {\n let encoder = new TextEncoder();\n let bytes = encoder.encode(value);\n this.writeBytes(bytes, len);\n }\n\n readByte() {\n return this.view.getUint8(this.position++);\n }\n\n readBytes(length: number) {\n let bytes = this.buffer.slice(this.position, this.position + length);\n this.position += length;\n return bytes;\n }\n\n readInt8() {\n let value = this.view.getInt8(this.position);\n this.position += 1;\n return value;\n }\n\n readUint8() {\n let value = this.view.getUint8(this.position);\n this.position += 1;\n return value;\n }\n\n readInt16() {\n let value = this.view.getInt16(this.position);\n this.position += 2;\n return value;\n }\n\n readUint16() {\n let value = this.view.getUint16(this.position);\n this.position += 2;\n return value;\n }\n\n readInt32() {\n let value = this.view.getInt32(this.position);\n this.position += 4;\n return value;\n }\n\n readUint32() {\n let value = this.view.getUint32(this.position);\n this.position += 4;\n return value;\n }\n\n readInt64() {\n let value = this.view.getBigInt64(this.position);\n this.position += 8;\n return safeNumber(value);\n }\n\n readUint64() {\n let value = this.view.getBigUint64(this.position);\n this.position += 8;\n return safeNumber(value);\n }\n\n readFloat32() {\n let value = this.view.getFloat32(this.position);\n this.position += 4;\n return value;\n }\n\n readFloat64() {\n let value = this.view.getFloat64(this.position);\n this.position += 8;\n return value;\n }\n\n readBoolean() {\n return this.readByte() === 1;\n }\n\n readString(length: number) {\n let bytes = this.readBytes(length);\n let decoder = new TextDecoder();\n let a = new Uint8Array(bytes);\n let idx = a.indexOf(0);\n if (idx !== -1) {\n bytes = bytes.slice(0, idx);\n }\n return decoder.decode(bytes);\n }\n\n readHexString(length: number) {\n let bytes = this.readBytes(length);\n return ArrayBuffers.toHex(bytes);\n }\n\n writeInt24(value: number) {\n this.writeUint8(value & 0xff);\n this.writeUint16(value >> 8);\n }\n\n readInt24() {\n return this.readUint8() | (this.readUint16() << 8);\n }\n\n writeZero(length: number) {\n this.writeBytes(new Uint8Array(length).buffer);\n }\n\n writeValue(typ: TypedValue['type'], val: TypedValue['value']): void;\n writeValue(tv: TypedValue): void;\n writeValue(a: any, b?: any) {\n const tv: TypedValue = typeof a === 'string' ? { type: a, value: b } : a;\n const { type, value, length } = tv;\n switch (type) {\n case 'uint8':\n this.writeUint8(value);\n break;\n case 'byte':\n case 'int8':\n this.writeInt8(value);\n break;\n case 'uint16':\n this.writeUint16(value);\n break;\n case 'int16':\n this.writeInt16(value);\n break;\n case 'uint32':\n this.writeUint32(value);\n break;\n case 'int32':\n this.writeInt32(value);\n break;\n case 'float32':\n this.writeFloat32(value);\n break;\n case 'float64':\n this.writeFloat64(value);\n break;\n case 'string':\n this.writeString(value, length);\n break;\n case 'boolean':\n this.writeBoolean(value);\n break;\n case 'bytes':\n this.writeBytes(value);\n break;\n default:\n throw new Error(`Unknown type ${type}`);\n }\n }\n\n readInt() {\n return this.readInt32();\n }\n\n readFloat() {\n return this.readFloat32();\n }\n\n readDouble() {\n return this.readFloat64();\n }\n\n remaining() {\n return this.length - this.position;\n }\n\n toUint8Array() {\n return new Uint8Array(this.buffer);\n }\n\n toHex() {\n return ArrayBuffers.toHex(this.buffer);\n }\n\n toBase64() {\n return ArrayBuffers.toBase64(this.buffer);\n }\n}\n\nexport interface TypedValue {\n type:\n | 'byte'\n | 'bytes'\n | 'uint8'\n | 'int8'\n | 'uint16'\n | 'int16'\n | 'uint32'\n | 'int32'\n | 'float32'\n | 'float64'\n | 'string'\n | 'boolean';\n value: any;\n length?: number;\n}\n\nfunction safeNumber(n: bigint) {\n if (n > Number.MAX_SAFE_INTEGER) {\n return n;\n }\n return Number(n);\n}\n"],"names":["ArrayBuffers","asBuffer","o","ArrayBuffer","isView","byteLength","buffer","slice","byteOffset","ByteBuffer","position","view","constructor","maxByteLength","DataView","length","resize","willWrite","remaining","newLength","Math","ceil","writeByte","value","setUint8","writeBytes","bytes","len","Uint8Array","set","writeInt8","setInt8","writeUint8","writeInt16","setInt16","writeUint16","setUint16","writeInt32","setInt32","writeUint32","setUint32","writeInt64","setBigInt64","writeUint64","setBigUint64","writeFloat32","setFloat32","writeFloat64","setFloat64","writeBoolean","writeString","encoder","TextEncoder","encode","readByte","getUint8","readBytes","readInt8","getInt8","readUint8","readInt16","getInt16","readUint16","getUint16","readInt32","getInt32","readUint32","getUint32","readInt64","getBigInt64","safeNumber","readUint64","getBigUint64","readFloat32","getFloat32","readFloat64","getFloat64","readBoolean","readString","decoder","TextDecoder","a","idx","indexOf","decode","readHexString","toHex","writeInt24","readInt24","writeZero","writeValue","b","tv","type","Error","readInt","readFloat","readDouble","toUint8Array","toBase64","n","Number","MAX_SAFE_INTEGER"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/io/ByteBuffer.ts"],"sourcesContent":["import { ArrayBuffers } from './ArrayBuffers';\n\ntype AnyBuffer = BufferSource | ArrayBufferLike;\n\nfunction asBuffer(o: AnyBuffer) {\n if (o instanceof ArrayBuffer) {\n return o;\n }\n if (ArrayBuffer.isView(o)) {\n // 保留 offset&length\n if (o.byteLength !== o.buffer.byteLength) {\n // ArrayBuffer 没有 subarray\n // if ('subarray' in o.buffer) {\n // return (o.buffer as any).subarray(o.byteOffset, o.byteOffset + o.byteLength);\n // }\n return o.buffer.slice(o.byteOffset, o.byteOffset + o.byteLength);\n }\n return o.buffer;\n }\n return o;\n}\n\n// function asView(o: AnyBuffer) {\n// if (o instanceof DataView) {\n// return o;\n// }\n// if (ArrayBuffer.isView(o)) {\n// // 不 clone 也能保留 offset&length\n// return new DataView(o.buffer, o.byteOffset, o.byteLength);\n// }\n// return new DataView(o);\n// }\n\n/**\n * @see {@link https://www.egret.uk/docs/egretengine/engine/egret.ByteArray egret.ByteArray}\n * @see {@link https://github.com/protobufjs/bytebuffer.js protobufjs/bytebuffer.js}\n * @see {@link https://netty.io/4.1/api/io/netty/buffer/ByteBuf.html io.netty.buffer.ByteBuf}\n * @see {@link https://nodejs.org/api/buffer.html node:buffer}\n * @see {@link https://www.postgresql.org/docs/current/datatype.html PostgreSQL Data Types}\n */\nexport class ByteBuffer {\n position = 0;\n\n #buffer: ArrayBufferLike;\n #view: DataView;\n #bytes: Uint8Array;\n // #endian: 'big' | 'little' = 'big';\n #bigEndian = true;\n\n constructor(buffer: AnyBuffer = new ArrayBuffer(0, { maxByteLength: 1024 })) {\n this.#buffer = asBuffer(buffer);\n // NOTE prefer view over buffer, avoid the slice overhead ?\n this.#view = new DataView(this.#buffer);\n this.#bytes = new Uint8Array(this.#buffer);\n }\n\n get littleEndian() {\n return !this.#bigEndian;\n }\n\n set littleEndian(v: boolean) {\n this.#bigEndian = !v;\n }\n\n get bigEndian() {\n return this.#bigEndian;\n }\n\n set bigEndian(v: boolean) {\n this.#bigEndian = v;\n }\n\n get view() {\n return this.#view;\n }\n\n get buffer(): ArrayBufferLike {\n return this.#buffer;\n }\n\n set buffer(buffer: AnyBuffer) {\n this.#buffer = asBuffer(buffer);\n this.#view = new DataView(this.#buffer);\n this.#bytes = new Uint8Array(this.#buffer);\n }\n\n get bytes(): Uint8Array {\n return this.#bytes;\n }\n\n get length() {\n return this.view.byteLength;\n }\n\n set length(length: number) {\n this.resize(length);\n }\n\n resize(newLength: number) {\n // 1.2 for buffer growth\n this.buffer = ArrayBuffers.resize(this.buffer, newLength, Math.ceil(newLength * 1.2));\n }\n\n writeByte(value: number) {\n this.willWrite(1);\n this.view.setUint8(this.position++, value);\n }\n\n writeBytes(bytes: ArrayBufferLike, len: number = bytes.byteLength) {\n this.willWrite(len);\n // ensure len first\n this.bytes.set(new Uint8Array(bytes).subarray(0, len), this.position);\n if (len > bytes.byteLength) {\n // fill zero\n this.bytes.fill(0, this.position + bytes.byteLength, this.position + len);\n }\n\n this.position += len;\n }\n\n writeInt8(value: number) {\n this.willWrite(1);\n this.view.setInt8(this.position, value);\n this.position += 1;\n }\n\n writeUint8(value: number) {\n this.willWrite(1);\n this.view.setUint8(this.position, value);\n this.position += 1;\n }\n\n writeInt16(value: number) {\n this.willWrite(2);\n this.view.setInt16(this.position, value, this.littleEndian);\n this.position += 2;\n }\n\n writeUint16(value: number) {\n this.willWrite(2);\n this.view.setUint16(this.position, value, this.littleEndian);\n this.position += 2;\n }\n\n writeUint24(value: number) {\n this.willWrite(3);\n this.view.setUint8(this.position, value & 0xff);\n this.view.setUint16(this.position + 1, value >> 8, this.littleEndian);\n this.position += 3;\n }\n\n writeInt32(value: number) {\n this.willWrite(4);\n this.view.setInt32(this.position, value, this.littleEndian);\n this.position += 4;\n }\n\n writeUint32(value: number) {\n this.willWrite(4);\n this.view.setUint32(this.position, value, this.littleEndian);\n this.position += 4;\n }\n\n writeInt64(value: bigint | number) {\n this.willWrite(8);\n this.view.setBigInt64(this.position, bigintOf(value), this.littleEndian);\n this.position += 8;\n }\n\n writeUint64(value: bigint | number) {\n this.willWrite(8);\n this.view.setBigUint64(this.position, bigintOf(value), this.littleEndian);\n this.position += 8;\n }\n\n writeFloat32(value: number) {\n this.willWrite(4);\n this.view.setFloat32(this.position, value, this.littleEndian);\n this.position += 4;\n }\n\n writeFloat64(value: number) {\n this.willWrite(8);\n this.view.setFloat64(this.position, value, this.littleEndian);\n this.position += 8;\n }\n\n writeBoolean(value: boolean) {\n this.writeByte(value ? 1 : 0);\n }\n\n writeString(value: string): void;\n\n writeString(value: string, len?: number): void;\n\n writeString(value: string, len?: number) {\n let bytes = this.encodeText(value);\n this.writeBytes(bytes, len);\n }\n\n readSizeString(n?: number) {\n return this.readString(requireNumber(this.readUint(n)));\n }\n\n writeSizeString(value: string, n?: number) {\n let out = this.encodeText(value);\n this.writeUint(out.length, n);\n this.writeBytes(out);\n }\n\n encodeText(value: string) {\n return new TextEncoder().encode(value);\n }\n\n decodeText(bytes: ArrayBufferLike) {\n return new TextDecoder().decode(bytes);\n }\n\n readByte() {\n return this.view.getUint8(this.position++);\n }\n\n readBytes(length: number) {\n let bytes = this.buffer.slice(this.position, this.position + length);\n this.position += length;\n return bytes;\n }\n\n readInt8() {\n let value = this.view.getInt8(this.position);\n this.position += 1;\n return value;\n }\n\n readUint8() {\n let value = this.view.getUint8(this.position);\n this.position += 1;\n return value;\n }\n\n readUnsignedByte() {\n return this.readUint8();\n }\n\n readThrough(end: number) {\n // readUntil 不包含 end\n let idx = this.bytes.indexOf(end, this.position);\n if (idx === -1) {\n throw new Error(`Byte ${end} not found starting from position ${this.position}`);\n }\n let bytes = this.buffer.slice(this.position, idx + 1);\n this.position = idx + 1;\n return bytes;\n }\n\n readInt16() {\n let value = this.view.getInt16(this.position, this.littleEndian);\n this.position += 2;\n return value;\n }\n\n readUint16() {\n let value = this.view.getUint16(this.position, this.littleEndian);\n this.position += 2;\n return value;\n }\n\n readInt32() {\n let value = this.view.getInt32(this.position, this.littleEndian);\n this.position += 4;\n return value;\n }\n\n readUint32() {\n let value = this.view.getUint32(this.position, this.littleEndian);\n this.position += 4;\n return value;\n }\n\n readInt64() {\n let value = this.view.getBigInt64(this.position, this.littleEndian);\n this.position += 8;\n return safeNumber(value);\n }\n\n readUint64() {\n let value = this.view.getBigUint64(this.position, this.littleEndian);\n this.position += 8;\n return safeNumber(value);\n }\n\n readFloat32() {\n let value = this.view.getFloat32(this.position, this.littleEndian);\n this.position += 4;\n return value;\n }\n\n readFloat64() {\n let value = this.view.getFloat64(this.position, this.littleEndian);\n this.position += 8;\n return value;\n }\n\n readBoolean() {\n // or !== 0?\n return this.readByte() === 1;\n }\n\n readString(length: number): string {\n let bytes = this.readBytes(length);\n let a = new Uint8Array(bytes);\n let idx = a.indexOf(0);\n if (idx !== -1) {\n bytes = bytes.slice(0, idx);\n }\n return this.decodeText(bytes);\n }\n\n readHexString(length: number) {\n let bytes = this.readBytes(length);\n return ArrayBuffers.toHex(bytes);\n }\n\n writeHexString(value: string, len?: number) {\n this.writeBytes(ArrayBuffers.fromHex(value), len);\n }\n\n writeInt24(value: number) {\n // fixme byte order\n this.writeUint8(value & 0xff);\n this.writeUint16(value >> 8);\n }\n\n readInt24() {\n // fixme recheck\n let value = this.readUint24();\n if (value & 0x800000) {\n // If the sign bit is set, extend the sign\n value |= 0xff000000;\n }\n return value;\n }\n\n readUint24() {\n // fixme recheck\n return this.readUint8() | (this.readUint8() << 8) | (this.readUint8() << 16);\n }\n\n writeZero(length: number) {\n this.willWrite(length);\n this.bytes.fill(0, this.position, this.position + length);\n this.position += length;\n }\n\n writeValue(typ: TypedValue['type'], val: TypedValue['value']): void;\n writeValue(tv: TypedValue): void;\n writeValue(a: any, b?: any) {\n const tv: TypedValue = typeof a === 'string' ? { type: a, value: b } : a;\n const { type, value, length } = tv;\n switch (type) {\n case 'uint8':\n this.writeUint8(value);\n break;\n case 'byte':\n case 'int8':\n this.writeInt8(value);\n break;\n case 'uint16':\n this.writeUint16(value);\n break;\n case 'int16':\n this.writeInt16(value);\n break;\n case 'uint24':\n this.writeUint24(value);\n break;\n case 'int24':\n this.writeInt24(value);\n break;\n case 'uint32':\n case 'uint':\n this.writeUint32(value);\n break;\n case 'int32':\n case 'int':\n this.writeInt32(value);\n break;\n case 'float32':\n case 'float':\n this.writeFloat32(value);\n break;\n case 'float64':\n case 'double':\n this.writeFloat64(value);\n break;\n case 'string':\n this.writeString(value, length);\n break;\n case 'boolean':\n this.writeBoolean(value);\n break;\n case 'bytes':\n this.writeBytes(value);\n break;\n default:\n throw new Error(`Unknown type ${type}`);\n }\n }\n\n readUnsignedShort() {\n return this.readUint16();\n }\n\n readShort() {\n return this.readInt16();\n }\n\n readInt(bytesOrBits: number = 32) {\n switch (bytesOrBits) {\n case 1:\n case 8:\n return this.readInt8();\n case 2:\n case 16:\n return this.readInt16();\n case 3:\n case 24:\n return this.readInt24();\n case 4:\n case 32:\n return this.readInt32();\n // skip 8 byte for bits\n case 64:\n return this.readInt64();\n default:\n throw new Error(`Unknown int${bytesOrBits}`);\n }\n }\n\n readUint(bytesOrBits: number = 32) {\n switch (bytesOrBits) {\n case 1:\n case 8:\n return this.readUint8();\n case 2:\n case 16:\n return this.readUint16();\n case 3:\n case 24:\n return this.readUint24();\n case 4:\n case 32:\n return this.readUint32();\n // skip 8 byte for bits\n case 64:\n return this.readUint64();\n default:\n throw new Error(`Unexpected int size: ${bytesOrBits}`);\n }\n }\n\n writeUint(value: number, bytesOrBits: number = 32) {\n switch (bytesOrBits) {\n case 1:\n case 8:\n this.writeUint8(value);\n break;\n case 2:\n case 16:\n this.writeUint16(value);\n break;\n case 3:\n case 24:\n this.writeUint24(value);\n break;\n case 4:\n case 32:\n this.writeUint32(value);\n break;\n case 64:\n this.writeUint64(value);\n break;\n default:\n throw new Error(`Unexpected uint size: ${bytesOrBits}`);\n }\n }\n\n readFloat(n: number = 32) {\n switch (n) {\n case 4:\n case 32:\n return this.readFloat32();\n case 8:\n case 64:\n return this.readFloat64();\n default:\n throw new Error(`Unexpected float size: ${n}`);\n }\n }\n\n writeFloat(value: number, n: number = 32) {\n switch (n) {\n case 4:\n case 32:\n this.writeFloat32(value);\n break;\n case 8:\n case 64:\n this.writeFloat64(value);\n break;\n default:\n throw new Error(`Unexpected float size: ${n}`);\n }\n }\n\n readDouble() {\n return this.readFloat64();\n }\n\n writeDouble(value: number) {\n this.writeFloat64(value);\n }\n\n remaining() {\n return this.length - this.position;\n }\n\n hasRemaining() {\n return this.remaining() > 0;\n }\n\n readRemaining() {\n return this.readBytes(this.remaining());\n }\n\n toUint8Array() {\n return new Uint8Array(this.buffer);\n }\n\n toHex() {\n return ArrayBuffers.toHex(this.buffer);\n }\n\n toBase64() {\n return ArrayBuffers.toBase64(this.buffer);\n }\n\n private willWrite(length: number) {\n if (this.remaining() < length) {\n this.resize(this.position + length);\n }\n }\n}\n\nexport interface TypedValue {\n type:\n | 'byte'\n | 'bytes'\n | 'uint8'\n | 'int8'\n | 'uint16'\n | 'int16'\n | 'uint24'\n | 'int24'\n | 'int'\n | 'uint'\n | 'uint32'\n | 'int32'\n | 'float'\n | 'float32'\n | 'double'\n | 'float64'\n | 'string'\n | 'boolean';\n value: any;\n length?: number;\n}\n\nfunction safeNumber(n: bigint) {\n if (n > Number.MAX_SAFE_INTEGER) {\n return n;\n }\n return Number(n);\n}\n\nfunction bigintOf(n: number | bigint) {\n if (typeof n === 'bigint') {\n return n;\n }\n return BigInt(n);\n}\n\nfunction requireNumber(n: number | bigint) {\n if (typeof n !== 'number') {\n throw new Error(`Expected number, got ${n}`);\n }\n return n;\n}\n"],"names":["ArrayBuffers","asBuffer","o","ArrayBuffer","isView","byteLength","buffer","slice","byteOffset","ByteBuffer","position","constructor","maxByteLength","DataView","Uint8Array","littleEndian","v","bigEndian","view","bytes","length","resize","newLength","Math","ceil","writeByte","value","willWrite","setUint8","writeBytes","len","set","subarray","fill","writeInt8","setInt8","writeUint8","writeInt16","setInt16","writeUint16","setUint16","writeUint24","writeInt32","setInt32","writeUint32","setUint32","writeInt64","setBigInt64","bigintOf","writeUint64","setBigUint64","writeFloat32","setFloat32","writeFloat64","setFloat64","writeBoolean","writeString","encodeText","readSizeString","n","readString","requireNumber","readUint","writeSizeString","out","writeUint","TextEncoder","encode","decodeText","TextDecoder","decode","readByte","getUint8","readBytes","readInt8","getInt8","readUint8","readUnsignedByte","readThrough","end","idx","indexOf","Error","readInt16","getInt16","readUint16","getUint16","readInt32","getInt32","readUint32","getUint32","readInt64","getBigInt64","safeNumber","readUint64","getBigUint64","readFloat32","getFloat32","readFloat64","getFloat64","readBoolean","a","readHexString","toHex","writeHexString","fromHex","writeInt24","readInt24","readUint24","writeZero","writeValue","b","tv","type","readUnsignedShort","readShort","readInt","bytesOrBits","readFloat","writeFloat","readDouble","writeDouble","remaining","hasRemaining","readRemaining","toUint8Array","toBase64","Number","MAX_SAFE_INTEGER","BigInt"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAI9C,SAASC,SAASC,CAAY;IAC5B,IAAIA,aAAaC,aAAa;QAC5B,OAAOD;IACT;IACA,IAAIC,YAAYC,MAAM,CAACF,IAAI;QACzB,mBAAmB;QACnB,IAAIA,EAAEG,UAAU,KAAKH,EAAEI,MAAM,CAACD,UAAU,EAAE;YACxC,0BAA0B;YAC1B,gCAAgC;YAChC,kFAAkF;YAClF,IAAI;YACJ,OAAOH,EAAEI,MAAM,CAACC,KAAK,CAACL,EAAEM,UAAU,EAAEN,EAAEM,UAAU,GAAGN,EAAEG,UAAU;QACjE;QACA,OAAOH,EAAEI,MAAM;IACjB;IACA,OAAOJ;AACT;AAEA,kCAAkC;AAClC,iCAAiC;AACjC,gBAAgB;AAChB,MAAM;AACN,iCAAiC;AACjC,oCAAoC;AACpC,iEAAiE;AACjE,MAAM;AACN,4BAA4B;AAC5B,IAAI;AAEJ;;;;;;CAMC,GACD,OAAO,MAAMO;IACXC,WAAW,EAAE;IAEb,CAAA,MAAO,CAAkB;IACzB,CAAA,IAAK,CAAW;IAChB,CAAA,KAAM,CAAa;IACnB,qCAAqC;IACrC,CAAA,SAAU,GAAG,KAAK;IAElBC,YAAYL,SAAoB,IAAIH,YAAY,GAAG;QAAES,eAAe;IAAK,EAAE,CAAE;QAC3E,IAAI,CAAC,CAAA,MAAO,GAAGX,SAASK;QACxB,2DAA2D;QAC3D,IAAI,CAAC,CAAA,IAAK,GAAG,IAAIO,SAAS,IAAI,CAAC,CAAA,MAAO;QACtC,IAAI,CAAC,CAAA,KAAM,GAAG,IAAIC,WAAW,IAAI,CAAC,CAAA,MAAO;IAC3C;IAEA,IAAIC,eAAe;QACjB,OAAO,CAAC,IAAI,CAAC,CAAA,SAAU;IACzB;IAEA,IAAIA,aAAaC,CAAU,EAAE;QAC3B,IAAI,CAAC,CAAA,SAAU,GAAG,CAACA;IACrB;IAEA,IAAIC,YAAY;QACd,OAAO,IAAI,CAAC,CAAA,SAAU;IACxB;IAEA,IAAIA,UAAUD,CAAU,EAAE;QACxB,IAAI,CAAC,CAAA,SAAU,GAAGA;IACpB;IAEA,IAAIE,OAAO;QACT,OAAO,IAAI,CAAC,CAAA,IAAK;IACnB;IAEA,IAAIZ,SAA0B;QAC5B,OAAO,IAAI,CAAC,CAAA,MAAO;IACrB;IAEA,IAAIA,OAAOA,MAAiB,EAAE;QAC5B,IAAI,CAAC,CAAA,MAAO,GAAGL,SAASK;QACxB,IAAI,CAAC,CAAA,IAAK,GAAG,IAAIO,SAAS,IAAI,CAAC,CAAA,MAAO;QACtC,IAAI,CAAC,CAAA,KAAM,GAAG,IAAIC,WAAW,IAAI,CAAC,CAAA,MAAO;IAC3C;IAEA,IAAIK,QAAoB;QACtB,OAAO,IAAI,CAAC,CAAA,KAAM;IACpB;IAEA,IAAIC,SAAS;QACX,OAAO,IAAI,CAACF,IAAI,CAACb,UAAU;IAC7B;IAEA,IAAIe,OAAOA,MAAc,EAAE;QACzB,IAAI,CAACC,MAAM,CAACD;IACd;IAEAC,OAAOC,SAAiB,EAAE;QACxB,wBAAwB;QACxB,IAAI,CAAChB,MAAM,GAAGN,aAAaqB,MAAM,CAAC,IAAI,CAACf,MAAM,EAAEgB,WAAWC,KAAKC,IAAI,CAACF,YAAY;IAClF;IAEAG,UAAUC,KAAa,EAAE;QACvB,IAAI,CAACC,SAAS,CAAC;QACf,IAAI,CAACT,IAAI,CAACU,QAAQ,CAAC,IAAI,CAAClB,QAAQ,IAAIgB;IACtC;IAEAG,WAAWV,KAAsB,EAAEW,MAAcX,MAAMd,UAAU,EAAE;QACjE,IAAI,CAACsB,SAAS,CAACG;QACf,mBAAmB;QACnB,IAAI,CAACX,KAAK,CAACY,GAAG,CAAC,IAAIjB,WAAWK,OAAOa,QAAQ,CAAC,GAAGF,MAAM,IAAI,CAACpB,QAAQ;QACpE,IAAIoB,MAAMX,MAAMd,UAAU,EAAE;YAC1B,YAAY;YACZ,IAAI,CAACc,KAAK,CAACc,IAAI,CAAC,GAAG,IAAI,CAACvB,QAAQ,GAAGS,MAAMd,UAAU,EAAE,IAAI,CAACK,QAAQ,GAAGoB;QACvE;QAEA,IAAI,CAACpB,QAAQ,IAAIoB;IACnB;IAEAI,UAAUR,KAAa,EAAE;QACvB,IAAI,CAACC,SAAS,CAAC;QACf,IAAI,CAACT,IAAI,CAACiB,OAAO,CAAC,IAAI,CAACzB,QAAQ,EAAEgB;QACjC,IAAI,CAAChB,QAAQ,IAAI;IACnB;IAEA0B,WAAWV,KAAa,EAAE;QACxB,IAAI,CAACC,SAAS,CAAC;QACf,IAAI,CAACT,IAAI,CAACU,QAAQ,CAAC,IAAI,CAAClB,QAAQ,EAAEgB;QAClC,IAAI,CAAChB,QAAQ,IAAI;IACnB;IAEA2B,WAAWX,KAAa,EAAE;QACxB,IAAI,CAACC,SAAS,CAAC;QACf,IAAI,CAACT,IAAI,CAACoB,QAAQ,CAAC,IAAI,CAAC5B,QAAQ,EAAEgB,OAAO,IAAI,CAACX,YAAY;QAC1D,IAAI,CAACL,QAAQ,IAAI;IACnB;IAEA6B,YAAYb,KAAa,EAAE;QACzB,IAAI,CAACC,SAAS,CAAC;QACf,IAAI,CAACT,IAAI,CAACsB,SAAS,CAAC,IAAI,CAAC9B,QAAQ,EAAEgB,OAAO,IAAI,CAACX,YAAY;QAC3D,IAAI,CAACL,QAAQ,IAAI;IACnB;IAEA+B,YAAYf,KAAa,EAAE;QACzB,IAAI,CAACC,SAAS,CAAC;QACf,IAAI,CAACT,IAAI,CAACU,QAAQ,CAAC,IAAI,CAAClB,QAAQ,EAAEgB,QAAQ;QAC1C,IAAI,CAACR,IAAI,CAACsB,SAAS,CAAC,IAAI,CAAC9B,QAAQ,GAAG,GAAGgB,SAAS,GAAG,IAAI,CAACX,YAAY;QACpE,IAAI,CAACL,QAAQ,IAAI;IACnB;IAEAgC,WAAWhB,KAAa,EAAE;QACxB,IAAI,CAACC,SAAS,CAAC;QACf,IAAI,CAACT,IAAI,CAACyB,QAAQ,CAAC,IAAI,CAACjC,QAAQ,EAAEgB,OAAO,IAAI,CAACX,YAAY;QAC1D,IAAI,CAACL,QAAQ,IAAI;IACnB;IAEAkC,YAAYlB,KAAa,EAAE;QACzB,IAAI,CAACC,SAAS,CAAC;QACf,IAAI,CAACT,IAAI,CAAC2B,SAAS,CAAC,IAAI,CAACnC,QAAQ,EAAEgB,OAAO,IAAI,CAACX,YAAY;QAC3D,IAAI,CAACL,QAAQ,IAAI;IACnB;IAEAoC,WAAWpB,KAAsB,EAAE;QACjC,IAAI,CAACC,SAAS,CAAC;QACf,IAAI,CAACT,IAAI,CAAC6B,WAAW,CAAC,IAAI,CAACrC,QAAQ,EAAEsC,SAAStB,QAAQ,IAAI,CAACX,YAAY;QACvE,IAAI,CAACL,QAAQ,IAAI;IACnB;IAEAuC,YAAYvB,KAAsB,EAAE;QAClC,IAAI,CAACC,SAAS,CAAC;QACf,IAAI,CAACT,IAAI,CAACgC,YAAY,CAAC,IAAI,CAACxC,QAAQ,EAAEsC,SAAStB,QAAQ,IAAI,CAACX,YAAY;QACxE,IAAI,CAACL,QAAQ,IAAI;IACnB;IAEAyC,aAAazB,KAAa,EAAE;QAC1B,IAAI,CAACC,SAAS,CAAC;QACf,IAAI,CAACT,IAAI,CAACkC,UAAU,CAAC,IAAI,CAAC1C,QAAQ,EAAEgB,OAAO,IAAI,CAACX,YAAY;QAC5D,IAAI,CAACL,QAAQ,IAAI;IACnB;IAEA2C,aAAa3B,KAAa,EAAE;QAC1B,IAAI,CAACC,SAAS,CAAC;QACf,IAAI,CAACT,IAAI,CAACoC,UAAU,CAAC,IAAI,CAAC5C,QAAQ,EAAEgB,OAAO,IAAI,CAACX,YAAY;QAC5D,IAAI,CAACL,QAAQ,IAAI;IACnB;IAEA6C,aAAa7B,KAAc,EAAE;QAC3B,IAAI,CAACD,SAAS,CAACC,QAAQ,IAAI;IAC7B;IAMA8B,YAAY9B,KAAa,EAAEI,GAAY,EAAE;QACvC,IAAIX,QAAQ,IAAI,CAACsC,UAAU,CAAC/B;QAC5B,IAAI,CAACG,UAAU,CAACV,OAAOW;IACzB;IAEA4B,eAAeC,CAAU,EAAE;QACzB,OAAO,IAAI,CAACC,UAAU,CAACC,cAAc,IAAI,CAACC,QAAQ,CAACH;IACrD;IAEAI,gBAAgBrC,KAAa,EAAEiC,CAAU,EAAE;QACzC,IAAIK,MAAM,IAAI,CAACP,UAAU,CAAC/B;QAC1B,IAAI,CAACuC,SAAS,CAACD,IAAI5C,MAAM,EAAEuC;QAC3B,IAAI,CAAC9B,UAAU,CAACmC;IAClB;IAEAP,WAAW/B,KAAa,EAAE;QACxB,OAAO,IAAIwC,cAAcC,MAAM,CAACzC;IAClC;IAEA0C,WAAWjD,KAAsB,EAAE;QACjC,OAAO,IAAIkD,cAAcC,MAAM,CAACnD;IAClC;IAEAoD,WAAW;QACT,OAAO,IAAI,CAACrD,IAAI,CAACsD,QAAQ,CAAC,IAAI,CAAC9D,QAAQ;IACzC;IAEA+D,UAAUrD,MAAc,EAAE;QACxB,IAAID,QAAQ,IAAI,CAACb,MAAM,CAACC,KAAK,CAAC,IAAI,CAACG,QAAQ,EAAE,IAAI,CAACA,QAAQ,GAAGU;QAC7D,IAAI,CAACV,QAAQ,IAAIU;QACjB,OAAOD;IACT;IAEAuD,WAAW;QACT,IAAIhD,QAAQ,IAAI,CAACR,IAAI,CAACyD,OAAO,CAAC,IAAI,CAACjE,QAAQ;QAC3C,IAAI,CAACA,QAAQ,IAAI;QACjB,OAAOgB;IACT;IAEAkD,YAAY;QACV,IAAIlD,QAAQ,IAAI,CAACR,IAAI,CAACsD,QAAQ,CAAC,IAAI,CAAC9D,QAAQ;QAC5C,IAAI,CAACA,QAAQ,IAAI;QACjB,OAAOgB;IACT;IAEAmD,mBAAmB;QACjB,OAAO,IAAI,CAACD,SAAS;IACvB;IAEAE,YAAYC,GAAW,EAAE;QACvB,oBAAoB;QACpB,IAAIC,MAAM,IAAI,CAAC7D,KAAK,CAAC8D,OAAO,CAACF,KAAK,IAAI,CAACrE,QAAQ;QAC/C,IAAIsE,QAAQ,CAAC,GAAG;YACd,MAAM,IAAIE,MAAM,CAAC,KAAK,EAAEH,IAAI,kCAAkC,EAAE,IAAI,CAACrE,QAAQ,EAAE;QACjF;QACA,IAAIS,QAAQ,IAAI,CAACb,MAAM,CAACC,KAAK,CAAC,IAAI,CAACG,QAAQ,EAAEsE,MAAM;QACnD,IAAI,CAACtE,QAAQ,GAAGsE,MAAM;QACtB,OAAO7D;IACT;IAEAgE,YAAY;QACV,IAAIzD,QAAQ,IAAI,CAACR,IAAI,CAACkE,QAAQ,CAAC,IAAI,CAAC1E,QAAQ,EAAE,IAAI,CAACK,YAAY;QAC/D,IAAI,CAACL,QAAQ,IAAI;QACjB,OAAOgB;IACT;IAEA2D,aAAa;QACX,IAAI3D,QAAQ,IAAI,CAACR,IAAI,CAACoE,SAAS,CAAC,IAAI,CAAC5E,QAAQ,EAAE,IAAI,CAACK,YAAY;QAChE,IAAI,CAACL,QAAQ,IAAI;QACjB,OAAOgB;IACT;IAEA6D,YAAY;QACV,IAAI7D,QAAQ,IAAI,CAACR,IAAI,CAACsE,QAAQ,CAAC,IAAI,CAAC9E,QAAQ,EAAE,IAAI,CAACK,YAAY;QAC/D,IAAI,CAACL,QAAQ,IAAI;QACjB,OAAOgB;IACT;IAEA+D,aAAa;QACX,IAAI/D,QAAQ,IAAI,CAACR,IAAI,CAACwE,SAAS,CAAC,IAAI,CAAChF,QAAQ,EAAE,IAAI,CAACK,YAAY;QAChE,IAAI,CAACL,QAAQ,IAAI;QACjB,OAAOgB;IACT;IAEAiE,YAAY;QACV,IAAIjE,QAAQ,IAAI,CAACR,IAAI,CAAC0E,WAAW,CAAC,IAAI,CAAClF,QAAQ,EAAE,IAAI,CAACK,YAAY;QAClE,IAAI,CAACL,QAAQ,IAAI;QACjB,OAAOmF,WAAWnE;IACpB;IAEAoE,aAAa;QACX,IAAIpE,QAAQ,IAAI,CAACR,IAAI,CAAC6E,YAAY,CAAC,IAAI,CAACrF,QAAQ,EAAE,IAAI,CAACK,YAAY;QACnE,IAAI,CAACL,QAAQ,IAAI;QACjB,OAAOmF,WAAWnE;IACpB;IAEAsE,cAAc;QACZ,IAAItE,QAAQ,IAAI,CAACR,IAAI,CAAC+E,UAAU,CAAC,IAAI,CAACvF,QAAQ,EAAE,IAAI,CAACK,YAAY;QACjE,IAAI,CAACL,QAAQ,IAAI;QACjB,OAAOgB;IACT;IAEAwE,cAAc;QACZ,IAAIxE,QAAQ,IAAI,CAACR,IAAI,CAACiF,UAAU,CAAC,IAAI,CAACzF,QAAQ,EAAE,IAAI,CAACK,YAAY;QACjE,IAAI,CAACL,QAAQ,IAAI;QACjB,OAAOgB;IACT;IAEA0E,cAAc;QACZ,YAAY;QACZ,OAAO,IAAI,CAAC7B,QAAQ,OAAO;IAC7B;IAEAX,WAAWxC,MAAc,EAAU;QACjC,IAAID,QAAQ,IAAI,CAACsD,SAAS,CAACrD;QAC3B,IAAIiF,IAAI,IAAIvF,WAAWK;QACvB,IAAI6D,MAAMqB,EAAEpB,OAAO,CAAC;QACpB,IAAID,QAAQ,CAAC,GAAG;YACd7D,QAAQA,MAAMZ,KAAK,CAAC,GAAGyE;QACzB;QACA,OAAO,IAAI,CAACZ,UAAU,CAACjD;IACzB;IAEAmF,cAAclF,MAAc,EAAE;QAC5B,IAAID,QAAQ,IAAI,CAACsD,SAAS,CAACrD;QAC3B,OAAOpB,aAAauG,KAAK,CAACpF;IAC5B;IAEAqF,eAAe9E,KAAa,EAAEI,GAAY,EAAE;QAC1C,IAAI,CAACD,UAAU,CAAC7B,aAAayG,OAAO,CAAC/E,QAAQI;IAC/C;IAEA4E,WAAWhF,KAAa,EAAE;QACxB,mBAAmB;QACnB,IAAI,CAACU,UAAU,CAACV,QAAQ;QACxB,IAAI,CAACa,WAAW,CAACb,SAAS;IAC5B;IAEAiF,YAAY;QACV,gBAAgB;QAChB,IAAIjF,QAAQ,IAAI,CAACkF,UAAU;QAC3B,IAAIlF,QAAQ,UAAU;YACpB,0CAA0C;YAC1CA,SAAS;QACX;QACA,OAAOA;IACT;IAEAkF,aAAa;QACX,gBAAgB;QAChB,OAAO,IAAI,CAAChC,SAAS,KAAM,IAAI,CAACA,SAAS,MAAM,IAAM,IAAI,CAACA,SAAS,MAAM;IAC3E;IAEAiC,UAAUzF,MAAc,EAAE;QACxB,IAAI,CAACO,SAAS,CAACP;QACf,IAAI,CAACD,KAAK,CAACc,IAAI,CAAC,GAAG,IAAI,CAACvB,QAAQ,EAAE,IAAI,CAACA,QAAQ,GAAGU;QAClD,IAAI,CAACV,QAAQ,IAAIU;IACnB;IAIA0F,WAAWT,CAAM,EAAEU,CAAO,EAAE;QAC1B,MAAMC,KAAiB,OAAOX,MAAM,WAAW;YAAEY,MAAMZ;YAAG3E,OAAOqF;QAAE,IAAIV;QACvE,MAAM,EAAEY,IAAI,EAAEvF,KAAK,EAAEN,MAAM,EAAE,GAAG4F;QAChC,OAAQC;YACN,KAAK;gBACH,IAAI,CAAC7E,UAAU,CAACV;gBAChB;YACF,KAAK;YACL,KAAK;gBACH,IAAI,CAACQ,SAAS,CAACR;gBACf;YACF,KAAK;gBACH,IAAI,CAACa,WAAW,CAACb;gBACjB;YACF,KAAK;gBACH,IAAI,CAACW,UAAU,CAACX;gBAChB;YACF,KAAK;gBACH,IAAI,CAACe,WAAW,CAACf;gBACjB;YACF,KAAK;gBACH,IAAI,CAACgF,UAAU,CAAChF;gBAChB;YACF,KAAK;YACL,KAAK;gBACH,IAAI,CAACkB,WAAW,CAAClB;gBACjB;YACF,KAAK;YACL,KAAK;gBACH,IAAI,CAACgB,UAAU,CAAChB;gBAChB;YACF,KAAK;YACL,KAAK;gBACH,IAAI,CAACyB,YAAY,CAACzB;gBAClB;YACF,KAAK;YACL,KAAK;gBACH,IAAI,CAAC2B,YAAY,CAAC3B;gBAClB;YACF,KAAK;gBACH,IAAI,CAAC8B,WAAW,CAAC9B,OAAON;gBACxB;YACF,KAAK;gBACH,IAAI,CAACmC,YAAY,CAAC7B;gBAClB;YACF,KAAK;gBACH,IAAI,CAACG,UAAU,CAACH;gBAChB;YACF;gBACE,MAAM,IAAIwD,MAAM,CAAC,aAAa,EAAE+B,MAAM;QAC1C;IACF;IAEAC,oBAAoB;QAClB,OAAO,IAAI,CAAC7B,UAAU;IACxB;IAEA8B,YAAY;QACV,OAAO,IAAI,CAAChC,SAAS;IACvB;IAEAiC,QAAQC,cAAsB,EAAE,EAAE;QAChC,OAAQA;YACN,KAAK;YACL,KAAK;gBACH,OAAO,IAAI,CAAC3C,QAAQ;YACtB,KAAK;YACL,KAAK;gBACH,OAAO,IAAI,CAACS,SAAS;YACvB,KAAK;YACL,KAAK;gBACH,OAAO,IAAI,CAACwB,SAAS;YACvB,KAAK;YACL,KAAK;gBACH,OAAO,IAAI,CAACpB,SAAS;YACvB,uBAAuB;YACvB,KAAK;gBACH,OAAO,IAAI,CAACI,SAAS;YACvB;gBACE,MAAM,IAAIT,MAAM,CAAC,WAAW,EAAEmC,aAAa;QAC/C;IACF;IAEAvD,SAASuD,cAAsB,EAAE,EAAE;QACjC,OAAQA;YACN,KAAK;YACL,KAAK;gBACH,OAAO,IAAI,CAACzC,SAAS;YACvB,KAAK;YACL,KAAK;gBACH,OAAO,IAAI,CAACS,UAAU;YACxB,KAAK;YACL,KAAK;gBACH,OAAO,IAAI,CAACuB,UAAU;YACxB,KAAK;YACL,KAAK;gBACH,OAAO,IAAI,CAACnB,UAAU;YACxB,uBAAuB;YACvB,KAAK;gBACH,OAAO,IAAI,CAACK,UAAU;YACxB;gBACE,MAAM,IAAIZ,MAAM,CAAC,qBAAqB,EAAEmC,aAAa;QACzD;IACF;IAEApD,UAAUvC,KAAa,EAAE2F,cAAsB,EAAE,EAAE;QACjD,OAAQA;YACN,KAAK;YACL,KAAK;gBACH,IAAI,CAACjF,UAAU,CAACV;gBAChB;YACF,KAAK;YACL,KAAK;gBACH,IAAI,CAACa,WAAW,CAACb;gBACjB;YACF,KAAK;YACL,KAAK;gBACH,IAAI,CAACe,WAAW,CAACf;gBACjB;YACF,KAAK;YACL,KAAK;gBACH,IAAI,CAACkB,WAAW,CAAClB;gBACjB;YACF,KAAK;gBACH,IAAI,CAACuB,WAAW,CAACvB;gBACjB;YACF;gBACE,MAAM,IAAIwD,MAAM,CAAC,sBAAsB,EAAEmC,aAAa;QAC1D;IACF;IAEAC,UAAU3D,IAAY,EAAE,EAAE;QACxB,OAAQA;YACN,KAAK;YACL,KAAK;gBACH,OAAO,IAAI,CAACqC,WAAW;YACzB,KAAK;YACL,KAAK;gBACH,OAAO,IAAI,CAACE,WAAW;YACzB;gBACE,MAAM,IAAIhB,MAAM,CAAC,uBAAuB,EAAEvB,GAAG;QACjD;IACF;IAEA4D,WAAW7F,KAAa,EAAEiC,IAAY,EAAE,EAAE;QACxC,OAAQA;YACN,KAAK;YACL,KAAK;gBACH,IAAI,CAACR,YAAY,CAACzB;gBAClB;YACF,KAAK;YACL,KAAK;gBACH,IAAI,CAAC2B,YAAY,CAAC3B;gBAClB;YACF;gBACE,MAAM,IAAIwD,MAAM,CAAC,uBAAuB,EAAEvB,GAAG;QACjD;IACF;IAEA6D,aAAa;QACX,OAAO,IAAI,CAACtB,WAAW;IACzB;IAEAuB,YAAY/F,KAAa,EAAE;QACzB,IAAI,CAAC2B,YAAY,CAAC3B;IACpB;IAEAgG,YAAY;QACV,OAAO,IAAI,CAACtG,MAAM,GAAG,IAAI,CAACV,QAAQ;IACpC;IAEAiH,eAAe;QACb,OAAO,IAAI,CAACD,SAAS,KAAK;IAC5B;IAEAE,gBAAgB;QACd,OAAO,IAAI,CAACnD,SAAS,CAAC,IAAI,CAACiD,SAAS;IACtC;IAEAG,eAAe;QACb,OAAO,IAAI/G,WAAW,IAAI,CAACR,MAAM;IACnC;IAEAiG,QAAQ;QACN,OAAOvG,aAAauG,KAAK,CAAC,IAAI,CAACjG,MAAM;IACvC;IAEAwH,WAAW;QACT,OAAO9H,aAAa8H,QAAQ,CAAC,IAAI,CAACxH,MAAM;IAC1C;IAEQqB,UAAUP,MAAc,EAAE;QAChC,IAAI,IAAI,CAACsG,SAAS,KAAKtG,QAAQ;YAC7B,IAAI,CAACC,MAAM,CAAC,IAAI,CAACX,QAAQ,GAAGU;QAC9B;IACF;AACF;AA0BA,SAASyE,WAAWlC,CAAS;IAC3B,IAAIA,IAAIoE,OAAOC,gBAAgB,EAAE;QAC/B,OAAOrE;IACT;IACA,OAAOoE,OAAOpE;AAChB;AAEA,SAASX,SAASW,CAAkB;IAClC,IAAI,OAAOA,MAAM,UAAU;QACzB,OAAOA;IACT;IACA,OAAOsE,OAAOtE;AAChB;AAEA,SAASE,cAAcF,CAAkB;IACvC,IAAI,OAAOA,MAAM,UAAU;QACzB,MAAM,IAAIuB,MAAM,CAAC,qBAAqB,EAAEvB,GAAG;IAC7C;IACA,OAAOA;AACT"}
package/lib/io/base64.js CHANGED
@@ -22,7 +22,7 @@ export function encodeArrayBufferToBase64(arraybuffer) {
22
22
  }
23
23
  return base64;
24
24
  }
25
- export function decodeBase64ToArrayBuffer(base64) {
25
+ export function decodeBase64ToUint8Array(base64) {
26
26
  const len = base64.length;
27
27
  let bufferLength = base64.length * 0.75;
28
28
  let i;
@@ -48,7 +48,7 @@ export function decodeBase64ToArrayBuffer(base64) {
48
48
  bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;
49
49
  bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;
50
50
  }
51
- return arraybuffer;
51
+ return bytes;
52
52
  }
53
53
 
54
54
  //# sourceMappingURL=base64.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/io/base64.ts"],"sourcesContent":["// https://github.com/niklasvh/base64-arraybuffer/blob/master/src/index.ts\n\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport function encodeArrayBufferToBase64(arraybuffer: ArrayBuffer): string {\n const bytes = new Uint8Array(arraybuffer);\n const len = bytes.length;\n let base64 = '';\n\n for (let i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n}\n\nexport function decodeBase64ToArrayBuffer(base64: string): ArrayBuffer {\n const len = base64.length;\n let bufferLength = base64.length * 0.75;\n let i;\n let p = 0;\n let encoded1;\n let encoded2;\n let encoded3;\n let encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength);\n const bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n}\n"],"names":["chars","lookup","Uint8Array","i","length","charCodeAt","encodeArrayBufferToBase64","arraybuffer","bytes","len","base64","substring","decodeBase64ToArrayBuffer","bufferLength","p","encoded1","encoded2","encoded3","encoded4","ArrayBuffer"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,0EAA0E;AAE1E,MAAMA,QAAQ;AAEd,wCAAwC;AACxC,MAAMC,SAAS,OAAOC,eAAe,cAAc,EAAE,GAAG,IAAIA,WAAW;AACvE,IAAK,IAAIC,IAAI,GAAGA,IAAIH,MAAMI,MAAM,EAAED,IAAK;IACrCF,MAAM,CAACD,MAAMK,UAAU,CAACF,GAAG,GAAGA;AAChC;AAEA,OAAO,SAASG,0BAA0BC,WAAwB;IAChE,MAAMC,QAAQ,IAAIN,WAAWK;IAC7B,MAAME,MAAMD,MAAMJ,MAAM;IACxB,IAAIM,SAAS;IAEb,IAAK,IAAIP,IAAI,GAAGA,IAAIM,KAAKN,KAAK,EAAG;QAC/BO,UAAUV,KAAK,CAACQ,KAAK,CAACL,EAAE,IAAI,EAAE;QAC9BO,UAAUV,KAAK,CAAC,AAAEQ,CAAAA,KAAK,CAACL,EAAE,GAAG,CAAA,KAAM,IAAMK,KAAK,CAACL,IAAI,EAAE,IAAI,EAAG;QAC5DO,UAAUV,KAAK,CAAC,AAAEQ,CAAAA,KAAK,CAACL,IAAI,EAAE,GAAG,EAAC,KAAM,IAAMK,KAAK,CAACL,IAAI,EAAE,IAAI,EAAG;QACjEO,UAAUV,KAAK,CAACQ,KAAK,CAACL,IAAI,EAAE,GAAG,GAAG;IACpC;IAEA,IAAIM,MAAM,MAAM,GAAG;QACjBC,SAASA,OAAOC,SAAS,CAAC,GAAGD,OAAON,MAAM,GAAG,KAAK;IACpD,OAAO,IAAIK,MAAM,MAAM,GAAG;QACxBC,SAASA,OAAOC,SAAS,CAAC,GAAGD,OAAON,MAAM,GAAG,KAAK;IACpD;IAEA,OAAOM;AACT;AAEA,OAAO,SAASE,0BAA0BF,MAAc;IACtD,MAAMD,MAAMC,OAAON,MAAM;IACzB,IAAIS,eAAeH,OAAON,MAAM,GAAG;IACnC,IAAID;IACJ,IAAIW,IAAI;IACR,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IAEJ,IAAIR,MAAM,CAACA,OAAON,MAAM,GAAG,EAAE,KAAK,KAAK;QACrCS;QACA,IAAIH,MAAM,CAACA,OAAON,MAAM,GAAG,EAAE,KAAK,KAAK;YACrCS;QACF;IACF;IAEA,MAAMN,cAAc,IAAIY,YAAYN;IACpC,MAAML,QAAQ,IAAIN,WAAWK;IAE7B,IAAKJ,IAAI,GAAGA,IAAIM,KAAKN,KAAK,EAAG;QAC3BY,WAAWd,MAAM,CAACS,OAAOL,UAAU,CAACF,GAAG;QACvCa,WAAWf,MAAM,CAACS,OAAOL,UAAU,CAACF,IAAI,GAAG;QAC3Cc,WAAWhB,MAAM,CAACS,OAAOL,UAAU,CAACF,IAAI,GAAG;QAC3Ce,WAAWjB,MAAM,CAACS,OAAOL,UAAU,CAACF,IAAI,GAAG;QAE3CK,KAAK,CAACM,IAAI,GAAG,AAACC,YAAY,IAAMC,YAAY;QAC5CR,KAAK,CAACM,IAAI,GAAG,AAAEE,CAAAA,WAAW,EAAC,KAAM,IAAMC,YAAY;QACnDT,KAAK,CAACM,IAAI,GAAG,AAAEG,CAAAA,WAAW,CAAA,KAAM,IAAMC,WAAW;IACnD;IAEA,OAAOX;AACT"}
1
+ {"version":3,"sources":["../../src/io/base64.ts"],"sourcesContent":["// https://github.com/niklasvh/base64-arraybuffer/blob/master/src/index.ts\n\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport function encodeArrayBufferToBase64(arraybuffer: ArrayBuffer): string {\n const bytes = new Uint8Array(arraybuffer);\n const len = bytes.length;\n let base64 = '';\n\n for (let i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n}\n\nexport function decodeBase64ToUint8Array(base64: string): Uint8Array {\n const len = base64.length;\n let bufferLength = base64.length * 0.75;\n let i;\n let p = 0;\n let encoded1;\n let encoded2;\n let encoded3;\n let encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength);\n const bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return bytes;\n}\n"],"names":["chars","lookup","Uint8Array","i","length","charCodeAt","encodeArrayBufferToBase64","arraybuffer","bytes","len","base64","substring","decodeBase64ToUint8Array","bufferLength","p","encoded1","encoded2","encoded3","encoded4","ArrayBuffer"],"mappings":"AAAA,0EAA0E;AAE1E,MAAMA,QAAQ;AAEd,wCAAwC;AACxC,MAAMC,SAAS,OAAOC,eAAe,cAAc,EAAE,GAAG,IAAIA,WAAW;AACvE,IAAK,IAAIC,IAAI,GAAGA,IAAIH,MAAMI,MAAM,EAAED,IAAK;IACrCF,MAAM,CAACD,MAAMK,UAAU,CAACF,GAAG,GAAGA;AAChC;AAEA,OAAO,SAASG,0BAA0BC,WAAwB;IAChE,MAAMC,QAAQ,IAAIN,WAAWK;IAC7B,MAAME,MAAMD,MAAMJ,MAAM;IACxB,IAAIM,SAAS;IAEb,IAAK,IAAIP,IAAI,GAAGA,IAAIM,KAAKN,KAAK,EAAG;QAC/BO,UAAUV,KAAK,CAACQ,KAAK,CAACL,EAAE,IAAI,EAAE;QAC9BO,UAAUV,KAAK,CAAC,AAAEQ,CAAAA,KAAK,CAACL,EAAE,GAAG,CAAA,KAAM,IAAMK,KAAK,CAACL,IAAI,EAAE,IAAI,EAAG;QAC5DO,UAAUV,KAAK,CAAC,AAAEQ,CAAAA,KAAK,CAACL,IAAI,EAAE,GAAG,EAAC,KAAM,IAAMK,KAAK,CAACL,IAAI,EAAE,IAAI,EAAG;QACjEO,UAAUV,KAAK,CAACQ,KAAK,CAACL,IAAI,EAAE,GAAG,GAAG;IACpC;IAEA,IAAIM,MAAM,MAAM,GAAG;QACjBC,SAASA,OAAOC,SAAS,CAAC,GAAGD,OAAON,MAAM,GAAG,KAAK;IACpD,OAAO,IAAIK,MAAM,MAAM,GAAG;QACxBC,SAASA,OAAOC,SAAS,CAAC,GAAGD,OAAON,MAAM,GAAG,KAAK;IACpD;IAEA,OAAOM;AACT;AAEA,OAAO,SAASE,yBAAyBF,MAAc;IACrD,MAAMD,MAAMC,OAAON,MAAM;IACzB,IAAIS,eAAeH,OAAON,MAAM,GAAG;IACnC,IAAID;IACJ,IAAIW,IAAI;IACR,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IAEJ,IAAIR,MAAM,CAACA,OAAON,MAAM,GAAG,EAAE,KAAK,KAAK;QACrCS;QACA,IAAIH,MAAM,CAACA,OAAON,MAAM,GAAG,EAAE,KAAK,KAAK;YACrCS;QACF;IACF;IAEA,MAAMN,cAAc,IAAIY,YAAYN;IACpC,MAAML,QAAQ,IAAIN,WAAWK;IAE7B,IAAKJ,IAAI,GAAGA,IAAIM,KAAKN,KAAK,EAAG;QAC3BY,WAAWd,MAAM,CAACS,OAAOL,UAAU,CAACF,GAAG;QACvCa,WAAWf,MAAM,CAACS,OAAOL,UAAU,CAACF,IAAI,GAAG;QAC3Cc,WAAWhB,MAAM,CAACS,OAAOL,UAAU,CAACF,IAAI,GAAG;QAC3Ce,WAAWjB,MAAM,CAACS,OAAOL,UAAU,CAACF,IAAI,GAAG;QAE3CK,KAAK,CAACM,IAAI,GAAG,AAACC,YAAY,IAAMC,YAAY;QAC5CR,KAAK,CAACM,IAAI,GAAG,AAAEE,CAAAA,WAAW,EAAC,KAAM,IAAMC,YAAY;QACnDT,KAAK,CAACM,IAAI,GAAG,AAAEG,CAAAA,WAAW,CAAA,KAAM,IAAMC,WAAW;IACnD;IAEA,OAAOV;AACT"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/io/dump.ts"],"sourcesContent":["import { ArrayBuffers } from './ArrayBuffers';\n\nexport function toHexDump(data: BufferSource) {\n return Array.from(ArrayBuffers.toHex(data).match(/.{1,32}/g) ?? [])\n .map((v, i) => {\n let idxPrefix = `${i.toString(16).padStart(8, '0')}:`;\n let content = Array.from(v.match(/.{4}/g) ?? []).join(' ');\n let chars = Array.from(new Uint8Array(ArrayBuffers.fromHex(v).buffer)).map((v) => {\n let c = String.fromCharCode(v);\n if (v < 32 || v > 126) {\n c = '.';\n }\n return c;\n });\n return [idxPrefix, content.padEnd(40, ' '), chars.join('')].join(' ');\n })\n .join('\\n');\n}\n\n/**\n * Chrome Websocket Binary format\n * ```\n * 00000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................\n * ```\n */\nexport function fromHexDump(dump: string) {\n return ArrayBuffers.fromHex(\n dump\n .split('\\n')\n .map((v) => {\n return v.substring(10, 10 + 41).replaceAll(' ', '');\n })\n .join(''),\n );\n}\n"],"names":["ArrayBuffers","toHexDump","data","Array","from","toHex","match","map","v","i","idxPrefix","toString","padStart","content","join","chars","Uint8Array","fromHex","buffer","c","String","fromCharCode","padEnd","fromHexDump","dump","split","substring","replaceAll"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAE9C,OAAO,SAASC,UAAUC,IAAkB;IAC1C,OAAOC,MAAMC,IAAI,CAACJ,aAAaK,KAAK,CAACH,MAAMI,KAAK,CAAC,eAAe,EAAE,EAC/DC,GAAG,CAAC,CAACC,GAAGC;QACP,IAAIC,YAAY,CAAC,EAAED,EAAEE,QAAQ,CAAC,IAAIC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC;QACrD,IAAIC,UAAUV,MAAMC,IAAI,CAACI,EAAEF,KAAK,CAAC,YAAY,EAAE,EAAEQ,IAAI,CAAC;QACtD,IAAIC,QAAQZ,MAAMC,IAAI,CAAC,IAAIY,WAAWhB,aAAaiB,OAAO,CAACT,GAAGU,MAAM,GAAGX,GAAG,CAAC,CAACC;YAC1E,IAAIW,IAAIC,OAAOC,YAAY,CAACb;YAC5B,IAAIA,IAAI,MAAMA,IAAI,KAAK;gBACrBW,IAAI;YACN;YACA,OAAOA;QACT;QACA,OAAO;YAACT;YAAWG,QAAQS,MAAM,CAAC,IAAI;YAAMP,MAAMD,IAAI,CAAC;SAAI,CAACA,IAAI,CAAC;IACnE,GACCA,IAAI,CAAC;AACV;AAEA;;;;;CAKC,GACD,OAAO,SAASS,YAAYC,IAAY;IACtC,OAAOxB,aAAaiB,OAAO,CACzBO,KACGC,KAAK,CAAC,MACNlB,GAAG,CAAC,CAACC;QACJ,OAAOA,EAAEkB,SAAS,CAAC,IAAI,KAAK,IAAIC,UAAU,CAAC,KAAK;IAClD,GACCb,IAAI,CAAC;AAEZ"}
1
+ {"version":3,"sources":["../../src/io/dump.ts"],"sourcesContent":["import { ArrayBuffers } from './ArrayBuffers';\n\nexport function toHexDump(data: BufferSource) {\n return Array.from(ArrayBuffers.toHex(data).match(/.{1,32}/g) ?? [])\n .map((v, i) => {\n let idxPrefix = `${i.toString(16).padStart(8, '0')}:`;\n let content = Array.from(v.match(/.{4}/g) ?? []).join(' ');\n let chars = Array.from(new Uint8Array(ArrayBuffers.fromHex(v).buffer)).map((v) => {\n let c = String.fromCharCode(v);\n if (v < 32 || v > 126) {\n c = '.';\n }\n return c;\n });\n return [idxPrefix, content.padEnd(40, ' '), chars.join('')].join(' ');\n })\n .join('\\n');\n}\n\n/**\n * Chrome Websocket Binary format\n * ```\n * 00000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................\n * ```\n */\nexport function fromHexDump(dump: string) {\n return ArrayBuffers.fromHex(\n dump\n .split('\\n')\n .map((v) => {\n return v.substring(10, 10 + 41).replaceAll(' ', '');\n })\n .join(''),\n );\n}\n"],"names":["ArrayBuffers","toHexDump","data","Array","from","toHex","match","map","v","i","idxPrefix","toString","padStart","content","join","chars","Uint8Array","fromHex","buffer","c","String","fromCharCode","padEnd","fromHexDump","dump","split","substring","replaceAll"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAE9C,OAAO,SAASC,UAAUC,IAAkB;IAC1C,OAAOC,MAAMC,IAAI,CAACJ,aAAaK,KAAK,CAACH,MAAMI,KAAK,CAAC,eAAe,EAAE,EAC/DC,GAAG,CAAC,CAACC,GAAGC;QACP,IAAIC,YAAY,GAAGD,EAAEE,QAAQ,CAAC,IAAIC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC;QACrD,IAAIC,UAAUV,MAAMC,IAAI,CAACI,EAAEF,KAAK,CAAC,YAAY,EAAE,EAAEQ,IAAI,CAAC;QACtD,IAAIC,QAAQZ,MAAMC,IAAI,CAAC,IAAIY,WAAWhB,aAAaiB,OAAO,CAACT,GAAGU,MAAM,GAAGX,GAAG,CAAC,CAACC;YAC1E,IAAIW,IAAIC,OAAOC,YAAY,CAACb;YAC5B,IAAIA,IAAI,MAAMA,IAAI,KAAK;gBACrBW,IAAI;YACN;YACA,OAAOA;QACT;QACA,OAAO;YAACT;YAAWG,QAAQS,MAAM,CAAC,IAAI;YAAMP,MAAMD,IAAI,CAAC;SAAI,CAACA,IAAI,CAAC;IACnE,GACCA,IAAI,CAAC;AACV;AAEA;;;;;CAKC,GACD,OAAO,SAASS,YAAYC,IAAY;IACtC,OAAOxB,aAAaiB,OAAO,CACzBO,KACGC,KAAK,CAAC,MACNlB,GAAG,CAAC,CAACC;QACJ,OAAOA,EAAEkB,SAAS,CAAC,IAAI,KAAK,IAAIC,UAAU,CAAC,KAAK;IAClD,GACCb,IAAI,CAAC;AAEZ"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/io/isBuffer.ts"],"sourcesContent":["/**\n * check {@link obj} is Buffer\n *\n * @see {@link https://github.com/feross/is-buffer feross/is-buffer}\n */\nexport function isBuffer(obj: any): obj is Buffer {\n return obj?.constructor?.isBuffer?.(obj);\n}\n"],"names":["isBuffer","obj","constructor"],"rangeMappings":";;;;;;","mappings":"AAAA;;;;CAIC,GACD,OAAO,SAASA,SAASC,GAAQ;IAC/B,OAAOA,KAAKC,aAAaF,WAAWC;AACtC"}
1
+ {"version":3,"sources":["../../src/io/isBuffer.ts"],"sourcesContent":["/**\n * check {@link obj} is Buffer\n *\n * @see {@link https://github.com/feross/is-buffer feross/is-buffer}\n */\nexport function isBuffer(obj: any): obj is Buffer {\n return obj?.constructor?.isBuffer?.(obj);\n}\n"],"names":["isBuffer","obj","constructor"],"mappings":"AAAA;;;;CAIC,GACD,OAAO,SAASA,SAASC,GAAQ;IAC/B,OAAOA,KAAKC,aAAaF,WAAWC;AACtC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/io/isTransferable.ts"],"sourcesContent":["import { getGlobalThis } from '../runtime/getGlobalThis';\n\nconst globalThis = getGlobalThis();\n\n/**\n * transferable object pass between workers, can work with structuredClone\n *\n * - Chrome 87, FF 103, Safari X, NodeJS X\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Glossary/Transferable_objects | Transferable objects}\n */\nexport function isTransferable(v: any): v is TransferableObject {\n _ctors ||= ctors();\n return _ctors.some((ctor) => v instanceof ctor);\n}\n\nlet _ctors: any[];\n\nfunction ctors() {\n const o: any = globalThis.window || globalThis || global;\n return [\n o.ArrayBuffer,\n o.MessagePort,\n o.ReadableStream,\n o.WritableStream,\n o.TransformStream,\n o.AudioData,\n o.ImageBitmap,\n o.VideoFrame,\n o.OffscreenCanvas,\n o.RTCDataChannel,\n ].filter(Boolean);\n}\n\nexport type TransferableObject =\n | Transferable\n | ArrayBuffer\n | MessagePort\n | ReadableStream\n | WritableStream\n | TransformStream\n | AudioData\n | ImageBitmap\n | VideoFrame\n | OffscreenCanvas\n | RTCDataChannel;\n\ndeclare global {\n interface OffscreenCanvas {}\n\n interface VideoFrame {}\n\n interface AudioData {}\n}\n"],"names":["getGlobalThis","globalThis","isTransferable","v","_ctors","ctors","some","ctor","o","window","global","ArrayBuffer","MessagePort","ReadableStream","WritableStream","TransformStream","AudioData","ImageBitmap","VideoFrame","OffscreenCanvas","RTCDataChannel","filter","Boolean"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,aAAa,QAAQ,2BAA2B;AAEzD,MAAMC,aAAaD;AAEnB;;;;;;CAMC,GACD,OAAO,SAASE,eAAeC,CAAM;IACnCC,WAAWC;IACX,OAAOD,OAAOE,IAAI,CAAC,CAACC,OAASJ,aAAaI;AAC5C;AAEA,IAAIH;AAEJ,SAASC;IACP,MAAMG,IAASP,WAAWQ,MAAM,IAAIR,cAAcS;IAClD,OAAO;QACLF,EAAEG,WAAW;QACbH,EAAEI,WAAW;QACbJ,EAAEK,cAAc;QAChBL,EAAEM,cAAc;QAChBN,EAAEO,eAAe;QACjBP,EAAEQ,SAAS;QACXR,EAAES,WAAW;QACbT,EAAEU,UAAU;QACZV,EAAEW,eAAe;QACjBX,EAAEY,cAAc;KACjB,CAACC,MAAM,CAACC;AACX"}
1
+ {"version":3,"sources":["../../src/io/isTransferable.ts"],"sourcesContent":["import { getGlobalThis } from '../runtime/getGlobalThis';\n\nconst globalThis = getGlobalThis();\n\n/**\n * transferable object pass between workers, can work with structuredClone\n *\n * - Chrome 87, FF 103, Safari X, NodeJS X\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Glossary/Transferable_objects | Transferable objects}\n */\nexport function isTransferable(v: any): v is TransferableObject {\n _ctors ||= ctors();\n return _ctors.some((ctor) => v instanceof ctor);\n}\n\nlet _ctors: any[];\n\nfunction ctors() {\n const o: any = globalThis.window || globalThis || global;\n return [\n o.ArrayBuffer,\n o.MessagePort,\n o.ReadableStream,\n o.WritableStream,\n o.TransformStream,\n o.AudioData,\n o.ImageBitmap,\n o.VideoFrame,\n o.OffscreenCanvas,\n o.RTCDataChannel,\n ].filter(Boolean);\n}\n\nexport type TransferableObject =\n | Transferable\n | ArrayBuffer\n | MessagePort\n | ReadableStream\n | WritableStream\n | TransformStream\n | AudioData\n | ImageBitmap\n | VideoFrame\n | OffscreenCanvas\n | RTCDataChannel;\n\ndeclare global {\n interface OffscreenCanvas {}\n\n interface VideoFrame {}\n\n interface AudioData {}\n}\n"],"names":["getGlobalThis","globalThis","isTransferable","v","_ctors","ctors","some","ctor","o","window","global","ArrayBuffer","MessagePort","ReadableStream","WritableStream","TransformStream","AudioData","ImageBitmap","VideoFrame","OffscreenCanvas","RTCDataChannel","filter","Boolean"],"mappings":"AAAA,SAASA,aAAa,QAAQ,2BAA2B;AAEzD,MAAMC,aAAaD;AAEnB;;;;;;CAMC,GACD,OAAO,SAASE,eAAeC,CAAM;IACnCC,WAAWC;IACX,OAAOD,OAAOE,IAAI,CAAC,CAACC,OAASJ,aAAaI;AAC5C;AAEA,IAAIH;AAEJ,SAASC;IACP,MAAMG,IAASP,WAAWQ,MAAM,IAAIR,cAAcS;IAClD,OAAO;QACLF,EAAEG,WAAW;QACbH,EAAEI,WAAW;QACbJ,EAAEK,cAAc;QAChBL,EAAEM,cAAc;QAChBN,EAAEO,eAAe;QACjBP,EAAEQ,SAAS;QACXR,EAAES,WAAW;QACbT,EAAEU,UAAU;QACZV,EAAEW,eAAe;QACjBX,EAAEY,cAAc;KACjB,CAACC,MAAM,CAACC;AACX"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/io/parseDataUri.ts"],"sourcesContent":["import { ArrayBuffers } from './ArrayBuffers';\n\nexport interface ParsedDataUri {\n type: string;\n params: Record<string, string | boolean>;\n content: string;\n base64: boolean;\n\n getData(enc: 'utf-8' | 'base64'): Promise<string>;\n\n getData(): Promise<ArrayBuffer>;\n}\n\nexport function parseDataUri(data: string): undefined | ParsedDataUri {\n if (!data || !data.startsWith('data:')) {\n return;\n }\n // https://en.wikipedia.org/wiki/Data_URI_scheme\n // data:content/type;base64,\n // data:content/type;a=b,content\n const [header, body] = data.split(',');\n const [type, ...paramsStr] = header.slice('data:'.length).split(';');\n const content = body;\n const params: Record<string, string | boolean> = Object.fromEntries(\n paramsStr.map((s) => {\n const [k, v] = s.trim().split('=');\n return [k, v ?? true];\n }),\n );\n // params charset=utf-8\n // params base64\n // params a=b\n let base64 = Boolean(params['base64']);\n return {\n type,\n params,\n content,\n base64,\n getData: async (enc?: 'utf-8' | 'base64') => {\n if (!enc) {\n return await fetch(data).then((v) => v.arrayBuffer());\n }\n //\n let buf: BufferSource;\n if (base64) {\n if (enc === 'base64') {\n return content;\n }\n buf = await fetch(data).then((v) => v.arrayBuffer());\n } else {\n let raw = decodeURIComponent(content);\n if (enc === 'utf-8') {\n return raw;\n }\n buf = ArrayBuffers.from(raw, 'utf-8');\n }\n if (enc === 'utf-8') {\n return new TextDecoder(enc).decode(buf);\n }\n if (enc === 'base64') {\n return ArrayBuffers.toString(buf, 'base64');\n }\n return buf;\n },\n } as ParsedDataUri;\n}\n"],"names":["ArrayBuffers","parseDataUri","data","startsWith","header","body","split","type","paramsStr","slice","length","content","params","Object","fromEntries","map","s","k","v","trim","base64","Boolean","getData","enc","fetch","then","arrayBuffer","buf","raw","decodeURIComponent","from","TextDecoder","decode","toString"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAa9C,OAAO,SAASC,aAAaC,IAAY;IACvC,IAAI,CAACA,QAAQ,CAACA,KAAKC,UAAU,CAAC,UAAU;QACtC;IACF;IACA,gDAAgD;IAChD,4BAA4B;IAC5B,gCAAgC;IAChC,MAAM,CAACC,QAAQC,KAAK,GAAGH,KAAKI,KAAK,CAAC;IAClC,MAAM,CAACC,MAAM,GAAGC,UAAU,GAAGJ,OAAOK,KAAK,CAAC,QAAQC,MAAM,EAAEJ,KAAK,CAAC;IAChE,MAAMK,UAAUN;IAChB,MAAMO,SAA2CC,OAAOC,WAAW,CACjEN,UAAUO,GAAG,CAAC,CAACC;QACb,MAAM,CAACC,GAAGC,EAAE,GAAGF,EAAEG,IAAI,GAAGb,KAAK,CAAC;QAC9B,OAAO;YAACW;YAAGC,KAAK;SAAK;IACvB;IAEF,uBAAuB;IACvB,gBAAgB;IAChB,aAAa;IACb,IAAIE,SAASC,QAAQT,MAAM,CAAC,SAAS;IACrC,OAAO;QACLL;QACAK;QACAD;QACAS;QACAE,SAAS,OAAOC;YACd,IAAI,CAACA,KAAK;gBACR,OAAO,MAAMC,MAAMtB,MAAMuB,IAAI,CAAC,CAACP,IAAMA,EAAEQ,WAAW;YACpD;YACA,EAAE;YACF,IAAIC;YACJ,IAAIP,QAAQ;gBACV,IAAIG,QAAQ,UAAU;oBACpB,OAAOZ;gBACT;gBACAgB,MAAM,MAAMH,MAAMtB,MAAMuB,IAAI,CAAC,CAACP,IAAMA,EAAEQ,WAAW;YACnD,OAAO;gBACL,IAAIE,MAAMC,mBAAmBlB;gBAC7B,IAAIY,QAAQ,SAAS;oBACnB,OAAOK;gBACT;gBACAD,MAAM3B,aAAa8B,IAAI,CAACF,KAAK;YAC/B;YACA,IAAIL,QAAQ,SAAS;gBACnB,OAAO,IAAIQ,YAAYR,KAAKS,MAAM,CAACL;YACrC;YACA,IAAIJ,QAAQ,UAAU;gBACpB,OAAOvB,aAAaiC,QAAQ,CAACN,KAAK;YACpC;YACA,OAAOA;QACT;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/io/parseDataUri.ts"],"sourcesContent":["import { ArrayBuffers } from './ArrayBuffers';\n\nexport interface ParsedDataUri {\n type: string;\n params: Record<string, string | boolean>;\n content: string;\n base64: boolean;\n\n getData(enc: 'utf-8' | 'base64'): Promise<string>;\n\n getData(): Promise<ArrayBuffer>;\n}\n\nexport function parseDataUri(data: string): undefined | ParsedDataUri {\n if (!data || !data.startsWith('data:')) {\n return;\n }\n // https://en.wikipedia.org/wiki/Data_URI_scheme\n // data:content/type;base64,\n // data:content/type;a=b,content\n const [header, body] = data.split(',');\n const [type, ...paramsStr] = header.slice('data:'.length).split(';');\n const content = body;\n const params: Record<string, string | boolean> = Object.fromEntries(\n paramsStr.map((s) => {\n const [k, v] = s.trim().split('=');\n return [k, v ?? true];\n }),\n );\n // params charset=utf-8\n // params base64\n // params a=b\n let base64 = Boolean(params['base64']);\n return {\n type,\n params,\n content,\n base64,\n getData: async (enc?: 'utf-8' | 'base64') => {\n if (!enc) {\n return await fetch(data).then((v) => v.arrayBuffer());\n }\n //\n let buf: BufferSource;\n if (base64) {\n if (enc === 'base64') {\n return content;\n }\n buf = await fetch(data).then((v) => v.arrayBuffer());\n } else {\n let raw = decodeURIComponent(content);\n if (enc === 'utf-8') {\n return raw;\n }\n buf = ArrayBuffers.from(raw, 'utf-8');\n }\n if (enc === 'utf-8') {\n return new TextDecoder(enc).decode(buf);\n }\n if (enc === 'base64') {\n return ArrayBuffers.toString(buf, 'base64');\n }\n return buf;\n },\n } as ParsedDataUri;\n}\n"],"names":["ArrayBuffers","parseDataUri","data","startsWith","header","body","split","type","paramsStr","slice","length","content","params","Object","fromEntries","map","s","k","v","trim","base64","Boolean","getData","enc","fetch","then","arrayBuffer","buf","raw","decodeURIComponent","from","TextDecoder","decode","toString"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAa9C,OAAO,SAASC,aAAaC,IAAY;IACvC,IAAI,CAACA,QAAQ,CAACA,KAAKC,UAAU,CAAC,UAAU;QACtC;IACF;IACA,gDAAgD;IAChD,4BAA4B;IAC5B,gCAAgC;IAChC,MAAM,CAACC,QAAQC,KAAK,GAAGH,KAAKI,KAAK,CAAC;IAClC,MAAM,CAACC,MAAM,GAAGC,UAAU,GAAGJ,OAAOK,KAAK,CAAC,QAAQC,MAAM,EAAEJ,KAAK,CAAC;IAChE,MAAMK,UAAUN;IAChB,MAAMO,SAA2CC,OAAOC,WAAW,CACjEN,UAAUO,GAAG,CAAC,CAACC;QACb,MAAM,CAACC,GAAGC,EAAE,GAAGF,EAAEG,IAAI,GAAGb,KAAK,CAAC;QAC9B,OAAO;YAACW;YAAGC,KAAK;SAAK;IACvB;IAEF,uBAAuB;IACvB,gBAAgB;IAChB,aAAa;IACb,IAAIE,SAASC,QAAQT,MAAM,CAAC,SAAS;IACrC,OAAO;QACLL;QACAK;QACAD;QACAS;QACAE,SAAS,OAAOC;YACd,IAAI,CAACA,KAAK;gBACR,OAAO,MAAMC,MAAMtB,MAAMuB,IAAI,CAAC,CAACP,IAAMA,EAAEQ,WAAW;YACpD;YACA,EAAE;YACF,IAAIC;YACJ,IAAIP,QAAQ;gBACV,IAAIG,QAAQ,UAAU;oBACpB,OAAOZ;gBACT;gBACAgB,MAAM,MAAMH,MAAMtB,MAAMuB,IAAI,CAAC,CAACP,IAAMA,EAAEQ,WAAW;YACnD,OAAO;gBACL,IAAIE,MAAMC,mBAAmBlB;gBAC7B,IAAIY,QAAQ,SAAS;oBACnB,OAAOK;gBACT;gBACAD,MAAM3B,aAAa8B,IAAI,CAACF,KAAK;YAC/B;YACA,IAAIL,QAAQ,SAAS;gBACnB,OAAO,IAAIQ,YAAYR,KAAKS,MAAM,CAACL;YACrC;YACA,IAAIJ,QAAQ,UAAU;gBACpB,OAAOvB,aAAaiC,QAAQ,CAACN,KAAK;YACpC;YACA,OAAOA;QACT;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/langs/MaybeFunction.ts"],"sourcesContent":["export type MaybeFunction<T, P extends any[] = any[]> = T | ((...args: P) => T);\n\nexport function maybeFunction<T, P extends any[] = any[]>(v: MaybeFunction<T, P>, ...args: P): T {\n // https://github.com/microsoft/TypeScript/issues/37663#issuecomment-759728342\n if (v instanceof Function) {\n return v(...args);\n }\n return v;\n}\n"],"names":["maybeFunction","v","args","Function"],"rangeMappings":";;;;;;","mappings":"AAEA,OAAO,SAASA,cAA0CC,CAAsB,EAAE,GAAGC,IAAO;IAC1F,8EAA8E;IAC9E,IAAID,aAAaE,UAAU;QACzB,OAAOF,KAAKC;IACd;IACA,OAAOD;AACT"}
1
+ {"version":3,"sources":["../../src/langs/MaybeFunction.ts"],"sourcesContent":["export type MaybeFunction<T, P extends any[] = any[]> = T | ((...args: P) => T);\n\nexport function maybeFunction<T, P extends any[] = any[]>(v: MaybeFunction<T, P>, ...args: P): T {\n // https://github.com/microsoft/TypeScript/issues/37663#issuecomment-759728342\n if (v instanceof Function) {\n return v(...args);\n }\n return v;\n}\n"],"names":["maybeFunction","v","args","Function"],"mappings":"AAEA,OAAO,SAASA,cAA0CC,CAAsB,EAAE,GAAGC,IAAO;IAC1F,8EAA8E;IAC9E,IAAID,aAAaE,UAAU;QACzB,OAAOF,KAAKC;IACd;IACA,OAAOD;AACT"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/langs/classOf.ts"],"sourcesContent":["export function classOf(o: any) {\n return Object.prototype.toString.call(o).slice(8, -1);\n}\n"],"names":["classOf","o","Object","prototype","toString","call","slice"],"rangeMappings":";;","mappings":"AAAA,OAAO,SAASA,QAAQC,CAAM;IAC5B,OAAOC,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACJ,GAAGK,KAAK,CAAC,GAAG,CAAC;AACrD"}
1
+ {"version":3,"sources":["../../src/langs/classOf.ts"],"sourcesContent":["export function classOf(o: any) {\n return Object.prototype.toString.call(o).slice(8, -1);\n}\n"],"names":["classOf","o","Object","prototype","toString","call","slice"],"mappings":"AAAA,OAAO,SAASA,QAAQC,CAAM;IAC5B,OAAOC,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACJ,GAAGK,KAAK,CAAC,GAAG,CAAC;AACrD"}
@@ -1 +1 @@
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"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/langs/deepEqual.ts"],"sourcesContent":["const has = Object.prototype.hasOwnProperty;\nconst hasElementType = typeof Element !== 'undefined';\n\nfunction find(iter: any, tar: any, key?: any) {\n for (key of iter.keys()) {\n if (deepEqual(key, tar)) return key;\n }\n}\n\n/**\n * deep equal - support react, dom, Date, RegExp, Array, ArrayBuffer, Set, Map, Object\n * @see {@link https://github.com/lukeed/dequal/blob/master/src/lite.js dequal/src/lite.js}\n * @see {@link https://github.com/FormidableLabs/react-fast-compare/blob/master/index.js react-fast-compare/index.js}\n */\nexport function deepEqual(foo: any, bar: any) {\n let ctor, len, tmp;\n if (foo === bar) return true;\n\n if (foo && bar && (ctor = foo.constructor) === bar.constructor) {\n if (ctor === Date) return foo.getTime() === bar.getTime();\n if (ctor === RegExp) return foo.toString() === bar.toString();\n\n if (ctor === Array) {\n if ((len = foo.length) === bar.length) {\n while (len-- && deepEqual(foo[len], bar[len]));\n }\n return len === -1;\n }\n\n if (ctor === Set) {\n if (foo.size !== bar.size) {\n return false;\n }\n for (len of foo) {\n tmp = len;\n if (tmp && typeof tmp === 'object') {\n tmp = find(bar, tmp);\n if (!tmp) return false;\n }\n if (!bar.has(tmp)) return false;\n }\n return true;\n }\n\n if (ctor === Map) {\n if (foo.size !== bar.size) {\n return false;\n }\n for (len of foo) {\n tmp = len[0];\n if (tmp && typeof tmp === 'object') {\n tmp = find(bar, tmp);\n if (!tmp) return false;\n }\n if (!deepEqual(len[1], bar.get(tmp))) {\n return false;\n }\n }\n return true;\n }\n\n if (ctor === ArrayBuffer) {\n foo = new Uint8Array(foo);\n bar = new Uint8Array(bar);\n } else if (ctor === DataView) {\n if ((len = foo.byteLength) === bar.byteLength) {\n while (len-- && foo.getInt8(len) === bar.getInt8(len));\n }\n return len === -1;\n }\n\n if (ArrayBuffer.isView(foo)) {\n if ((len = foo.byteLength) === bar.byteLength) {\n while (len-- && (foo as any)[len] === bar[len]);\n }\n return len === -1;\n }\n\n // react & dom\n if (hasElementType && foo instanceof Element) return false;\n\n if (!ctor || typeof foo === 'object') {\n len = 0;\n for (ctor in foo) {\n if ((ctor === '_owner' || ctor === '__v' || ctor === '__o') && foo.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n if (!(ctor in bar) || !deepEqual(foo[ctor], bar[ctor])) return false;\n }\n return Object.keys(bar).length === len;\n }\n }\n\n // eslint-disable-next-line no-self-compare\n return foo !== foo && bar !== bar;\n}\n"],"names":["has","Object","prototype","hasOwnProperty","hasElementType","Element","find","iter","tar","key","keys","deepEqual","foo","bar","ctor","len","tmp","constructor","Date","getTime","RegExp","toString","Array","length","Set","size","Map","get","ArrayBuffer","Uint8Array","DataView","byteLength","getInt8","isView","$$typeof","call"],"mappings":"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"}
@@ -1 +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"],"rangeMappings":";;;;;;;;;;;;;;;;;","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"}
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,17 @@
1
+ import { computeIfAbsent, getGlobalThis } from '@wener/utils';
2
+ let _holder;
3
+ export function setGlobalStates(states) {
4
+ _holder = states;
5
+ }
6
+ export function getGlobalStates(key, create) {
7
+ _holder ||= getGlobalThis().__GLOBAL_STATES__ ||= {};
8
+ if (key) {
9
+ if (!create) {
10
+ return _holder[key];
11
+ }
12
+ return computeIfAbsent(_holder, key, create);
13
+ }
14
+ return _holder;
15
+ }
16
+
17
+ //# sourceMappingURL=getGlobalStates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/langs/getGlobalStates.ts"],"sourcesContent":["import { computeIfAbsent, getGlobalThis } from '@wener/utils';\n\nlet _holder: any;\n\nexport function setGlobalStates(states: Record<string, any>) {\n _holder = states;\n}\n\nexport function getGlobalStates(): Record<string, any>;\nexport function getGlobalStates<T>(key: string, create: () => T): T;\nexport function getGlobalStates<T>(key: string): T | undefined;\nexport function getGlobalStates(key?: string, create?: () => any): any {\n _holder ||= (getGlobalThis() as any).__GLOBAL_STATES__ ||= {};\n if (key) {\n if (!create) {\n return _holder[key];\n }\n return computeIfAbsent(_holder, key, create);\n }\n return _holder;\n}\n"],"names":["computeIfAbsent","getGlobalThis","_holder","setGlobalStates","states","getGlobalStates","key","create","__GLOBAL_STATES__"],"mappings":"AAAA,SAASA,eAAe,EAAEC,aAAa,QAAQ,eAAe;AAE9D,IAAIC;AAEJ,OAAO,SAASC,gBAAgBC,MAA2B;IACzDF,UAAUE;AACZ;AAKA,OAAO,SAASC,gBAAgBC,GAAY,EAAEC,MAAkB;IAC9DL,YAAY,AAACD,gBAAwBO,iBAAiB,KAAK,CAAC;IAC5D,IAAIF,KAAK;QACP,IAAI,CAACC,QAAQ;YACX,OAAOL,OAAO,CAACI,IAAI;QACrB;QACA,OAAON,gBAAgBE,SAASI,KAAKC;IACvC;IACA,OAAOL;AACT"}
@@ -0,0 +1,18 @@
1
+ import { getGlobalStates } from './getGlobalStates.js';
2
+ export function getObjectId(k) {
3
+ const state = getGlobalStates('ObjectId', ()=>{
4
+ return {
5
+ id: 1,
6
+ map: new WeakMap()
7
+ };
8
+ });
9
+ const { map } = state;
10
+ if (map.has(k)) {
11
+ return map.get(k);
12
+ }
13
+ const id = state.id++;
14
+ map.set(k, id);
15
+ return id;
16
+ }
17
+
18
+ //# sourceMappingURL=getObjectId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/langs/getObjectId.ts"],"sourcesContent":["import { getGlobalStates } from './getGlobalStates';\n\nexport function getObjectId(k: any): number {\n const state = getGlobalStates('ObjectId', () => {\n return {\n id: 1,\n map: new WeakMap(),\n };\n });\n\n const { map } = state;\n\n if (map.has(k)) {\n return map.get(k);\n }\n\n const id = state.id++;\n map.set(k, id);\n return id;\n}\n"],"names":["getGlobalStates","getObjectId","k","state","id","map","WeakMap","has","get","set"],"mappings":"AAAA,SAASA,eAAe,QAAQ,oBAAoB;AAEpD,OAAO,SAASC,YAAYC,CAAM;IAChC,MAAMC,QAAQH,gBAAgB,YAAY;QACxC,OAAO;YACLI,IAAI;YACJC,KAAK,IAAIC;QACX;IACF;IAEA,MAAM,EAAED,GAAG,EAAE,GAAGF;IAEhB,IAAIE,IAAIE,GAAG,CAACL,IAAI;QACd,OAAOG,IAAIG,GAAG,CAACN;IACjB;IAEA,MAAME,KAAKD,MAAMC,EAAE;IACnBC,IAAII,GAAG,CAACP,GAAGE;IACX,OAAOA;AACT"}
@@ -1 +1 @@
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"],"rangeMappings":";;","mappings":"AAAA,OAAO,SAASA,QAAQC,IAAS;IAC/B,OAAO,OAAOA,SAAS,cAAc,WAAWC,IAAI,CAACC,SAASC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACL;AACxF"}
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 +1 @@
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"],"rangeMappings":";;","mappings":"AAAA,OAAO,SAASA,UAAmBC,CAAI;IACrC,OAAOA,MAAM,QAAQA,MAAMC;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 +1 @@
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"],"rangeMappings":";;;","mappings":"AAAA,SAASA,aAAa,QAAQ,kBAAkB;AAEhD,OAAO,SAASC,cAAcC,CAAM;IAClC,OAAOF,cAAcE,MAAMC,OAAOC,IAAI,CAACF,GAAGG,MAAM,KAAK;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"}
@@ -1 +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"],"rangeMappings":";;","mappings":"AAAA,OAAO,SAASA,WAAWC,KAAU;IACnC,OAAO,OAAOA,UAAU;AAC1B"}
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"}
@@ -0,0 +1,5 @@
1
+ export function isNullish(value) {
2
+ return value === null || value === undefined;
3
+ }
4
+
5
+ //# sourceMappingURL=isNullish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/langs/isNullish.ts"],"sourcesContent":["export function isNullish(value: any): value is null | undefined {\n return value === null || value === undefined;\n}\n"],"names":["isNullish","value","undefined"],"mappings":"AAAA,OAAO,SAASA,UAAUC,KAAU;IAClC,OAAOA,UAAU,QAAQA,UAAUC;AACrC"}
@@ -1 +1 @@
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"],"rangeMappings":";;;;;;;","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
+ {"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 +1 @@
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"],"rangeMappings":";;;;;;;;;;;;;;;;;;;","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
+ {"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 +1 @@
1
- {"version":3,"sources":["../../src/langs/mixin.ts"],"sourcesContent":["/**\n * Helper type to convert a union to an intersection.\n *\n * @internal\n */\ntype UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer R) => any ? R : never;\n\n/**\n * Constructor function, that creates a new instance of the given type.\n *\n * @typeParam T The type of the instance to create.\n * @example ```ts\n * function Walkable<TBase extends MixinConstructor<Positionable>>(Base: TBase) {\n * ··return class Walkable extends Base {\n * ····public forward() { this.x++; }\n * ····public backward() { this.x--; }\n * ··};\n * }\n * ```\n * @example ```ts\n * function Loggable(Base: MixinConstructor) {\n * ··return class Loggable extends Base {\n * ····public log(message: string) { throw new Error(404); }\n * ··};\n * }\n * ```\n */\nexport type MixinConstructor<T = {}> = new (...args: any[]) => T;\n\n/**\n * Function that applies a mixin to a given base class.\n *\n * @typeParam T The type of the base class.\n * @typeParam R The type of the returned class.\n */\nexport type MixinFunction<T extends MixinConstructor = MixinConstructor, R extends T = T & MixinConstructor> = (\n Base: T,\n) => R;\n\n/**\n * The return type of the mixin function.\n *\n * @typeParam T The type of the base class.\n * @typeParam M The type of the mixin functions.\n */\nexport type MixinReturnValue<T extends MixinConstructor, M extends MixinFunction<T, any>[]> = UnionToIntersection<\n | T\n | {\n [K in keyof M]: M[K] extends MixinFunction<any, infer U> ? U : never;\n }[number]\n>;\n\n/**\n * The instance created by a mixin function.\n *\n * @typeParam F The type of the mixin function.\n */\nexport type MixinInstance<F extends MixinFunction<any>> =\n F extends MixinFunction<MixinConstructor<any>, infer R> ? InstanceType<R> : never;\n\n/**\n * Applies the given mixins to the a common base class.\n *\n * @param Base The base class to apply the mixins to.\n * @param mixins The mixins to apply. All mixins must extend a common base class or an empty class.\n * @returns A class constructor with all mixins applied.\n *\n * @typeParam T The type of the base class.\n * @typeParam M The type of the mixin functions.\n *\n * @example ```ts\n * class Dog extends mixin(Animal, FourLegged, Carnivore, PackHunting, Barking, Domesticated) {}\n * ```\n */\nexport function mixin<T extends MixinConstructor, M extends MixinFunction<T, any>[]>(\n Base: T,\n ...mixins: M\n): MixinReturnValue<T, M> {\n return mixins.reduce((mix, applyMixin) => applyMixin(mix), Base) as MixinReturnValue<T, M>;\n}\n\n// https://github.com/1nVitr0/lib-ts-mixin-extended\n"],"names":["mixin","Base","mixins","reduce","mix","applyMixin"],"rangeMappings":";;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;;;CAIC,GAwDD;;;;;;;;;;;;;CAaC,GACD,OAAO,SAASA,MACdC,IAAO,EACP,GAAGC,MAAS;IAEZ,OAAOA,OAAOC,MAAM,CAAC,CAACC,KAAKC,aAAeA,WAAWD,MAAMH;AAC7D,EAEA,mDAAmD"}
1
+ {"version":3,"sources":["../../src/langs/mixin.ts"],"sourcesContent":["/**\n * Helper type to convert a union to an intersection.\n *\n * @internal\n */\ntype UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer R) => any ? R : never;\n\n/**\n * Constructor function, that creates a new instance of the given type.\n *\n * @typeParam T The type of the instance to create.\n * @example ```ts\n * function Walkable<TBase extends MixinConstructor<Positionable>>(Base: TBase) {\n * ··return class Walkable extends Base {\n * ····public forward() { this.x++; }\n * ····public backward() { this.x--; }\n * ··};\n * }\n * ```\n * @example ```ts\n * function Loggable(Base: MixinConstructor) {\n * ··return class Loggable extends Base {\n * ····public log(message: string) { throw new Error(404); }\n * ··};\n * }\n * ```\n */\nexport type MixinConstructor<T = {}> = new (...args: any[]) => T;\n\n/**\n * Function that applies a mixin to a given base class.\n *\n * @typeParam T The type of the base class.\n * @typeParam R The type of the returned class.\n */\nexport type MixinFunction<T extends MixinConstructor = MixinConstructor, R extends T = T & MixinConstructor> = (\n Base: T,\n) => R;\n\n/**\n * The return type of the mixin function.\n *\n * @typeParam T The type of the base class.\n * @typeParam M The type of the mixin functions.\n */\nexport type MixinReturnValue<T extends MixinConstructor, M extends MixinFunction<T, any>[]> = UnionToIntersection<\n | T\n | {\n [K in keyof M]: M[K] extends MixinFunction<any, infer U> ? U : never;\n }[number]\n>;\n\n/**\n * The instance created by a mixin function.\n *\n * @typeParam F The type of the mixin function.\n */\nexport type MixinInstance<F extends MixinFunction<any>> =\n F extends MixinFunction<MixinConstructor<any>, infer R> ? InstanceType<R> : never;\n\n/**\n * Applies the given mixins to the a common base class.\n *\n * @param Base The base class to apply the mixins to.\n * @param mixins The mixins to apply. All mixins must extend a common base class or an empty class.\n * @returns A class constructor with all mixins applied.\n *\n * @typeParam T The type of the base class.\n * @typeParam M The type of the mixin functions.\n *\n * @example ```ts\n * class Dog extends mixin(Animal, FourLegged, Carnivore, PackHunting, Barking, Domesticated) {}\n * ```\n */\nexport function mixin<T extends MixinConstructor, M extends MixinFunction<T, any>[]>(\n Base: T,\n ...mixins: M\n): MixinReturnValue<T, M> {\n return mixins.reduce((mix, applyMixin) => applyMixin(mix), Base) as MixinReturnValue<T, M>;\n}\n\n// https://github.com/1nVitr0/lib-ts-mixin-extended\n"],"names":["mixin","Base","mixins","reduce","mix","applyMixin"],"mappings":"AAAA;;;;CAIC,GAwDD;;;;;;;;;;;;;CAaC,GACD,OAAO,SAASA,MACdC,IAAO,EACP,GAAGC,MAAS;IAEZ,OAAOA,OAAOC,MAAM,CAAC,CAACC,KAAKC,aAAeA,WAAWD,MAAMH;AAC7D,EAEA,mDAAmD"}
@@ -1 +1 @@
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"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;","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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/langs/shallowClone.ts"],"sourcesContent":["export function shallowClone<T>(obj: T): T {\n if (!obj) {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.slice() as T;\n }\n if (typeof obj === 'object') {\n return Object.assign({}, obj);\n }\n // skip Map, Set, WeakMap, WeakSet, Date, RegExp, etc.\n return obj;\n}\n"],"names":["shallowClone","obj","Array","isArray","slice","Object","assign"],"rangeMappings":";;;;;;;;;;;;","mappings":"AAAA,OAAO,SAASA,aAAgBC,GAAM;IACpC,IAAI,CAACA,KAAK;QACR,OAAOA;IACT;IACA,IAAIC,MAAMC,OAAO,CAACF,MAAM;QACtB,OAAOA,IAAIG,KAAK;IAClB;IACA,IAAI,OAAOH,QAAQ,UAAU;QAC3B,OAAOI,OAAOC,MAAM,CAAC,CAAC,GAAGL;IAC3B;IACA,sDAAsD;IACtD,OAAOA;AACT"}
1
+ {"version":3,"sources":["../../src/langs/shallowClone.ts"],"sourcesContent":["export function shallowClone<T>(obj: T): T {\n if (!obj) {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.slice() as T;\n }\n if (typeof obj === 'object') {\n return Object.assign({}, obj);\n }\n // skip Map, Set, WeakMap, WeakSet, Date, RegExp, etc.\n return obj;\n}\n"],"names":["shallowClone","obj","Array","isArray","slice","Object","assign"],"mappings":"AAAA,OAAO,SAASA,aAAgBC,GAAM;IACpC,IAAI,CAACA,KAAK;QACR,OAAOA;IACT;IACA,IAAIC,MAAMC,OAAO,CAACF,MAAM;QACtB,OAAOA,IAAIG,KAAK;IAClB;IACA,IAAI,OAAOH,QAAQ,UAAU;QAC3B,OAAOI,OAAOC,MAAM,CAAC,CAAC,GAAGL;IAC3B;IACA,sDAAsD;IACtD,OAAOA;AACT"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/langs/shallowEqual.ts"],"sourcesContent":["/**\n * shallow compare - support object, array\n *\n * @see {@link https://github.com/pmndrs/zustand/blob/main/src/shallow.ts zustand/src/shallow.ts}\n */\nexport function shallowEqual<T, U>(objA: T, objB: U) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (\n !Object.prototype.hasOwnProperty.call(objB, keysA[i]) ||\n !Object.is(objA[keysA[i] as keyof T], objB[keysA[i] as keyof U])\n ) {\n return false;\n }\n }\n return true;\n}\n"],"names":["shallowEqual","objA","objB","Object","is","keysA","keys","length","i","prototype","hasOwnProperty","call"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;;;CAIC,GACD,OAAO,SAASA,aAAmBC,IAAO,EAAEC,IAAO;IACjD,IAAIC,OAAOC,EAAE,CAACH,MAAMC,OAAO;QACzB,OAAO;IACT;IACA,IAAI,OAAOD,SAAS,YAAYA,SAAS,QAAQ,OAAOC,SAAS,YAAYA,SAAS,MAAM;QAC1F,OAAO;IACT;IACA,MAAMG,QAAQF,OAAOG,IAAI,CAACL;IAC1B,IAAII,MAAME,MAAM,KAAKJ,OAAOG,IAAI,CAACJ,MAAMK,MAAM,EAAE;QAC7C,OAAO;IACT;IACA,IAAK,IAAIC,IAAI,GAAGA,IAAIH,MAAME,MAAM,EAAEC,IAAK;QACrC,IACE,CAACL,OAAOM,SAAS,CAACC,cAAc,CAACC,IAAI,CAACT,MAAMG,KAAK,CAACG,EAAE,KACpD,CAACL,OAAOC,EAAE,CAACH,IAAI,CAACI,KAAK,CAACG,EAAE,CAAY,EAAEN,IAAI,CAACG,KAAK,CAACG,EAAE,CAAY,GAC/D;YACA,OAAO;QACT;IACF;IACA,OAAO;AACT"}
1
+ {"version":3,"sources":["../../src/langs/shallowEqual.ts"],"sourcesContent":["/**\n * shallow compare - support object, array\n *\n * @see {@link https://github.com/pmndrs/zustand/blob/main/src/shallow.ts zustand/src/shallow.ts}\n */\nexport function shallowEqual<T, U>(objA: T, objB: U) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (\n !Object.prototype.hasOwnProperty.call(objB, keysA[i]) ||\n !Object.is(objA[keysA[i] as keyof T], objB[keysA[i] as keyof U])\n ) {\n return false;\n }\n }\n return true;\n}\n"],"names":["shallowEqual","objA","objB","Object","is","keysA","keys","length","i","prototype","hasOwnProperty","call"],"mappings":"AAAA;;;;CAIC,GACD,OAAO,SAASA,aAAmBC,IAAO,EAAEC,IAAO;IACjD,IAAIC,OAAOC,EAAE,CAACH,MAAMC,OAAO;QACzB,OAAO;IACT;IACA,IAAI,OAAOD,SAAS,YAAYA,SAAS,QAAQ,OAAOC,SAAS,YAAYA,SAAS,MAAM;QAC1F,OAAO;IACT;IACA,MAAMG,QAAQF,OAAOG,IAAI,CAACL;IAC1B,IAAII,MAAME,MAAM,KAAKJ,OAAOG,IAAI,CAACJ,MAAMK,MAAM,EAAE;QAC7C,OAAO;IACT;IACA,IAAK,IAAIC,IAAI,GAAGA,IAAIH,MAAME,MAAM,EAAEC,IAAK;QACrC,IACE,CAACL,OAAOM,SAAS,CAACC,cAAc,CAACC,IAAI,CAACT,MAAMG,KAAK,CAACG,EAAE,KACpD,CAACL,OAAOC,EAAE,CAACH,IAAI,CAACI,KAAK,CAACG,EAAE,CAAY,EAAEN,IAAI,CAACG,KAAK,CAACG,EAAE,CAAY,GAC/D;YACA,OAAO;QACT;IACF;IACA,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/libs/ms.ts"],"sourcesContent":["// Helpers.\nconst s = 1000;\nconst m = s * 60;\nconst h = m * 60;\nconst d = h * 24;\nconst w = d * 7;\nconst y = d * 365.25;\n\ntype Unit =\n | 'Years'\n | 'Year'\n | 'Yrs'\n | 'Yr'\n | 'Y'\n | 'Weeks'\n | 'Week'\n | 'W'\n | 'Days'\n | 'Day'\n | 'D'\n | 'Hours'\n | 'Hour'\n | 'Hrs'\n | 'Hr'\n | 'H'\n | 'Minutes'\n | 'Minute'\n | 'Mins'\n | 'Min'\n | 'M'\n | 'Seconds'\n | 'Second'\n | 'Secs'\n | 'Sec'\n | 's'\n | 'Milliseconds'\n | 'Millisecond'\n | 'Msecs'\n | 'Msec'\n | 'Ms';\n\ntype UnitAnyCase = Unit | Uppercase<Unit> | Lowercase<Unit>;\n\nexport type StringValue = `${number}` | `${number}${UnitAnyCase}` | `${number} ${UnitAnyCase}`;\n\ninterface Options {\n /**\n * Set to `true` to use verbose formatting. Defaults to `false`.\n */\n long?: boolean;\n}\n\n/**\n * Parse or format the given value.\n *\n * @param value - The string or number to convert\n * @param options - Options for the conversion\n * @throws Error if `value` is not a non-empty string or a number\n */\nfunction msFn(value: StringValue, options?: Options): number;\nfunction msFn(value: number, options?: Options): string;\nfunction msFn(value: StringValue | number, options?: Options): number | string {\n try {\n if (typeof value === 'string' && value.length > 0) {\n return parse(value);\n } else if (typeof value === 'number' && isFinite(value)) {\n return options?.long ? fmtLong(value) : fmtShort(value);\n }\n throw new Error('Value is not a string or number.');\n } catch (error) {\n const message = isError(error)\n ? `${error.message}. value=${JSON.stringify(value)}`\n : 'An unknown error has occurred.';\n throw new Error(message);\n }\n}\n\n/**\n * Parse the given string and return milliseconds.\n *\n * @param str - A string to parse to milliseconds\n * @returns The parsed value in milliseconds, or `NaN` if the string can't be\n * parsed\n */\nfunction parse(str: string): number {\n if (str.length > 100) {\n throw new Error('Value exceeds the maximum length of 100 characters.');\n }\n const match =\n /^(?<value>-?(?:\\d+)?\\.?\\d+) *(?<type>milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str,\n );\n // Named capture groups need to be manually typed today.\n // https://github.com/microsoft/TypeScript/issues/32098\n const groups = match?.groups as { value: string; type?: string } | undefined;\n if (!groups) {\n return NaN;\n }\n const n = parseFloat(groups.value);\n const type = (groups.type || 'ms').toLowerCase() as Lowercase<Unit>;\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n // This should never occur.\n throw new Error(`The unit ${type as string} was matched, but no matching case exists.`);\n }\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default msFn;\n\n/**\n * Short format for `ms`.\n */\nfunction fmtShort(ms: number): StringValue {\n const msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return `${Math.round(ms / d)}d`;\n }\n if (msAbs >= h) {\n return `${Math.round(ms / h)}h`;\n }\n if (msAbs >= m) {\n return `${Math.round(ms / m)}m`;\n }\n if (msAbs >= s) {\n return `${Math.round(ms / s)}s`;\n }\n return `${ms}ms`;\n}\n\n/**\n * Long format for `ms`.\n */\nfunction fmtLong(ms: number): StringValue {\n const msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return `${ms} ms`;\n}\n\n/**\n * Pluralization helper.\n */\nfunction plural(ms: number, msAbs: number, n: number, name: string): StringValue {\n const isPlural = msAbs >= n * 1.5;\n return `${Math.round(ms / n)} ${name}${isPlural ? 's' : ''}` as StringValue;\n}\n\n/**\n * A type guard for errors.\n *\n * @param value - The value to test\n * @returns A boolean `true` if the provided value is an Error-like object\n */\nfunction isError(value: unknown): value is Error {\n return typeof value === 'object' && value !== null && 'message' in value;\n}\n"],"names":["s","m","h","d","w","y","msFn","value","options","length","parse","isFinite","long","fmtLong","fmtShort","Error","error","message","isError","JSON","stringify","str","match","exec","groups","NaN","n","parseFloat","type","toLowerCase","ms","msAbs","Math","abs","round","plural","name","isPlural"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/libs/ms.ts"],"sourcesContent":["// Helpers.\nconst s = 1000;\nconst m = s * 60;\nconst h = m * 60;\nconst d = h * 24;\nconst w = d * 7;\nconst y = d * 365.25;\n\ntype Unit =\n | 'Years'\n | 'Year'\n | 'Yrs'\n | 'Yr'\n | 'Y'\n | 'Weeks'\n | 'Week'\n | 'W'\n | 'Days'\n | 'Day'\n | 'D'\n | 'Hours'\n | 'Hour'\n | 'Hrs'\n | 'Hr'\n | 'H'\n | 'Minutes'\n | 'Minute'\n | 'Mins'\n | 'Min'\n | 'M'\n | 'Seconds'\n | 'Second'\n | 'Secs'\n | 'Sec'\n | 's'\n | 'Milliseconds'\n | 'Millisecond'\n | 'Msecs'\n | 'Msec'\n | 'Ms';\n\ntype UnitAnyCase = Unit | Uppercase<Unit> | Lowercase<Unit>;\n\nexport type StringValue = `${number}` | `${number}${UnitAnyCase}` | `${number} ${UnitAnyCase}`;\n\ninterface Options {\n /**\n * Set to `true` to use verbose formatting. Defaults to `false`.\n */\n long?: boolean;\n}\n\n/**\n * Parse or format the given value.\n *\n * @param value - The string or number to convert\n * @param options - Options for the conversion\n * @throws Error if `value` is not a non-empty string or a number\n */\nfunction msFn(value: StringValue, options?: Options): number;\nfunction msFn(value: number, options?: Options): string;\nfunction msFn(value: StringValue | number, options?: Options): number | string {\n try {\n if (typeof value === 'string' && value.length > 0) {\n return parse(value);\n } else if (typeof value === 'number' && isFinite(value)) {\n return options?.long ? fmtLong(value) : fmtShort(value);\n }\n throw new Error('Value is not a string or number.');\n } catch (error) {\n const message = isError(error)\n ? `${error.message}. value=${JSON.stringify(value)}`\n : 'An unknown error has occurred.';\n throw new Error(message);\n }\n}\n\n/**\n * Parse the given string and return milliseconds.\n *\n * @param str - A string to parse to milliseconds\n * @returns The parsed value in milliseconds, or `NaN` if the string can't be\n * parsed\n */\nfunction parse(str: string): number {\n if (str.length > 100) {\n throw new Error('Value exceeds the maximum length of 100 characters.');\n }\n const match =\n /^(?<value>-?(?:\\d+)?\\.?\\d+) *(?<type>milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str,\n );\n // Named capture groups need to be manually typed today.\n // https://github.com/microsoft/TypeScript/issues/32098\n const groups = match?.groups as { value: string; type?: string } | undefined;\n if (!groups) {\n return NaN;\n }\n const n = parseFloat(groups.value);\n const type = (groups.type || 'ms').toLowerCase() as Lowercase<Unit>;\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n // This should never occur.\n throw new Error(`The unit ${type as string} was matched, but no matching case exists.`);\n }\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default msFn;\n\n/**\n * Short format for `ms`.\n */\nfunction fmtShort(ms: number): StringValue {\n const msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return `${Math.round(ms / d)}d`;\n }\n if (msAbs >= h) {\n return `${Math.round(ms / h)}h`;\n }\n if (msAbs >= m) {\n return `${Math.round(ms / m)}m`;\n }\n if (msAbs >= s) {\n return `${Math.round(ms / s)}s`;\n }\n return `${ms}ms`;\n}\n\n/**\n * Long format for `ms`.\n */\nfunction fmtLong(ms: number): StringValue {\n const msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return `${ms} ms`;\n}\n\n/**\n * Pluralization helper.\n */\nfunction plural(ms: number, msAbs: number, n: number, name: string): StringValue {\n const isPlural = msAbs >= n * 1.5;\n return `${Math.round(ms / n)} ${name}${isPlural ? 's' : ''}` as StringValue;\n}\n\n/**\n * A type guard for errors.\n *\n * @param value - The value to test\n * @returns A boolean `true` if the provided value is an Error-like object\n */\nfunction isError(value: unknown): value is Error {\n return typeof value === 'object' && value !== null && 'message' in value;\n}\n"],"names":["s","m","h","d","w","y","msFn","value","options","length","parse","isFinite","long","fmtLong","fmtShort","Error","error","message","isError","JSON","stringify","str","match","exec","groups","NaN","n","parseFloat","type","toLowerCase","ms","msAbs","Math","abs","round","plural","name","isPlural"],"mappings":"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"}
@@ -1 +1 @@
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":[],"rangeMappings":";;","mappings":"AAAA;;CAEC,GAsBD,WAAqE"}
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,GAsBD,WAAqE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/logging/createChildLogger.ts"],"sourcesContent":["import { createLogger } from './createLogger';\nimport type { Logger, LoggerWithChild } from './Logger';\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"],"rangeMappings":";;;;;;;;;;;;;","mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAG9C,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
+ {"version":3,"sources":["../../src/logging/createChildLogger.ts"],"sourcesContent":["import { createLogger } from './createLogger';\nimport type { Logger, LoggerWithChild } from './Logger';\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":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAG9C,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 +1 @@
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"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","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
+ {"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 +1 @@
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"],"rangeMappings":";;;;;;;;;;","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
+ {"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"}