@ariestools/sdk 7.0.7 → 7.0.8
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.
- package/README.md +8 -19
- package/dist/browser/api.d.ts +2 -0
- package/dist/browser/api.d.ts.map +1 -0
- package/dist/browser/api.model.d.ts +2 -0
- package/dist/browser/api.model.d.ts.map +1 -0
- package/dist/browser/array.d.ts +2 -0
- package/dist/browser/array.d.ts.map +1 -0
- package/dist/browser/arraybuffer.d.ts +2 -0
- package/dist/browser/arraybuffer.d.ts.map +1 -0
- package/dist/browser/assert.d.ts +2 -0
- package/dist/browser/assert.d.ts.map +1 -0
- package/dist/browser/assert.model.d.ts +2 -0
- package/dist/browser/assert.model.d.ts.map +1 -0
- package/dist/browser/base.d.ts +2 -0
- package/dist/browser/base.d.ts.map +1 -0
- package/dist/browser/base.model.d.ts +2 -0
- package/dist/browser/base.model.d.ts.map +1 -0
- package/dist/browser/browser/platform.d.ts +2 -0
- package/dist/browser/browser/platform.d.ts.map +1 -0
- package/dist/browser/browser/url.d.ts +2 -0
- package/dist/browser/browser/url.d.ts.map +1 -0
- package/dist/browser/creatable.d.ts +2 -0
- package/dist/browser/creatable.d.ts.map +1 -0
- package/dist/browser/creatable.model.d.ts +2 -0
- package/dist/browser/creatable.model.d.ts.map +1 -0
- package/dist/browser/decimal-precision.d.ts +2 -0
- package/dist/browser/decimal-precision.d.ts.map +1 -0
- package/dist/browser/delay.d.ts +2 -0
- package/dist/browser/delay.d.ts.map +1 -0
- package/dist/browser/ellipsize.d.ts +2 -0
- package/dist/browser/ellipsize.d.ts.map +1 -0
- package/dist/browser/enum.d.ts +2 -0
- package/dist/browser/enum.d.ts.map +1 -0
- package/dist/browser/enum.model.d.ts +2 -0
- package/dist/browser/enum.model.d.ts.map +1 -0
- package/dist/browser/error.d.ts +2 -0
- package/dist/browser/error.d.ts.map +1 -0
- package/dist/browser/error.model.d.ts +2 -0
- package/dist/browser/error.model.d.ts.map +1 -0
- package/dist/browser/events.d.ts +2 -0
- package/dist/browser/events.d.ts.map +1 -0
- package/dist/browser/events.model.d.ts +2 -0
- package/dist/browser/events.model.d.ts.map +1 -0
- package/dist/browser/exists.d.ts +2 -0
- package/dist/browser/exists.d.ts.map +1 -0
- package/dist/browser/fetch.d.ts +2 -0
- package/dist/browser/fetch.d.ts.map +1 -0
- package/dist/browser/fetch.model.d.ts +2 -0
- package/dist/browser/fetch.model.d.ts.map +1 -0
- package/dist/browser/forget.d.ts +2 -0
- package/dist/browser/forget.d.ts.map +1 -0
- package/dist/browser/forget.model.d.ts +2 -0
- package/dist/browser/forget.model.d.ts.map +1 -0
- package/dist/browser/function-name.d.ts +2 -0
- package/dist/browser/function-name.d.ts.map +1 -0
- package/dist/browser/hex.d.ts +2 -0
- package/dist/browser/hex.d.ts.map +1 -0
- package/dist/browser/hex.model.d.ts +2 -0
- package/dist/browser/hex.model.d.ts.map +1 -0
- package/dist/browser/index.d.ts +31 -31
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.mjs +3424 -31
- package/dist/browser/index.mjs.map +7 -0
- package/dist/browser/logger.d.ts +2 -0
- package/dist/browser/logger.d.ts.map +1 -0
- package/dist/browser/model.d.ts +19 -0
- package/dist/browser/model.d.ts.map +1 -0
- package/dist/browser/modules/api/ApiClient.d.ts +10 -0
- package/dist/browser/modules/api/ApiClient.d.ts.map +1 -0
- package/dist/browser/modules/api/ApiConfig.d.ts +9 -0
- package/dist/browser/modules/api/ApiConfig.d.ts.map +1 -0
- package/dist/browser/modules/api/ApiEndpoint.d.ts +19 -0
- package/dist/browser/modules/api/ApiEndpoint.d.ts.map +1 -0
- package/dist/browser/modules/api/ApiStage.d.ts +11 -0
- package/dist/browser/modules/api/ApiStage.d.ts.map +1 -0
- package/dist/browser/modules/api/getApiStage.d.ts +8 -0
- package/dist/browser/modules/api/getApiStage.d.ts.map +1 -0
- package/dist/browser/modules/api/index.d.ts +6 -0
- package/dist/browser/modules/api/index.d.ts.map +1 -0
- package/dist/browser/modules/api/model.d.ts +3 -0
- package/dist/browser/modules/api/model.d.ts.map +1 -0
- package/dist/browser/modules/array/containsAll.d.ts +8 -0
- package/dist/browser/modules/array/containsAll.d.ts.map +1 -0
- package/dist/browser/modules/array/distinct.d.ts +6 -0
- package/dist/browser/modules/array/distinct.d.ts.map +1 -0
- package/dist/browser/modules/array/filterAs.d.ts +8 -0
- package/dist/browser/modules/array/filterAs.d.ts.map +1 -0
- package/dist/browser/modules/array/filterAsync.d.ts +9 -0
- package/dist/browser/modules/array/filterAsync.d.ts.map +1 -0
- package/dist/browser/modules/array/findAs.d.ts +15 -0
- package/dist/browser/modules/array/findAs.d.ts.map +1 -0
- package/dist/browser/modules/array/flatten.d.ts +8 -0
- package/dist/browser/modules/array/flatten.d.ts.map +1 -0
- package/dist/browser/modules/array/index.d.ts +8 -0
- package/dist/browser/modules/array/index.d.ts.map +1 -0
- package/dist/browser/modules/array/uniq.d.ts +14 -0
- package/dist/browser/modules/array/uniq.d.ts.map +1 -0
- package/dist/browser/modules/arraybuffer/equalArrayBuffers.d.ts +8 -0
- package/dist/browser/modules/arraybuffer/equalArrayBuffers.d.ts.map +1 -0
- package/dist/browser/modules/arraybuffer/index.d.ts +5 -0
- package/dist/browser/modules/arraybuffer/index.d.ts.map +1 -0
- package/dist/browser/modules/arraybuffer/isArrayBuffer.d.ts +7 -0
- package/dist/browser/modules/arraybuffer/isArrayBuffer.d.ts.map +1 -0
- package/dist/browser/modules/arraybuffer/toArrayBuffer.d.ts +11 -0
- package/dist/browser/modules/arraybuffer/toArrayBuffer.d.ts.map +1 -0
- package/dist/browser/modules/arraybuffer/toUint8Array.d.ts +11 -0
- package/dist/browser/modules/arraybuffer/toUint8Array.d.ts.map +1 -0
- package/dist/browser/modules/assert/assertDefinedEx.d.ts +41 -0
- package/dist/browser/modules/assert/assertDefinedEx.d.ts.map +1 -0
- package/dist/browser/modules/assert/assertEx.d.ts +41 -0
- package/dist/browser/modules/assert/assertEx.d.ts.map +1 -0
- package/dist/browser/modules/assert/index.d.ts +4 -0
- package/dist/browser/modules/assert/index.d.ts.map +1 -0
- package/dist/browser/modules/assert/model.d.ts +2 -0
- package/dist/browser/modules/assert/model.d.ts.map +1 -0
- package/dist/browser/modules/assert/types.d.ts +36 -0
- package/dist/browser/modules/assert/types.d.ts.map +1 -0
- package/dist/browser/modules/base/Base.d.ts +53 -0
- package/dist/browser/modules/base/Base.d.ts.map +1 -0
- package/dist/browser/modules/base/globallyUnique.d.ts +21 -0
- package/dist/browser/modules/base/globallyUnique.d.ts.map +1 -0
- package/dist/browser/modules/base/index.d.ts +3 -0
- package/dist/browser/modules/base/index.d.ts.map +1 -0
- package/dist/browser/modules/base/model.d.ts +2 -0
- package/dist/browser/modules/base/model.d.ts.map +1 -0
- package/dist/browser/modules/creatable/AbstractCreatable.d.ts +123 -0
- package/dist/browser/modules/creatable/AbstractCreatable.d.ts.map +1 -0
- package/dist/browser/modules/creatable/Creatable.d.ts +49 -0
- package/dist/browser/modules/creatable/Creatable.d.ts.map +1 -0
- package/dist/browser/modules/creatable/Factory.d.ts +28 -0
- package/dist/browser/modules/creatable/Factory.d.ts.map +1 -0
- package/dist/browser/modules/creatable/index.d.ts +5 -0
- package/dist/browser/modules/creatable/index.d.ts.map +1 -0
- package/dist/browser/modules/creatable/lib/getFunctionName.d.ts +7 -0
- package/dist/browser/modules/creatable/lib/getFunctionName.d.ts.map +1 -0
- package/dist/browser/modules/creatable/lib/getRootFunction.d.ts +8 -0
- package/dist/browser/modules/creatable/lib/getRootFunction.d.ts.map +1 -0
- package/dist/browser/modules/creatable/lib/index.d.ts +3 -0
- package/dist/browser/modules/creatable/lib/index.d.ts.map +1 -0
- package/dist/browser/modules/creatable/model/CreatableInstance.d.ts +16 -0
- package/dist/browser/modules/creatable/model/CreatableInstance.d.ts.map +1 -0
- package/dist/browser/modules/creatable/model/CreatableParams.d.ts +16 -0
- package/dist/browser/modules/creatable/model/CreatableParams.d.ts.map +1 -0
- package/dist/browser/modules/creatable/model/CreatableStatusReporter.d.ts +15 -0
- package/dist/browser/modules/creatable/model/CreatableStatusReporter.d.ts.map +1 -0
- package/dist/browser/modules/creatable/model/Labels.d.ts +24 -0
- package/dist/browser/modules/creatable/model/Labels.d.ts.map +1 -0
- package/dist/browser/modules/creatable/model/index.d.ts +5 -0
- package/dist/browser/modules/creatable/model/index.d.ts.map +1 -0
- package/dist/browser/modules/creatable/model.d.ts +3 -0
- package/dist/browser/modules/creatable/model.d.ts.map +1 -0
- package/dist/browser/modules/decimal-precision/fromFixedPoint.d.ts +8 -0
- package/dist/browser/modules/decimal-precision/fromFixedPoint.d.ts.map +1 -0
- package/dist/browser/modules/decimal-precision/index.d.ts +4 -0
- package/dist/browser/modules/decimal-precision/index.d.ts.map +1 -0
- package/dist/browser/modules/decimal-precision/toDecimalPrecision.d.ts +8 -0
- package/dist/browser/modules/decimal-precision/toDecimalPrecision.d.ts.map +1 -0
- package/dist/browser/modules/decimal-precision/toFixedPoint.d.ts +8 -0
- package/dist/browser/modules/decimal-precision/toFixedPoint.d.ts.map +1 -0
- package/dist/browser/modules/delay/delay.d.ts +7 -0
- package/dist/browser/modules/delay/delay.d.ts.map +1 -0
- package/dist/browser/modules/delay/index.d.ts +2 -0
- package/dist/browser/modules/delay/index.d.ts.map +1 -0
- package/dist/browser/modules/ellipsize/index.d.ts +8 -0
- package/dist/browser/modules/ellipsize/index.d.ts.map +1 -0
- package/dist/browser/modules/enum/Enum.d.ts +88 -0
- package/dist/browser/modules/enum/Enum.d.ts.map +1 -0
- package/dist/browser/modules/enum/index.d.ts +2 -0
- package/dist/browser/modules/enum/index.d.ts.map +1 -0
- package/dist/browser/modules/enum/model.d.ts +2 -0
- package/dist/browser/modules/enum/model.d.ts.map +1 -0
- package/dist/browser/modules/error/assert.d.ts +12 -0
- package/dist/browser/modules/error/assert.d.ts.map +1 -0
- package/dist/browser/modules/error/handleError.d.ts +15 -0
- package/dist/browser/modules/error/handleError.d.ts.map +1 -0
- package/dist/browser/modules/error/index.d.ts +3 -0
- package/dist/browser/modules/error/index.d.ts.map +1 -0
- package/dist/browser/modules/error/model.d.ts +2 -0
- package/dist/browser/modules/error/model.d.ts.map +1 -0
- package/dist/browser/modules/events/BaseEmitter.d.ts +74 -0
- package/dist/browser/modules/events/BaseEmitter.d.ts.map +1 -0
- package/dist/browser/modules/events/Events/Events.d.ts +132 -0
- package/dist/browser/modules/events/Events/Events.d.ts.map +1 -0
- package/dist/browser/modules/events/Events/index.d.ts +2 -0
- package/dist/browser/modules/events/Events/index.d.ts.map +1 -0
- package/dist/browser/modules/events/index.d.ts +4 -0
- package/dist/browser/modules/events/index.d.ts.map +1 -0
- package/dist/browser/modules/events/model/Event.d.ts +21 -0
- package/dist/browser/modules/events/model/Event.d.ts.map +1 -0
- package/dist/browser/modules/events/model/EventEmitter.d.ts +25 -0
- package/dist/browser/modules/events/model/EventEmitter.d.ts.map +1 -0
- package/dist/browser/modules/events/model/index.d.ts +3 -0
- package/dist/browser/modules/events/model/index.d.ts.map +1 -0
- package/dist/browser/modules/events/model.d.ts +3 -0
- package/dist/browser/modules/events/model.d.ts.map +1 -0
- package/dist/browser/modules/exists/index.d.ts +10 -0
- package/dist/browser/modules/exists/index.d.ts.map +1 -0
- package/dist/browser/modules/fetch/FetchClient.d.ts +46 -0
- package/dist/browser/modules/fetch/FetchClient.d.ts.map +1 -0
- package/dist/browser/modules/fetch/FetchError.d.ts +80 -0
- package/dist/browser/modules/fetch/FetchError.d.ts.map +1 -0
- package/dist/browser/modules/fetch/FetchJsonClient.d.ts +19 -0
- package/dist/browser/modules/fetch/FetchJsonClient.d.ts.map +1 -0
- package/dist/browser/modules/fetch/fetchCompress.d.ts +12 -0
- package/dist/browser/modules/fetch/fetchCompress.d.ts.map +1 -0
- package/dist/browser/modules/fetch/fetchJson.d.ts +7 -0
- package/dist/browser/modules/fetch/fetchJson.d.ts.map +1 -0
- package/dist/browser/modules/fetch/index.d.ts +11 -0
- package/dist/browser/modules/fetch/index.d.ts.map +1 -0
- package/dist/browser/modules/fetch/methods.d.ts +12 -0
- package/dist/browser/modules/fetch/methods.d.ts.map +1 -0
- package/dist/browser/modules/fetch/model.d.ts +5 -0
- package/dist/browser/modules/fetch/model.d.ts.map +1 -0
- package/dist/browser/modules/fetch/parseJson.d.ts +16 -0
- package/dist/browser/modules/fetch/parseJson.d.ts.map +1 -0
- package/dist/browser/modules/fetch/types.d.ts +12 -0
- package/dist/browser/modules/fetch/types.d.ts.map +1 -0
- package/dist/browser/modules/forget/ForgetConfig.d.ts +21 -0
- package/dist/browser/modules/forget/ForgetConfig.d.ts.map +1 -0
- package/dist/browser/modules/forget/ForgetNodeConfig.d.ts +13 -0
- package/dist/browser/modules/forget/ForgetNodeConfig.d.ts.map +1 -0
- package/dist/browser/modules/forget/ForgetPromise.d.ts +49 -0
- package/dist/browser/modules/forget/ForgetPromise.d.ts.map +1 -0
- package/dist/browser/modules/forget/ForgetPromiseNode.d.ts +15 -0
- package/dist/browser/modules/forget/ForgetPromiseNode.d.ts.map +1 -0
- package/dist/browser/modules/forget/forget.d.ts +10 -0
- package/dist/browser/modules/forget/forget.d.ts.map +1 -0
- package/dist/browser/modules/forget/forgetNode.d.ts +9 -0
- package/dist/browser/modules/forget/forgetNode.d.ts.map +1 -0
- package/dist/browser/modules/forget/index.d.ts +2 -0
- package/dist/browser/modules/forget/index.d.ts.map +1 -0
- package/dist/browser/modules/forget/model.d.ts +3 -0
- package/dist/browser/modules/forget/model.d.ts.map +1 -0
- package/dist/browser/modules/forget/neutral/index.d.ts +4 -0
- package/dist/browser/modules/forget/neutral/index.d.ts.map +1 -0
- package/dist/browser/modules/forget/node/index.d.ts +4 -0
- package/dist/browser/modules/forget/node/index.d.ts.map +1 -0
- package/dist/browser/modules/function-name/functionName.d.ts +7 -0
- package/dist/browser/modules/function-name/functionName.d.ts.map +1 -0
- package/dist/browser/modules/function-name/index.d.ts +2 -0
- package/dist/browser/modules/function-name/index.d.ts.map +1 -0
- package/dist/browser/modules/hex/HexRegEx.d.ts +19 -0
- package/dist/browser/modules/hex/HexRegEx.d.ts.map +1 -0
- package/dist/browser/modules/hex/address/AddressTransformZod.d.ts +10 -0
- package/dist/browser/modules/hex/address/AddressTransformZod.d.ts.map +1 -0
- package/dist/browser/modules/hex/address/AddressValidationZod.d.ts +10 -0
- package/dist/browser/modules/hex/address/AddressValidationZod.d.ts.map +1 -0
- package/dist/browser/modules/hex/address/address.d.ts +18 -0
- package/dist/browser/modules/hex/address/address.d.ts.map +1 -0
- package/dist/browser/modules/hex/address/as.d.ts +13 -0
- package/dist/browser/modules/hex/address/as.d.ts.map +1 -0
- package/dist/browser/modules/hex/address/index.d.ts +7 -0
- package/dist/browser/modules/hex/address/index.d.ts.map +1 -0
- package/dist/browser/modules/hex/address/is.d.ts +12 -0
- package/dist/browser/modules/hex/address/is.d.ts.map +1 -0
- package/dist/browser/modules/hex/address/to.d.ts +12 -0
- package/dist/browser/modules/hex/address/to.d.ts.map +1 -0
- package/dist/browser/modules/hex/ethAddress.d.ts +45 -0
- package/dist/browser/modules/hex/ethAddress.d.ts.map +1 -0
- package/dist/browser/modules/hex/hash/as.d.ts +11 -0
- package/dist/browser/modules/hex/hash/as.d.ts.map +1 -0
- package/dist/browser/modules/hex/hash/hash.d.ts +28 -0
- package/dist/browser/modules/hex/hash/hash.d.ts.map +1 -0
- package/dist/browser/modules/hex/hash/index.d.ts +5 -0
- package/dist/browser/modules/hex/hash/index.d.ts.map +1 -0
- package/dist/browser/modules/hex/hash/is.d.ts +9 -0
- package/dist/browser/modules/hex/hash/is.d.ts.map +1 -0
- package/dist/browser/modules/hex/hash/zod.d.ts +6 -0
- package/dist/browser/modules/hex/hash/zod.d.ts.map +1 -0
- package/dist/browser/modules/hex/hex/as.d.ts +11 -0
- package/dist/browser/modules/hex/hex/as.d.ts.map +1 -0
- package/dist/browser/modules/hex/hex/from/from.d.ts +8 -0
- package/dist/browser/modules/hex/hex/from/from.d.ts.map +1 -0
- package/dist/browser/modules/hex/hex/from/fromArrayBuffer.d.ts +8 -0
- package/dist/browser/modules/hex/hex/from/fromArrayBuffer.d.ts.map +1 -0
- package/dist/browser/modules/hex/hex/from/fromBigInt.d.ts +8 -0
- package/dist/browser/modules/hex/hex/from/fromBigInt.d.ts.map +1 -0
- package/dist/browser/modules/hex/hex/from/fromHexString.d.ts +9 -0
- package/dist/browser/modules/hex/hex/from/fromHexString.d.ts.map +1 -0
- package/dist/browser/modules/hex/hex/from/fromNumber.d.ts +9 -0
- package/dist/browser/modules/hex/hex/from/fromNumber.d.ts.map +1 -0
- package/dist/browser/modules/hex/hex/from/index.d.ts +6 -0
- package/dist/browser/modules/hex/hex/from/index.d.ts.map +1 -0
- package/dist/browser/modules/hex/hex/hex.d.ts +17 -0
- package/dist/browser/modules/hex/hex/hex.d.ts.map +1 -0
- package/dist/browser/modules/hex/hex/index.d.ts +9 -0
- package/dist/browser/modules/hex/hex/index.d.ts.map +1 -0
- package/dist/browser/modules/hex/hex/is.d.ts +9 -0
- package/dist/browser/modules/hex/hex/is.d.ts.map +1 -0
- package/dist/browser/modules/hex/hex/isHexZero.d.ts +7 -0
- package/dist/browser/modules/hex/hex/isHexZero.d.ts.map +1 -0
- package/dist/browser/modules/hex/hex/legacy.d.ts +7 -0
- package/dist/browser/modules/hex/hex/legacy.d.ts.map +1 -0
- package/dist/browser/modules/hex/hex/nibble.d.ts +13 -0
- package/dist/browser/modules/hex/hex/nibble.d.ts.map +1 -0
- package/dist/browser/modules/hex/hex/to.d.ts +8 -0
- package/dist/browser/modules/hex/hex/to.d.ts.map +1 -0
- package/dist/browser/modules/hex/hexToBigInt.d.ts +8 -0
- package/dist/browser/modules/hex/hexToBigInt.d.ts.map +1 -0
- package/dist/browser/modules/hex/index.d.ts +8 -0
- package/dist/browser/modules/hex/index.d.ts.map +1 -0
- package/dist/browser/modules/hex/model.d.ts +3 -0
- package/dist/browser/modules/hex/model.d.ts.map +1 -0
- package/dist/browser/modules/hex/zod.d.ts +6 -0
- package/dist/browser/modules/hex/zod.d.ts.map +1 -0
- package/dist/browser/modules/logger/ConsoleLogger.d.ts +7 -0
- package/dist/browser/modules/logger/ConsoleLogger.d.ts.map +1 -0
- package/dist/browser/modules/logger/IdLogger.d.ts +19 -0
- package/dist/browser/modules/logger/IdLogger.d.ts.map +1 -0
- package/dist/browser/modules/logger/LevelLogger.d.ts +47 -0
- package/dist/browser/modules/logger/LevelLogger.d.ts.map +1 -0
- package/dist/browser/modules/logger/NoOpLogFunction.d.ts +3 -0
- package/dist/browser/modules/logger/NoOpLogFunction.d.ts.map +1 -0
- package/dist/browser/modules/logger/SilentLogger.d.ts +17 -0
- package/dist/browser/modules/logger/SilentLogger.d.ts.map +1 -0
- package/dist/browser/modules/logger/getFunctionName.d.ts +7 -0
- package/dist/browser/modules/logger/getFunctionName.d.ts.map +1 -0
- package/dist/browser/modules/logger/index.d.ts +7 -0
- package/dist/browser/modules/logger/index.d.ts.map +1 -0
- package/dist/browser/modules/object/AsObjectFactory.d.ts +8 -0
- package/dist/browser/modules/object/AsObjectFactory.d.ts.map +1 -0
- package/dist/browser/modules/object/AsTypeFactory.d.ts +11 -0
- package/dist/browser/modules/object/AsTypeFactory.d.ts.map +1 -0
- package/dist/browser/modules/object/EmptyObject.d.ts +2 -0
- package/dist/browser/modules/object/EmptyObject.d.ts.map +1 -0
- package/dist/browser/modules/object/IsObjectFactory.d.ts +16 -0
- package/dist/browser/modules/object/IsObjectFactory.d.ts.map +1 -0
- package/dist/browser/modules/object/JsonObject.d.ts +49 -0
- package/dist/browser/modules/object/JsonObject.d.ts.map +1 -0
- package/dist/browser/modules/object/ObjectWrapper.d.ts +9 -0
- package/dist/browser/modules/object/ObjectWrapper.d.ts.map +1 -0
- package/dist/browser/modules/object/OmitStartsWith.d.ts +18 -0
- package/dist/browser/modules/object/OmitStartsWith.d.ts.map +1 -0
- package/dist/browser/modules/object/Optional.d.ts +3 -0
- package/dist/browser/modules/object/Optional.d.ts.map +1 -0
- package/dist/browser/modules/object/Override.d.ts +4 -0
- package/dist/browser/modules/object/Override.d.ts.map +1 -0
- package/dist/browser/modules/object/PartialRecord.d.ts +3 -0
- package/dist/browser/modules/object/PartialRecord.d.ts.map +1 -0
- package/dist/browser/modules/object/PickStartsWith.d.ts +9 -0
- package/dist/browser/modules/object/PickStartsWith.d.ts.map +1 -0
- package/dist/browser/modules/object/Simplify.d.ts +5 -0
- package/dist/browser/modules/object/Simplify.d.ts.map +1 -0
- package/dist/browser/modules/object/StringKeyObject.d.ts +3 -0
- package/dist/browser/modules/object/StringKeyObject.d.ts.map +1 -0
- package/dist/browser/modules/object/Validator.d.ts +13 -0
- package/dist/browser/modules/object/Validator.d.ts.map +1 -0
- package/dist/browser/modules/object/WithAdditional.d.ts +4 -0
- package/dist/browser/modules/object/WithAdditional.d.ts.map +1 -0
- package/dist/browser/modules/object/asObject.d.ts +4 -0
- package/dist/browser/modules/object/asObject.d.ts.map +1 -0
- package/dist/browser/modules/object/deepMerge.d.ts +49 -0
- package/dist/browser/modules/object/deepMerge.d.ts.map +1 -0
- package/dist/browser/modules/object/index-deprecated.d.ts +2 -0
- package/dist/browser/modules/object/index-deprecated.d.ts.map +1 -0
- package/dist/browser/modules/object/index-un-deprecated.d.ts +22 -0
- package/dist/browser/modules/object/index-un-deprecated.d.ts.map +1 -0
- package/dist/browser/modules/object/index.d.ts +3 -0
- package/dist/browser/modules/object/index.d.ts.map +1 -0
- package/dist/browser/modules/object/isType.d.ts +4 -0
- package/dist/browser/modules/object/isType.d.ts.map +1 -0
- package/dist/browser/modules/object/model.d.ts +14 -0
- package/dist/browser/modules/object/model.d.ts.map +1 -0
- package/dist/browser/modules/object/omitBy.d.ts +21 -0
- package/dist/browser/modules/object/omitBy.d.ts.map +1 -0
- package/dist/browser/modules/object/pickBy.d.ts +21 -0
- package/dist/browser/modules/object/pickBy.d.ts.map +1 -0
- package/dist/browser/modules/object/removeFields.d.ts +9 -0
- package/dist/browser/modules/object/removeFields.d.ts.map +1 -0
- package/dist/browser/modules/object/toSafeJson.d.ts +41 -0
- package/dist/browser/modules/object/toSafeJson.d.ts.map +1 -0
- package/dist/browser/modules/object-model/AnyObject.d.ts +8 -0
- package/dist/browser/modules/object-model/AnyObject.d.ts.map +1 -0
- package/dist/browser/modules/object-model/AsTypeFactory.d.ts +12 -0
- package/dist/browser/modules/object-model/AsTypeFactory.d.ts.map +1 -0
- package/dist/browser/modules/object-model/AsTypeFunction.d.ts +14 -0
- package/dist/browser/modules/object-model/AsTypeFunction.d.ts.map +1 -0
- package/dist/browser/modules/object-model/Compare.d.ts +3 -0
- package/dist/browser/modules/object-model/Compare.d.ts.map +1 -0
- package/dist/browser/modules/object-model/EmptyObject.d.ts +8 -0
- package/dist/browser/modules/object-model/EmptyObject.d.ts.map +1 -0
- package/dist/browser/modules/object-model/index.d.ts +6 -0
- package/dist/browser/modules/object-model/index.d.ts.map +1 -0
- package/dist/browser/modules/object-model/model.d.ts +6 -0
- package/dist/browser/modules/object-model/model.d.ts.map +1 -0
- package/dist/browser/modules/object-model/types.d.ts +25 -0
- package/dist/browser/modules/object-model/types.d.ts.map +1 -0
- package/dist/browser/modules/platform/browser/index.d.ts +7 -0
- package/dist/browser/modules/platform/browser/index.d.ts.map +1 -0
- package/dist/browser/modules/platform/index-browser.d.ts +2 -0
- package/dist/browser/modules/platform/index-browser.d.ts.map +1 -0
- package/dist/browser/modules/platform/index-node.d.ts +2 -0
- package/dist/browser/modules/platform/index-node.d.ts.map +1 -0
- package/dist/browser/modules/platform/node/index.d.ts +9 -0
- package/dist/browser/modules/platform/node/index.d.ts.map +1 -0
- package/dist/browser/modules/profile/index.d.ts +2 -0
- package/dist/browser/modules/profile/index.d.ts.map +1 -0
- package/dist/browser/modules/profile/model.d.ts +2 -0
- package/dist/browser/modules/profile/model.d.ts.map +1 -0
- package/dist/browser/modules/profile/profiler.d.ts +17 -0
- package/dist/browser/modules/profile/profiler.d.ts.map +1 -0
- package/dist/browser/modules/promise/PromiseEx.d.ts +24 -0
- package/dist/browser/modules/promise/PromiseEx.d.ts.map +1 -0
- package/dist/browser/modules/promise/fulfilled.d.ts +7 -0
- package/dist/browser/modules/promise/fulfilled.d.ts.map +1 -0
- package/dist/browser/modules/promise/fulfilledValues.d.ts +20 -0
- package/dist/browser/modules/promise/fulfilledValues.d.ts.map +1 -0
- package/dist/browser/modules/promise/index.d.ts +7 -0
- package/dist/browser/modules/promise/index.d.ts.map +1 -0
- package/dist/browser/modules/promise/model.d.ts +3 -0
- package/dist/browser/modules/promise/model.d.ts.map +1 -0
- package/dist/browser/modules/promise/rejected.d.ts +7 -0
- package/dist/browser/modules/promise/rejected.d.ts.map +1 -0
- package/dist/browser/modules/promise/toPromise.d.ts +8 -0
- package/dist/browser/modules/promise/toPromise.d.ts.map +1 -0
- package/dist/browser/modules/promise/types.d.ts +23 -0
- package/dist/browser/modules/promise/types.d.ts.map +1 -0
- package/dist/browser/modules/retry/index.d.ts +2 -0
- package/dist/browser/modules/retry/index.d.ts.map +1 -0
- package/dist/browser/modules/retry/model.d.ts +2 -0
- package/dist/browser/modules/retry/model.d.ts.map +1 -0
- package/dist/browser/modules/retry/retry.d.ts +23 -0
- package/dist/browser/modules/retry/retry.d.ts.map +1 -0
- package/dist/browser/modules/set/index.d.ts +2 -0
- package/dist/browser/modules/set/index.d.ts.map +1 -0
- package/dist/browser/modules/set/lib/difference.d.ts +8 -0
- package/dist/browser/modules/set/lib/difference.d.ts.map +1 -0
- package/dist/browser/modules/set/lib/index.d.ts +4 -0
- package/dist/browser/modules/set/lib/index.d.ts.map +1 -0
- package/dist/browser/modules/set/lib/intersection.d.ts +8 -0
- package/dist/browser/modules/set/lib/intersection.d.ts.map +1 -0
- package/dist/browser/modules/set/lib/union.d.ts +8 -0
- package/dist/browser/modules/set/lib/union.d.ts.map +1 -0
- package/dist/browser/modules/static-implements/index.d.ts +2 -0
- package/dist/browser/modules/static-implements/index.d.ts.map +1 -0
- package/dist/browser/modules/static-implements/staticImplements.d.ts +7 -0
- package/dist/browser/modules/static-implements/staticImplements.d.ts.map +1 -0
- package/dist/browser/modules/storage/KeyValueStore.d.ts +34 -0
- package/dist/browser/modules/storage/KeyValueStore.d.ts.map +1 -0
- package/dist/browser/modules/storage/index.d.ts +2 -0
- package/dist/browser/modules/storage/index.d.ts.map +1 -0
- package/dist/browser/modules/storage/model.d.ts +2 -0
- package/dist/browser/modules/storage/model.d.ts.map +1 -0
- package/dist/browser/modules/telemetry/index.d.ts +3 -0
- package/dist/browser/modules/telemetry/index.d.ts.map +1 -0
- package/dist/browser/modules/telemetry/model.d.ts +2 -0
- package/dist/browser/modules/telemetry/model.d.ts.map +1 -0
- package/dist/browser/modules/telemetry/span.d.ts +51 -0
- package/dist/browser/modules/telemetry/span.d.ts.map +1 -0
- package/dist/browser/modules/telemetry/timeBudget.d.ts +12 -0
- package/dist/browser/modules/telemetry/timeBudget.d.ts.map +1 -0
- package/dist/browser/modules/telemetry-exporter/XyConsoleSpanExporter.d.ts +40 -0
- package/dist/browser/modules/telemetry-exporter/XyConsoleSpanExporter.d.ts.map +1 -0
- package/dist/browser/modules/telemetry-exporter/index.d.ts +2 -0
- package/dist/browser/modules/telemetry-exporter/index.d.ts.map +1 -0
- package/dist/browser/modules/timer/index.d.ts +2 -0
- package/dist/browser/modules/timer/index.d.ts.map +1 -0
- package/dist/browser/modules/timer/setTimeoutEx.d.ts +37 -0
- package/dist/browser/modules/timer/setTimeoutEx.d.ts.map +1 -0
- package/dist/browser/modules/typeof/Brand.d.ts +5 -0
- package/dist/browser/modules/typeof/Brand.d.ts.map +1 -0
- package/dist/browser/modules/typeof/IdentityFunction.d.ts +3 -0
- package/dist/browser/modules/typeof/IdentityFunction.d.ts.map +1 -0
- package/dist/browser/modules/typeof/ObjectTypeShape.d.ts +5 -0
- package/dist/browser/modules/typeof/ObjectTypeShape.d.ts.map +1 -0
- package/dist/browser/modules/typeof/TypeOfTypes.d.ts +3 -0
- package/dist/browser/modules/typeof/TypeOfTypes.d.ts.map +1 -0
- package/dist/browser/modules/typeof/Typed.d.ts +41 -0
- package/dist/browser/modules/typeof/Typed.d.ts.map +1 -0
- package/dist/browser/modules/typeof/ifDefined.d.ts +8 -0
- package/dist/browser/modules/typeof/ifDefined.d.ts.map +1 -0
- package/dist/browser/modules/typeof/ifTypeOf.d.ts +11 -0
- package/dist/browser/modules/typeof/ifTypeOf.d.ts.map +1 -0
- package/dist/browser/modules/typeof/index.d.ts +12 -0
- package/dist/browser/modules/typeof/index.d.ts.map +1 -0
- package/dist/browser/modules/typeof/is.d.ts +116 -0
- package/dist/browser/modules/typeof/is.d.ts.map +1 -0
- package/dist/browser/modules/typeof/isType.d.ts +9 -0
- package/dist/browser/modules/typeof/isType.d.ts.map +1 -0
- package/dist/browser/modules/typeof/model.d.ts +7 -0
- package/dist/browser/modules/typeof/model.d.ts.map +1 -0
- package/dist/browser/modules/typeof/typeOf.d.ts +8 -0
- package/dist/browser/modules/typeof/typeOf.d.ts.map +1 -0
- package/dist/browser/modules/typeof/validateType.d.ts +10 -0
- package/dist/browser/modules/typeof/validateType.d.ts.map +1 -0
- package/dist/browser/modules/url/index-browser.d.ts +12 -0
- package/dist/browser/modules/url/index-browser.d.ts.map +1 -0
- package/dist/browser/modules/url/index-neutral.d.ts +12 -0
- package/dist/browser/modules/url/index-neutral.d.ts.map +1 -0
- package/dist/browser/modules/url/index-node.d.ts +13 -0
- package/dist/browser/modules/url/index-node.d.ts.map +1 -0
- package/dist/browser/modules/url/lib/index.d.ts +2 -0
- package/dist/browser/modules/url/lib/index.d.ts.map +1 -0
- package/dist/browser/modules/url/lib/isLocalhost.d.ts +7 -0
- package/dist/browser/modules/url/lib/isLocalhost.d.ts.map +1 -0
- package/dist/browser/modules/zod/Config.d.ts +8 -0
- package/dist/browser/modules/zod/Config.d.ts.map +1 -0
- package/dist/browser/modules/zod/index.d.ts +8 -0
- package/dist/browser/modules/zod/index.d.ts.map +1 -0
- package/dist/browser/modules/zod/model.d.ts +2 -0
- package/dist/browser/modules/zod/model.d.ts.map +1 -0
- package/dist/browser/modules/zod/zodAllFactory.d.ts +20 -0
- package/dist/browser/modules/zod/zodAllFactory.d.ts.map +1 -0
- package/dist/browser/modules/zod/zodAsAsyncFactory.d.ts +14 -0
- package/dist/browser/modules/zod/zodAsAsyncFactory.d.ts.map +1 -0
- package/dist/browser/modules/zod/zodAsFactory.d.ts +14 -0
- package/dist/browser/modules/zod/zodAsFactory.d.ts.map +1 -0
- package/dist/browser/modules/zod/zodIsFactory.d.ts +8 -0
- package/dist/browser/modules/zod/zodIsFactory.d.ts.map +1 -0
- package/dist/browser/modules/zod/zodToAsyncFactory.d.ts +14 -0
- package/dist/browser/modules/zod/zodToAsyncFactory.d.ts.map +1 -0
- package/dist/browser/modules/zod/zodToFactory.d.ts +14 -0
- package/dist/browser/modules/zod/zodToFactory.d.ts.map +1 -0
- package/dist/browser/neutral/url.d.ts +2 -0
- package/dist/browser/neutral/url.d.ts.map +1 -0
- package/dist/browser/node/platform.d.ts +2 -0
- package/dist/browser/node/platform.d.ts.map +1 -0
- package/dist/browser/node/url.d.ts +2 -0
- package/dist/browser/node/url.d.ts.map +1 -0
- package/dist/browser/object.d.ts +2 -0
- package/dist/browser/object.d.ts.map +1 -0
- package/dist/browser/object.model.d.ts +2 -0
- package/dist/browser/object.model.d.ts.map +1 -0
- package/dist/browser/platform.d.ts +2 -1
- package/dist/browser/platform.mjs +16 -1
- package/dist/browser/platform.mjs.map +7 -0
- package/dist/browser/profile.d.ts +2 -0
- package/dist/browser/profile.d.ts.map +1 -0
- package/dist/browser/profile.model.d.ts +2 -0
- package/dist/browser/profile.model.d.ts.map +1 -0
- package/dist/browser/promise.d.ts +2 -0
- package/dist/browser/promise.d.ts.map +1 -0
- package/dist/browser/promise.model.d.ts +2 -0
- package/dist/browser/promise.model.d.ts.map +1 -0
- package/dist/browser/retry.d.ts +2 -0
- package/dist/browser/retry.d.ts.map +1 -0
- package/dist/browser/retry.model.d.ts +2 -0
- package/dist/browser/retry.model.d.ts.map +1 -0
- package/dist/browser/set.d.ts +2 -0
- package/dist/browser/set.d.ts.map +1 -0
- package/dist/browser/static-implements.d.ts +2 -0
- package/dist/browser/static-implements.d.ts.map +1 -0
- package/dist/browser/storage.d.ts +2 -0
- package/dist/browser/storage.d.ts.map +1 -0
- package/dist/browser/storage.model.d.ts +2 -0
- package/dist/browser/storage.model.d.ts.map +1 -0
- package/dist/browser/telemetry-exporter.d.ts +2 -0
- package/dist/browser/telemetry-exporter.d.ts.map +1 -0
- package/dist/browser/telemetry.d.ts +2 -0
- package/dist/browser/telemetry.d.ts.map +1 -0
- package/dist/browser/telemetry.model.d.ts +2 -0
- package/dist/browser/telemetry.model.d.ts.map +1 -0
- package/dist/browser/timer.d.ts +2 -0
- package/dist/browser/timer.d.ts.map +1 -0
- package/dist/browser/typeof.d.ts +2 -0
- package/dist/browser/typeof.d.ts.map +1 -0
- package/dist/browser/typeof.model.d.ts +2 -0
- package/dist/browser/typeof.model.d.ts.map +1 -0
- package/dist/browser/url.d.ts +2 -1
- package/dist/browser/url.mjs +12 -1
- package/dist/browser/url.mjs.map +7 -0
- package/dist/browser/zod.d.ts +2 -0
- package/dist/browser/zod.d.ts.map +1 -0
- package/dist/browser/zod.model.d.ts +2 -0
- package/dist/browser/zod.model.d.ts.map +1 -0
- package/dist/neutral/api.d.ts +2 -1
- package/dist/neutral/api.d.ts.map +1 -0
- package/dist/neutral/api.mjs +287 -1
- package/dist/neutral/api.mjs.map +7 -0
- package/dist/neutral/api.model.d.ts +2 -1
- package/dist/neutral/api.model.d.ts.map +1 -0
- package/dist/neutral/api.model.mjs +1 -1
- package/dist/neutral/api.model.mjs.map +7 -0
- package/dist/neutral/array.d.ts +2 -1
- package/dist/neutral/array.d.ts.map +1 -0
- package/dist/neutral/array.mjs +82 -1
- package/dist/neutral/array.mjs.map +7 -0
- package/dist/neutral/arraybuffer.d.ts +2 -1
- package/dist/neutral/arraybuffer.d.ts.map +1 -0
- package/dist/neutral/arraybuffer.mjs +173 -1
- package/dist/neutral/arraybuffer.mjs.map +7 -0
- package/dist/neutral/assert.d.ts +2 -1
- package/dist/neutral/assert.d.ts.map +1 -0
- package/dist/neutral/assert.mjs +30 -1
- package/dist/neutral/assert.mjs.map +7 -0
- package/dist/neutral/assert.model.d.ts +2 -1
- package/dist/neutral/assert.model.d.ts.map +1 -0
- package/dist/neutral/assert.model.mjs +1 -1
- package/dist/neutral/assert.model.mjs.map +7 -0
- package/dist/neutral/base.d.ts +2 -1
- package/dist/neutral/base.d.ts.map +1 -0
- package/dist/neutral/base.mjs +164 -1
- package/dist/neutral/base.mjs.map +7 -0
- package/dist/neutral/base.model.d.ts +2 -1
- package/dist/neutral/base.model.d.ts.map +1 -0
- package/dist/neutral/base.model.mjs +1 -1
- package/dist/neutral/base.model.mjs.map +7 -0
- package/dist/neutral/browser/platform.d.ts +2 -0
- package/dist/neutral/browser/platform.d.ts.map +1 -0
- package/dist/neutral/browser/url.d.ts +2 -0
- package/dist/neutral/browser/url.d.ts.map +1 -0
- package/dist/neutral/creatable.d.ts +2 -1
- package/dist/neutral/creatable.d.ts.map +1 -0
- package/dist/neutral/creatable.mjs +1270 -1
- package/dist/neutral/creatable.mjs.map +7 -0
- package/dist/neutral/creatable.model.d.ts +2 -1
- package/dist/neutral/creatable.model.d.ts.map +1 -0
- package/dist/neutral/creatable.model.mjs +1 -1
- package/dist/neutral/creatable.model.mjs.map +7 -0
- package/dist/neutral/decimal-precision.d.ts +2 -1
- package/dist/neutral/decimal-precision.d.ts.map +1 -0
- package/dist/neutral/decimal-precision.mjs +39 -1
- package/dist/neutral/decimal-precision.mjs.map +7 -0
- package/dist/neutral/delay.d.ts +2 -1
- package/dist/neutral/delay.d.ts.map +1 -0
- package/dist/neutral/delay.mjs +88 -1
- package/dist/neutral/delay.mjs.map +7 -0
- package/dist/neutral/ellipsize.d.ts +2 -1
- package/dist/neutral/ellipsize.d.ts.map +1 -0
- package/dist/neutral/ellipsize.mjs +10 -1
- package/dist/neutral/ellipsize.mjs.map +7 -0
- package/dist/neutral/enum.d.ts +2 -1
- package/dist/neutral/enum.d.ts.map +1 -0
- package/dist/neutral/enum.mjs +8 -1
- package/dist/neutral/enum.mjs.map +7 -0
- package/dist/neutral/enum.model.d.ts +2 -1
- package/dist/neutral/enum.model.d.ts.map +1 -0
- package/dist/neutral/enum.model.mjs +1 -1
- package/dist/neutral/enum.model.mjs.map +7 -0
- package/dist/neutral/error.d.ts +2 -1
- package/dist/neutral/error.d.ts.map +1 -0
- package/dist/neutral/error.mjs +41 -1
- package/dist/neutral/error.mjs.map +7 -0
- package/dist/neutral/error.model.d.ts +2 -1
- package/dist/neutral/error.model.d.ts.map +1 -0
- package/dist/neutral/error.model.mjs +1 -1
- package/dist/neutral/error.model.mjs.map +7 -0
- package/dist/neutral/events.d.ts +2 -1
- package/dist/neutral/events.d.ts.map +1 -0
- package/dist/neutral/events.mjs +789 -1
- package/dist/neutral/events.mjs.map +7 -0
- package/dist/neutral/events.model.d.ts +2 -1
- package/dist/neutral/events.model.d.ts.map +1 -0
- package/dist/neutral/events.model.mjs +1 -1
- package/dist/neutral/events.model.mjs.map +7 -0
- package/dist/neutral/exists.d.ts +2 -1
- package/dist/neutral/exists.d.ts.map +1 -0
- package/dist/neutral/exists.mjs +8 -1
- package/dist/neutral/exists.mjs.map +7 -0
- package/dist/neutral/fetch.d.ts +2 -1
- package/dist/neutral/fetch.d.ts.map +1 -0
- package/dist/neutral/fetch.mjs +365 -1
- package/dist/neutral/fetch.mjs.map +7 -0
- package/dist/neutral/fetch.model.d.ts +2 -1
- package/dist/neutral/fetch.model.d.ts.map +1 -0
- package/dist/neutral/fetch.model.mjs +1 -1
- package/dist/neutral/fetch.model.mjs.map +7 -0
- package/dist/neutral/forget.d.ts +2 -1
- package/dist/neutral/forget.d.ts.map +1 -0
- package/dist/neutral/forget.mjs +253 -1
- package/dist/neutral/forget.mjs.map +7 -0
- package/dist/neutral/forget.model.d.ts +2 -1
- package/dist/neutral/forget.model.d.ts.map +1 -0
- package/dist/neutral/forget.model.mjs +1 -1
- package/dist/neutral/forget.model.mjs.map +7 -0
- package/dist/neutral/function-name.d.ts +2 -1
- package/dist/neutral/function-name.d.ts.map +1 -0
- package/dist/neutral/function-name.mjs +41 -1
- package/dist/neutral/function-name.mjs.map +7 -0
- package/dist/neutral/hex.d.ts +2 -1
- package/dist/neutral/hex.d.ts.map +1 -0
- package/dist/neutral/hex.mjs +390 -1
- package/dist/neutral/hex.mjs.map +7 -0
- package/dist/neutral/hex.model.d.ts +2 -1
- package/dist/neutral/hex.model.d.ts.map +1 -0
- package/dist/neutral/hex.model.mjs +1 -1
- package/dist/neutral/hex.model.mjs.map +7 -0
- package/dist/neutral/index.d.ts +31 -0
- package/dist/neutral/index.d.ts.map +1 -0
- package/dist/neutral/index.mjs +3424 -0
- package/dist/neutral/index.mjs.map +7 -0
- package/dist/neutral/logger.d.ts +2 -1
- package/dist/neutral/logger.d.ts.map +1 -0
- package/dist/neutral/logger.mjs +142 -1
- package/dist/neutral/logger.mjs.map +7 -0
- package/dist/neutral/model.d.ts +19 -17
- package/dist/neutral/model.d.ts.map +1 -0
- package/dist/neutral/model.mjs +1 -17
- package/dist/neutral/model.mjs.map +7 -0
- package/dist/neutral/modules/api/ApiClient.d.ts +10 -0
- package/dist/neutral/modules/api/ApiClient.d.ts.map +1 -0
- package/dist/neutral/modules/api/ApiConfig.d.ts +9 -0
- package/dist/neutral/modules/api/ApiConfig.d.ts.map +1 -0
- package/dist/neutral/modules/api/ApiEndpoint.d.ts +19 -0
- package/dist/neutral/modules/api/ApiEndpoint.d.ts.map +1 -0
- package/dist/neutral/modules/api/ApiStage.d.ts +11 -0
- package/dist/neutral/modules/api/ApiStage.d.ts.map +1 -0
- package/dist/neutral/modules/api/getApiStage.d.ts +8 -0
- package/dist/neutral/modules/api/getApiStage.d.ts.map +1 -0
- package/dist/neutral/modules/api/index.d.ts +6 -0
- package/dist/neutral/modules/api/index.d.ts.map +1 -0
- package/dist/neutral/modules/api/model.d.ts +3 -0
- package/dist/neutral/modules/api/model.d.ts.map +1 -0
- package/dist/neutral/modules/array/containsAll.d.ts +8 -0
- package/dist/neutral/modules/array/containsAll.d.ts.map +1 -0
- package/dist/neutral/modules/array/distinct.d.ts +6 -0
- package/dist/neutral/modules/array/distinct.d.ts.map +1 -0
- package/dist/neutral/modules/array/filterAs.d.ts +8 -0
- package/dist/neutral/modules/array/filterAs.d.ts.map +1 -0
- package/dist/neutral/modules/array/filterAsync.d.ts +9 -0
- package/dist/neutral/modules/array/filterAsync.d.ts.map +1 -0
- package/dist/neutral/modules/array/findAs.d.ts +15 -0
- package/dist/neutral/modules/array/findAs.d.ts.map +1 -0
- package/dist/neutral/modules/array/flatten.d.ts +8 -0
- package/dist/neutral/modules/array/flatten.d.ts.map +1 -0
- package/dist/neutral/modules/array/index.d.ts +8 -0
- package/dist/neutral/modules/array/index.d.ts.map +1 -0
- package/dist/neutral/modules/array/uniq.d.ts +14 -0
- package/dist/neutral/modules/array/uniq.d.ts.map +1 -0
- package/dist/neutral/modules/arraybuffer/equalArrayBuffers.d.ts +8 -0
- package/dist/neutral/modules/arraybuffer/equalArrayBuffers.d.ts.map +1 -0
- package/dist/neutral/modules/arraybuffer/index.d.ts +5 -0
- package/dist/neutral/modules/arraybuffer/index.d.ts.map +1 -0
- package/dist/neutral/modules/arraybuffer/isArrayBuffer.d.ts +7 -0
- package/dist/neutral/modules/arraybuffer/isArrayBuffer.d.ts.map +1 -0
- package/dist/neutral/modules/arraybuffer/toArrayBuffer.d.ts +11 -0
- package/dist/neutral/modules/arraybuffer/toArrayBuffer.d.ts.map +1 -0
- package/dist/neutral/modules/arraybuffer/toUint8Array.d.ts +11 -0
- package/dist/neutral/modules/arraybuffer/toUint8Array.d.ts.map +1 -0
- package/dist/neutral/modules/assert/assertDefinedEx.d.ts +41 -0
- package/dist/neutral/modules/assert/assertDefinedEx.d.ts.map +1 -0
- package/dist/neutral/modules/assert/assertEx.d.ts +41 -0
- package/dist/neutral/modules/assert/assertEx.d.ts.map +1 -0
- package/dist/neutral/modules/assert/index.d.ts +4 -0
- package/dist/neutral/modules/assert/index.d.ts.map +1 -0
- package/dist/neutral/modules/assert/model.d.ts +2 -0
- package/dist/neutral/modules/assert/model.d.ts.map +1 -0
- package/dist/neutral/modules/assert/types.d.ts +36 -0
- package/dist/neutral/modules/assert/types.d.ts.map +1 -0
- package/dist/neutral/modules/base/Base.d.ts +53 -0
- package/dist/neutral/modules/base/Base.d.ts.map +1 -0
- package/dist/neutral/modules/base/globallyUnique.d.ts +21 -0
- package/dist/neutral/modules/base/globallyUnique.d.ts.map +1 -0
- package/dist/neutral/modules/base/index.d.ts +3 -0
- package/dist/neutral/modules/base/index.d.ts.map +1 -0
- package/dist/neutral/modules/base/model.d.ts +2 -0
- package/dist/neutral/modules/base/model.d.ts.map +1 -0
- package/dist/neutral/modules/creatable/AbstractCreatable.d.ts +123 -0
- package/dist/neutral/modules/creatable/AbstractCreatable.d.ts.map +1 -0
- package/dist/neutral/modules/creatable/Creatable.d.ts +49 -0
- package/dist/neutral/modules/creatable/Creatable.d.ts.map +1 -0
- package/dist/neutral/modules/creatable/Factory.d.ts +28 -0
- package/dist/neutral/modules/creatable/Factory.d.ts.map +1 -0
- package/dist/neutral/modules/creatable/index.d.ts +5 -0
- package/dist/neutral/modules/creatable/index.d.ts.map +1 -0
- package/dist/neutral/modules/creatable/lib/getFunctionName.d.ts +7 -0
- package/dist/neutral/modules/creatable/lib/getFunctionName.d.ts.map +1 -0
- package/dist/neutral/modules/creatable/lib/getRootFunction.d.ts +8 -0
- package/dist/neutral/modules/creatable/lib/getRootFunction.d.ts.map +1 -0
- package/dist/neutral/modules/creatable/lib/index.d.ts +3 -0
- package/dist/neutral/modules/creatable/lib/index.d.ts.map +1 -0
- package/dist/neutral/modules/creatable/model/CreatableInstance.d.ts +16 -0
- package/dist/neutral/modules/creatable/model/CreatableInstance.d.ts.map +1 -0
- package/dist/neutral/modules/creatable/model/CreatableParams.d.ts +16 -0
- package/dist/neutral/modules/creatable/model/CreatableParams.d.ts.map +1 -0
- package/dist/neutral/modules/creatable/model/CreatableStatusReporter.d.ts +15 -0
- package/dist/neutral/modules/creatable/model/CreatableStatusReporter.d.ts.map +1 -0
- package/dist/neutral/modules/creatable/model/Labels.d.ts +24 -0
- package/dist/neutral/modules/creatable/model/Labels.d.ts.map +1 -0
- package/dist/neutral/modules/creatable/model/index.d.ts +5 -0
- package/dist/neutral/modules/creatable/model/index.d.ts.map +1 -0
- package/dist/neutral/modules/creatable/model.d.ts +3 -0
- package/dist/neutral/modules/creatable/model.d.ts.map +1 -0
- package/dist/neutral/modules/decimal-precision/fromFixedPoint.d.ts +8 -0
- package/dist/neutral/modules/decimal-precision/fromFixedPoint.d.ts.map +1 -0
- package/dist/neutral/modules/decimal-precision/index.d.ts +4 -0
- package/dist/neutral/modules/decimal-precision/index.d.ts.map +1 -0
- package/dist/neutral/modules/decimal-precision/toDecimalPrecision.d.ts +8 -0
- package/dist/neutral/modules/decimal-precision/toDecimalPrecision.d.ts.map +1 -0
- package/dist/neutral/modules/decimal-precision/toFixedPoint.d.ts +8 -0
- package/dist/neutral/modules/decimal-precision/toFixedPoint.d.ts.map +1 -0
- package/dist/neutral/modules/delay/delay.d.ts +7 -0
- package/dist/neutral/modules/delay/delay.d.ts.map +1 -0
- package/dist/neutral/modules/delay/index.d.ts +2 -0
- package/dist/neutral/modules/delay/index.d.ts.map +1 -0
- package/dist/neutral/modules/ellipsize/index.d.ts +8 -0
- package/dist/neutral/modules/ellipsize/index.d.ts.map +1 -0
- package/dist/neutral/modules/enum/Enum.d.ts +88 -0
- package/dist/neutral/modules/enum/Enum.d.ts.map +1 -0
- package/dist/neutral/modules/enum/index.d.ts +2 -0
- package/dist/neutral/modules/enum/index.d.ts.map +1 -0
- package/dist/neutral/modules/enum/model.d.ts +2 -0
- package/dist/neutral/modules/enum/model.d.ts.map +1 -0
- package/dist/neutral/modules/error/assert.d.ts +12 -0
- package/dist/neutral/modules/error/assert.d.ts.map +1 -0
- package/dist/neutral/modules/error/handleError.d.ts +15 -0
- package/dist/neutral/modules/error/handleError.d.ts.map +1 -0
- package/dist/neutral/modules/error/index.d.ts +3 -0
- package/dist/neutral/modules/error/index.d.ts.map +1 -0
- package/dist/neutral/modules/error/model.d.ts +2 -0
- package/dist/neutral/modules/error/model.d.ts.map +1 -0
- package/dist/neutral/modules/events/BaseEmitter.d.ts +74 -0
- package/dist/neutral/modules/events/BaseEmitter.d.ts.map +1 -0
- package/dist/neutral/modules/events/Events/Events.d.ts +132 -0
- package/dist/neutral/modules/events/Events/Events.d.ts.map +1 -0
- package/dist/neutral/modules/events/Events/index.d.ts +2 -0
- package/dist/neutral/modules/events/Events/index.d.ts.map +1 -0
- package/dist/neutral/modules/events/index.d.ts +4 -0
- package/dist/neutral/modules/events/index.d.ts.map +1 -0
- package/dist/neutral/modules/events/model/Event.d.ts +21 -0
- package/dist/neutral/modules/events/model/Event.d.ts.map +1 -0
- package/dist/neutral/modules/events/model/EventEmitter.d.ts +25 -0
- package/dist/neutral/modules/events/model/EventEmitter.d.ts.map +1 -0
- package/dist/neutral/modules/events/model/index.d.ts +3 -0
- package/dist/neutral/modules/events/model/index.d.ts.map +1 -0
- package/dist/neutral/modules/events/model.d.ts +3 -0
- package/dist/neutral/modules/events/model.d.ts.map +1 -0
- package/dist/neutral/modules/exists/index.d.ts +10 -0
- package/dist/neutral/modules/exists/index.d.ts.map +1 -0
- package/dist/neutral/modules/fetch/FetchClient.d.ts +46 -0
- package/dist/neutral/modules/fetch/FetchClient.d.ts.map +1 -0
- package/dist/neutral/modules/fetch/FetchError.d.ts +80 -0
- package/dist/neutral/modules/fetch/FetchError.d.ts.map +1 -0
- package/dist/neutral/modules/fetch/FetchJsonClient.d.ts +19 -0
- package/dist/neutral/modules/fetch/FetchJsonClient.d.ts.map +1 -0
- package/dist/neutral/modules/fetch/fetchCompress.d.ts +12 -0
- package/dist/neutral/modules/fetch/fetchCompress.d.ts.map +1 -0
- package/dist/neutral/modules/fetch/fetchJson.d.ts +7 -0
- package/dist/neutral/modules/fetch/fetchJson.d.ts.map +1 -0
- package/dist/neutral/modules/fetch/index.d.ts +11 -0
- package/dist/neutral/modules/fetch/index.d.ts.map +1 -0
- package/dist/neutral/modules/fetch/methods.d.ts +12 -0
- package/dist/neutral/modules/fetch/methods.d.ts.map +1 -0
- package/dist/neutral/modules/fetch/model.d.ts +5 -0
- package/dist/neutral/modules/fetch/model.d.ts.map +1 -0
- package/dist/neutral/modules/fetch/parseJson.d.ts +16 -0
- package/dist/neutral/modules/fetch/parseJson.d.ts.map +1 -0
- package/dist/neutral/modules/fetch/types.d.ts +12 -0
- package/dist/neutral/modules/fetch/types.d.ts.map +1 -0
- package/dist/neutral/modules/forget/ForgetConfig.d.ts +21 -0
- package/dist/neutral/modules/forget/ForgetConfig.d.ts.map +1 -0
- package/dist/neutral/modules/forget/ForgetNodeConfig.d.ts +13 -0
- package/dist/neutral/modules/forget/ForgetNodeConfig.d.ts.map +1 -0
- package/dist/neutral/modules/forget/ForgetPromise.d.ts +49 -0
- package/dist/neutral/modules/forget/ForgetPromise.d.ts.map +1 -0
- package/dist/neutral/modules/forget/ForgetPromiseNode.d.ts +15 -0
- package/dist/neutral/modules/forget/ForgetPromiseNode.d.ts.map +1 -0
- package/dist/neutral/modules/forget/forget.d.ts +10 -0
- package/dist/neutral/modules/forget/forget.d.ts.map +1 -0
- package/dist/neutral/modules/forget/forgetNode.d.ts +9 -0
- package/dist/neutral/modules/forget/forgetNode.d.ts.map +1 -0
- package/dist/neutral/modules/forget/index.d.ts +2 -0
- package/dist/neutral/modules/forget/index.d.ts.map +1 -0
- package/dist/neutral/modules/forget/model.d.ts +3 -0
- package/dist/neutral/modules/forget/model.d.ts.map +1 -0
- package/dist/neutral/modules/forget/neutral/index.d.ts +4 -0
- package/dist/neutral/modules/forget/neutral/index.d.ts.map +1 -0
- package/dist/neutral/modules/forget/node/index.d.ts +4 -0
- package/dist/neutral/modules/forget/node/index.d.ts.map +1 -0
- package/dist/neutral/modules/function-name/functionName.d.ts +7 -0
- package/dist/neutral/modules/function-name/functionName.d.ts.map +1 -0
- package/dist/neutral/modules/function-name/index.d.ts +2 -0
- package/dist/neutral/modules/function-name/index.d.ts.map +1 -0
- package/dist/neutral/modules/hex/HexRegEx.d.ts +19 -0
- package/dist/neutral/modules/hex/HexRegEx.d.ts.map +1 -0
- package/dist/neutral/modules/hex/address/AddressTransformZod.d.ts +10 -0
- package/dist/neutral/modules/hex/address/AddressTransformZod.d.ts.map +1 -0
- package/dist/neutral/modules/hex/address/AddressValidationZod.d.ts +10 -0
- package/dist/neutral/modules/hex/address/AddressValidationZod.d.ts.map +1 -0
- package/dist/neutral/modules/hex/address/address.d.ts +18 -0
- package/dist/neutral/modules/hex/address/address.d.ts.map +1 -0
- package/dist/neutral/modules/hex/address/as.d.ts +13 -0
- package/dist/neutral/modules/hex/address/as.d.ts.map +1 -0
- package/dist/neutral/modules/hex/address/index.d.ts +7 -0
- package/dist/neutral/modules/hex/address/index.d.ts.map +1 -0
- package/dist/neutral/modules/hex/address/is.d.ts +12 -0
- package/dist/neutral/modules/hex/address/is.d.ts.map +1 -0
- package/dist/neutral/modules/hex/address/to.d.ts +12 -0
- package/dist/neutral/modules/hex/address/to.d.ts.map +1 -0
- package/dist/neutral/modules/hex/ethAddress.d.ts +45 -0
- package/dist/neutral/modules/hex/ethAddress.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hash/as.d.ts +11 -0
- package/dist/neutral/modules/hex/hash/as.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hash/hash.d.ts +28 -0
- package/dist/neutral/modules/hex/hash/hash.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hash/index.d.ts +5 -0
- package/dist/neutral/modules/hex/hash/index.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hash/is.d.ts +9 -0
- package/dist/neutral/modules/hex/hash/is.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hash/zod.d.ts +6 -0
- package/dist/neutral/modules/hex/hash/zod.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hex/as.d.ts +11 -0
- package/dist/neutral/modules/hex/hex/as.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hex/from/from.d.ts +8 -0
- package/dist/neutral/modules/hex/hex/from/from.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hex/from/fromArrayBuffer.d.ts +8 -0
- package/dist/neutral/modules/hex/hex/from/fromArrayBuffer.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hex/from/fromBigInt.d.ts +8 -0
- package/dist/neutral/modules/hex/hex/from/fromBigInt.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hex/from/fromHexString.d.ts +9 -0
- package/dist/neutral/modules/hex/hex/from/fromHexString.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hex/from/fromNumber.d.ts +9 -0
- package/dist/neutral/modules/hex/hex/from/fromNumber.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hex/from/index.d.ts +6 -0
- package/dist/neutral/modules/hex/hex/from/index.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hex/hex.d.ts +17 -0
- package/dist/neutral/modules/hex/hex/hex.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hex/index.d.ts +9 -0
- package/dist/neutral/modules/hex/hex/index.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hex/is.d.ts +9 -0
- package/dist/neutral/modules/hex/hex/is.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hex/isHexZero.d.ts +7 -0
- package/dist/neutral/modules/hex/hex/isHexZero.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hex/legacy.d.ts +7 -0
- package/dist/neutral/modules/hex/hex/legacy.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hex/nibble.d.ts +13 -0
- package/dist/neutral/modules/hex/hex/nibble.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hex/to.d.ts +8 -0
- package/dist/neutral/modules/hex/hex/to.d.ts.map +1 -0
- package/dist/neutral/modules/hex/hexToBigInt.d.ts +8 -0
- package/dist/neutral/modules/hex/hexToBigInt.d.ts.map +1 -0
- package/dist/neutral/modules/hex/index.d.ts +8 -0
- package/dist/neutral/modules/hex/index.d.ts.map +1 -0
- package/dist/neutral/modules/hex/model.d.ts +3 -0
- package/dist/neutral/modules/hex/model.d.ts.map +1 -0
- package/dist/neutral/modules/hex/zod.d.ts +6 -0
- package/dist/neutral/modules/hex/zod.d.ts.map +1 -0
- package/dist/neutral/modules/logger/ConsoleLogger.d.ts +7 -0
- package/dist/neutral/modules/logger/ConsoleLogger.d.ts.map +1 -0
- package/dist/neutral/modules/logger/IdLogger.d.ts +19 -0
- package/dist/neutral/modules/logger/IdLogger.d.ts.map +1 -0
- package/dist/neutral/modules/logger/LevelLogger.d.ts +47 -0
- package/dist/neutral/modules/logger/LevelLogger.d.ts.map +1 -0
- package/dist/neutral/modules/logger/NoOpLogFunction.d.ts +3 -0
- package/dist/neutral/modules/logger/NoOpLogFunction.d.ts.map +1 -0
- package/dist/neutral/modules/logger/SilentLogger.d.ts +17 -0
- package/dist/neutral/modules/logger/SilentLogger.d.ts.map +1 -0
- package/dist/neutral/modules/logger/getFunctionName.d.ts +7 -0
- package/dist/neutral/modules/logger/getFunctionName.d.ts.map +1 -0
- package/dist/neutral/modules/logger/index.d.ts +7 -0
- package/dist/neutral/modules/logger/index.d.ts.map +1 -0
- package/dist/neutral/modules/object/AsObjectFactory.d.ts +8 -0
- package/dist/neutral/modules/object/AsObjectFactory.d.ts.map +1 -0
- package/dist/neutral/modules/object/AsTypeFactory.d.ts +11 -0
- package/dist/neutral/modules/object/AsTypeFactory.d.ts.map +1 -0
- package/dist/neutral/modules/object/EmptyObject.d.ts +2 -0
- package/dist/neutral/modules/object/EmptyObject.d.ts.map +1 -0
- package/dist/neutral/modules/object/IsObjectFactory.d.ts +16 -0
- package/dist/neutral/modules/object/IsObjectFactory.d.ts.map +1 -0
- package/dist/neutral/modules/object/JsonObject.d.ts +49 -0
- package/dist/neutral/modules/object/JsonObject.d.ts.map +1 -0
- package/dist/neutral/modules/object/ObjectWrapper.d.ts +9 -0
- package/dist/neutral/modules/object/ObjectWrapper.d.ts.map +1 -0
- package/dist/neutral/modules/object/OmitStartsWith.d.ts +18 -0
- package/dist/neutral/modules/object/OmitStartsWith.d.ts.map +1 -0
- package/dist/neutral/modules/object/Optional.d.ts +3 -0
- package/dist/neutral/modules/object/Optional.d.ts.map +1 -0
- package/dist/neutral/modules/object/Override.d.ts +4 -0
- package/dist/neutral/modules/object/Override.d.ts.map +1 -0
- package/dist/neutral/modules/object/PartialRecord.d.ts +3 -0
- package/dist/neutral/modules/object/PartialRecord.d.ts.map +1 -0
- package/dist/neutral/modules/object/PickStartsWith.d.ts +9 -0
- package/dist/neutral/modules/object/PickStartsWith.d.ts.map +1 -0
- package/dist/neutral/modules/object/Simplify.d.ts +5 -0
- package/dist/neutral/modules/object/Simplify.d.ts.map +1 -0
- package/dist/neutral/modules/object/StringKeyObject.d.ts +3 -0
- package/dist/neutral/modules/object/StringKeyObject.d.ts.map +1 -0
- package/dist/neutral/modules/object/Validator.d.ts +13 -0
- package/dist/neutral/modules/object/Validator.d.ts.map +1 -0
- package/dist/neutral/modules/object/WithAdditional.d.ts +4 -0
- package/dist/neutral/modules/object/WithAdditional.d.ts.map +1 -0
- package/dist/neutral/modules/object/asObject.d.ts +4 -0
- package/dist/neutral/modules/object/asObject.d.ts.map +1 -0
- package/dist/neutral/modules/object/deepMerge.d.ts +49 -0
- package/dist/neutral/modules/object/deepMerge.d.ts.map +1 -0
- package/dist/neutral/modules/object/index-deprecated.d.ts +2 -0
- package/dist/neutral/modules/object/index-deprecated.d.ts.map +1 -0
- package/dist/neutral/modules/object/index-un-deprecated.d.ts +22 -0
- package/dist/neutral/modules/object/index-un-deprecated.d.ts.map +1 -0
- package/dist/neutral/modules/object/index.d.ts +3 -0
- package/dist/neutral/modules/object/index.d.ts.map +1 -0
- package/dist/neutral/modules/object/isType.d.ts +4 -0
- package/dist/neutral/modules/object/isType.d.ts.map +1 -0
- package/dist/neutral/modules/object/model.d.ts +14 -0
- package/dist/neutral/modules/object/model.d.ts.map +1 -0
- package/dist/neutral/modules/object/omitBy.d.ts +21 -0
- package/dist/neutral/modules/object/omitBy.d.ts.map +1 -0
- package/dist/neutral/modules/object/pickBy.d.ts +21 -0
- package/dist/neutral/modules/object/pickBy.d.ts.map +1 -0
- package/dist/neutral/modules/object/removeFields.d.ts +9 -0
- package/dist/neutral/modules/object/removeFields.d.ts.map +1 -0
- package/dist/neutral/modules/object/toSafeJson.d.ts +41 -0
- package/dist/neutral/modules/object/toSafeJson.d.ts.map +1 -0
- package/dist/neutral/modules/object-model/AnyObject.d.ts +8 -0
- package/dist/neutral/modules/object-model/AnyObject.d.ts.map +1 -0
- package/dist/neutral/modules/object-model/AsTypeFactory.d.ts +12 -0
- package/dist/neutral/modules/object-model/AsTypeFactory.d.ts.map +1 -0
- package/dist/neutral/modules/object-model/AsTypeFunction.d.ts +14 -0
- package/dist/neutral/modules/object-model/AsTypeFunction.d.ts.map +1 -0
- package/dist/neutral/modules/object-model/Compare.d.ts +3 -0
- package/dist/neutral/modules/object-model/Compare.d.ts.map +1 -0
- package/dist/neutral/modules/object-model/EmptyObject.d.ts +8 -0
- package/dist/neutral/modules/object-model/EmptyObject.d.ts.map +1 -0
- package/dist/neutral/modules/object-model/index.d.ts +6 -0
- package/dist/neutral/modules/object-model/index.d.ts.map +1 -0
- package/dist/neutral/modules/object-model/model.d.ts +6 -0
- package/dist/neutral/modules/object-model/model.d.ts.map +1 -0
- package/dist/neutral/modules/object-model/types.d.ts +25 -0
- package/dist/neutral/modules/object-model/types.d.ts.map +1 -0
- package/dist/neutral/modules/platform/browser/index.d.ts +7 -0
- package/dist/neutral/modules/platform/browser/index.d.ts.map +1 -0
- package/dist/neutral/modules/platform/index-browser.d.ts +2 -0
- package/dist/neutral/modules/platform/index-browser.d.ts.map +1 -0
- package/dist/neutral/modules/platform/index-node.d.ts +2 -0
- package/dist/neutral/modules/platform/index-node.d.ts.map +1 -0
- package/dist/neutral/modules/platform/node/index.d.ts +9 -0
- package/dist/neutral/modules/platform/node/index.d.ts.map +1 -0
- package/dist/neutral/modules/profile/index.d.ts +2 -0
- package/dist/neutral/modules/profile/index.d.ts.map +1 -0
- package/dist/neutral/modules/profile/model.d.ts +2 -0
- package/dist/neutral/modules/profile/model.d.ts.map +1 -0
- package/dist/neutral/modules/profile/profiler.d.ts +17 -0
- package/dist/neutral/modules/profile/profiler.d.ts.map +1 -0
- package/dist/neutral/modules/promise/PromiseEx.d.ts +24 -0
- package/dist/neutral/modules/promise/PromiseEx.d.ts.map +1 -0
- package/dist/neutral/modules/promise/fulfilled.d.ts +7 -0
- package/dist/neutral/modules/promise/fulfilled.d.ts.map +1 -0
- package/dist/neutral/modules/promise/fulfilledValues.d.ts +20 -0
- package/dist/neutral/modules/promise/fulfilledValues.d.ts.map +1 -0
- package/dist/neutral/modules/promise/index.d.ts +7 -0
- package/dist/neutral/modules/promise/index.d.ts.map +1 -0
- package/dist/neutral/modules/promise/model.d.ts +3 -0
- package/dist/neutral/modules/promise/model.d.ts.map +1 -0
- package/dist/neutral/modules/promise/rejected.d.ts +7 -0
- package/dist/neutral/modules/promise/rejected.d.ts.map +1 -0
- package/dist/neutral/modules/promise/toPromise.d.ts +8 -0
- package/dist/neutral/modules/promise/toPromise.d.ts.map +1 -0
- package/dist/neutral/modules/promise/types.d.ts +23 -0
- package/dist/neutral/modules/promise/types.d.ts.map +1 -0
- package/dist/neutral/modules/retry/index.d.ts +2 -0
- package/dist/neutral/modules/retry/index.d.ts.map +1 -0
- package/dist/neutral/modules/retry/model.d.ts +2 -0
- package/dist/neutral/modules/retry/model.d.ts.map +1 -0
- package/dist/neutral/modules/retry/retry.d.ts +23 -0
- package/dist/neutral/modules/retry/retry.d.ts.map +1 -0
- package/dist/neutral/modules/set/index.d.ts +2 -0
- package/dist/neutral/modules/set/index.d.ts.map +1 -0
- package/dist/neutral/modules/set/lib/difference.d.ts +8 -0
- package/dist/neutral/modules/set/lib/difference.d.ts.map +1 -0
- package/dist/neutral/modules/set/lib/index.d.ts +4 -0
- package/dist/neutral/modules/set/lib/index.d.ts.map +1 -0
- package/dist/neutral/modules/set/lib/intersection.d.ts +8 -0
- package/dist/neutral/modules/set/lib/intersection.d.ts.map +1 -0
- package/dist/neutral/modules/set/lib/union.d.ts +8 -0
- package/dist/neutral/modules/set/lib/union.d.ts.map +1 -0
- package/dist/neutral/modules/static-implements/index.d.ts +2 -0
- package/dist/neutral/modules/static-implements/index.d.ts.map +1 -0
- package/dist/neutral/modules/static-implements/staticImplements.d.ts +7 -0
- package/dist/neutral/modules/static-implements/staticImplements.d.ts.map +1 -0
- package/dist/neutral/modules/storage/KeyValueStore.d.ts +34 -0
- package/dist/neutral/modules/storage/KeyValueStore.d.ts.map +1 -0
- package/dist/neutral/modules/storage/index.d.ts +2 -0
- package/dist/neutral/modules/storage/index.d.ts.map +1 -0
- package/dist/neutral/modules/storage/model.d.ts +2 -0
- package/dist/neutral/modules/storage/model.d.ts.map +1 -0
- package/dist/neutral/modules/telemetry/index.d.ts +3 -0
- package/dist/neutral/modules/telemetry/index.d.ts.map +1 -0
- package/dist/neutral/modules/telemetry/model.d.ts +2 -0
- package/dist/neutral/modules/telemetry/model.d.ts.map +1 -0
- package/dist/neutral/modules/telemetry/span.d.ts +51 -0
- package/dist/neutral/modules/telemetry/span.d.ts.map +1 -0
- package/dist/neutral/modules/telemetry/timeBudget.d.ts +12 -0
- package/dist/neutral/modules/telemetry/timeBudget.d.ts.map +1 -0
- package/dist/neutral/modules/telemetry-exporter/XyConsoleSpanExporter.d.ts +40 -0
- package/dist/neutral/modules/telemetry-exporter/XyConsoleSpanExporter.d.ts.map +1 -0
- package/dist/neutral/modules/telemetry-exporter/index.d.ts +2 -0
- package/dist/neutral/modules/telemetry-exporter/index.d.ts.map +1 -0
- package/dist/neutral/modules/timer/index.d.ts +2 -0
- package/dist/neutral/modules/timer/index.d.ts.map +1 -0
- package/dist/neutral/modules/timer/setTimeoutEx.d.ts +37 -0
- package/dist/neutral/modules/timer/setTimeoutEx.d.ts.map +1 -0
- package/dist/neutral/modules/typeof/Brand.d.ts +5 -0
- package/dist/neutral/modules/typeof/Brand.d.ts.map +1 -0
- package/dist/neutral/modules/typeof/IdentityFunction.d.ts +3 -0
- package/dist/neutral/modules/typeof/IdentityFunction.d.ts.map +1 -0
- package/dist/neutral/modules/typeof/ObjectTypeShape.d.ts +5 -0
- package/dist/neutral/modules/typeof/ObjectTypeShape.d.ts.map +1 -0
- package/dist/neutral/modules/typeof/TypeOfTypes.d.ts +3 -0
- package/dist/neutral/modules/typeof/TypeOfTypes.d.ts.map +1 -0
- package/dist/neutral/modules/typeof/Typed.d.ts +41 -0
- package/dist/neutral/modules/typeof/Typed.d.ts.map +1 -0
- package/dist/neutral/modules/typeof/ifDefined.d.ts +8 -0
- package/dist/neutral/modules/typeof/ifDefined.d.ts.map +1 -0
- package/dist/neutral/modules/typeof/ifTypeOf.d.ts +11 -0
- package/dist/neutral/modules/typeof/ifTypeOf.d.ts.map +1 -0
- package/dist/neutral/modules/typeof/index.d.ts +12 -0
- package/dist/neutral/modules/typeof/index.d.ts.map +1 -0
- package/dist/neutral/modules/typeof/is.d.ts +116 -0
- package/dist/neutral/modules/typeof/is.d.ts.map +1 -0
- package/dist/neutral/modules/typeof/isType.d.ts +9 -0
- package/dist/neutral/modules/typeof/isType.d.ts.map +1 -0
- package/dist/neutral/modules/typeof/model.d.ts +7 -0
- package/dist/neutral/modules/typeof/model.d.ts.map +1 -0
- package/dist/neutral/modules/typeof/typeOf.d.ts +8 -0
- package/dist/neutral/modules/typeof/typeOf.d.ts.map +1 -0
- package/dist/neutral/modules/typeof/validateType.d.ts +10 -0
- package/dist/neutral/modules/typeof/validateType.d.ts.map +1 -0
- package/dist/neutral/modules/url/index-browser.d.ts +12 -0
- package/dist/neutral/modules/url/index-browser.d.ts.map +1 -0
- package/dist/neutral/modules/url/index-neutral.d.ts +12 -0
- package/dist/neutral/modules/url/index-neutral.d.ts.map +1 -0
- package/dist/neutral/modules/url/index-node.d.ts +13 -0
- package/dist/neutral/modules/url/index-node.d.ts.map +1 -0
- package/dist/neutral/modules/url/lib/index.d.ts +2 -0
- package/dist/neutral/modules/url/lib/index.d.ts.map +1 -0
- package/dist/neutral/modules/url/lib/isLocalhost.d.ts +7 -0
- package/dist/neutral/modules/url/lib/isLocalhost.d.ts.map +1 -0
- package/dist/neutral/modules/zod/Config.d.ts +8 -0
- package/dist/neutral/modules/zod/Config.d.ts.map +1 -0
- package/dist/neutral/modules/zod/index.d.ts +8 -0
- package/dist/neutral/modules/zod/index.d.ts.map +1 -0
- package/dist/neutral/modules/zod/model.d.ts +2 -0
- package/dist/neutral/modules/zod/model.d.ts.map +1 -0
- package/dist/neutral/modules/zod/zodAllFactory.d.ts +20 -0
- package/dist/neutral/modules/zod/zodAllFactory.d.ts.map +1 -0
- package/dist/neutral/modules/zod/zodAsAsyncFactory.d.ts +14 -0
- package/dist/neutral/modules/zod/zodAsAsyncFactory.d.ts.map +1 -0
- package/dist/neutral/modules/zod/zodAsFactory.d.ts +14 -0
- package/dist/neutral/modules/zod/zodAsFactory.d.ts.map +1 -0
- package/dist/neutral/modules/zod/zodIsFactory.d.ts +8 -0
- package/dist/neutral/modules/zod/zodIsFactory.d.ts.map +1 -0
- package/dist/neutral/modules/zod/zodToAsyncFactory.d.ts +14 -0
- package/dist/neutral/modules/zod/zodToAsyncFactory.d.ts.map +1 -0
- package/dist/neutral/modules/zod/zodToFactory.d.ts +14 -0
- package/dist/neutral/modules/zod/zodToFactory.d.ts.map +1 -0
- package/dist/neutral/neutral/url.d.ts +2 -0
- package/dist/neutral/neutral/url.d.ts.map +1 -0
- package/dist/neutral/node/platform.d.ts +2 -0
- package/dist/neutral/node/platform.d.ts.map +1 -0
- package/dist/neutral/node/url.d.ts +2 -0
- package/dist/neutral/node/url.d.ts.map +1 -0
- package/dist/neutral/object.d.ts +2 -1
- package/dist/neutral/object.d.ts.map +1 -0
- package/dist/neutral/object.mjs +442 -1
- package/dist/neutral/object.mjs.map +7 -0
- package/dist/neutral/object.model.d.ts +2 -1
- package/dist/neutral/object.model.d.ts.map +1 -0
- package/dist/neutral/object.model.mjs +1 -1
- package/dist/neutral/object.model.mjs.map +7 -0
- package/dist/neutral/profile.d.ts +2 -1
- package/dist/neutral/profile.d.ts.map +1 -0
- package/dist/neutral/profile.mjs +37 -1
- package/dist/neutral/profile.mjs.map +7 -0
- package/dist/neutral/profile.model.d.ts +2 -1
- package/dist/neutral/profile.model.d.ts.map +1 -0
- package/dist/neutral/profile.model.mjs +1 -1
- package/dist/neutral/profile.model.mjs.map +7 -0
- package/dist/neutral/promise.d.ts +2 -1
- package/dist/neutral/promise.d.ts.map +1 -0
- package/dist/neutral/promise.mjs +57 -1
- package/dist/neutral/promise.mjs.map +7 -0
- package/dist/neutral/promise.model.d.ts +2 -1
- package/dist/neutral/promise.model.d.ts.map +1 -0
- package/dist/neutral/promise.model.mjs +1 -1
- package/dist/neutral/promise.model.mjs.map +7 -0
- package/dist/neutral/retry.d.ts +2 -1
- package/dist/neutral/retry.d.ts.map +1 -0
- package/dist/neutral/retry.mjs +112 -1
- package/dist/neutral/retry.mjs.map +7 -0
- package/dist/neutral/retry.model.d.ts +2 -1
- package/dist/neutral/retry.model.d.ts.map +1 -0
- package/dist/neutral/retry.model.mjs +1 -1
- package/dist/neutral/retry.model.mjs.map +7 -0
- package/dist/neutral/set.d.ts +2 -1
- package/dist/neutral/set.d.ts.map +1 -0
- package/dist/neutral/set.mjs +20 -1
- package/dist/neutral/set.mjs.map +7 -0
- package/dist/neutral/static-implements.d.ts +2 -1
- package/dist/neutral/static-implements.d.ts.map +1 -0
- package/dist/neutral/static-implements.mjs +10 -1
- package/dist/neutral/static-implements.mjs.map +7 -0
- package/dist/neutral/storage.d.ts +2 -1
- package/dist/neutral/storage.d.ts.map +1 -0
- package/dist/neutral/storage.mjs +1 -1
- package/dist/neutral/storage.mjs.map +7 -0
- package/dist/neutral/storage.model.d.ts +2 -1
- package/dist/neutral/storage.model.d.ts.map +1 -0
- package/dist/neutral/storage.model.mjs +1 -1
- package/dist/neutral/storage.model.mjs.map +7 -0
- package/dist/neutral/telemetry-exporter.d.ts +2 -1
- package/dist/neutral/telemetry-exporter.d.ts.map +1 -0
- package/dist/neutral/telemetry-exporter.mjs +88 -1
- package/dist/neutral/telemetry-exporter.mjs.map +7 -0
- package/dist/neutral/telemetry.d.ts +2 -1
- package/dist/neutral/telemetry.d.ts.map +1 -0
- package/dist/neutral/telemetry.mjs +159 -1
- package/dist/neutral/telemetry.mjs.map +7 -0
- package/dist/neutral/telemetry.model.d.ts +2 -1
- package/dist/neutral/telemetry.model.d.ts.map +1 -0
- package/dist/neutral/telemetry.model.mjs +1 -1
- package/dist/neutral/telemetry.model.mjs.map +7 -0
- package/dist/neutral/timer.d.ts +2 -1
- package/dist/neutral/timer.d.ts.map +1 -0
- package/dist/neutral/timer.mjs +87 -1
- package/dist/neutral/timer.mjs.map +7 -0
- package/dist/neutral/typeof.d.ts +2 -1
- package/dist/neutral/typeof.d.ts.map +1 -0
- package/dist/neutral/typeof.mjs +255 -1
- package/dist/neutral/typeof.mjs.map +7 -0
- package/dist/neutral/typeof.model.d.ts +2 -1
- package/dist/neutral/typeof.model.d.ts.map +1 -0
- package/dist/neutral/typeof.model.mjs +1 -1
- package/dist/neutral/typeof.model.mjs.map +7 -0
- package/dist/neutral/url.d.ts +2 -1
- package/dist/neutral/url.mjs +12 -1
- package/dist/neutral/url.mjs.map +7 -0
- package/dist/neutral/zod.d.ts +2 -0
- package/dist/neutral/zod.d.ts.map +1 -0
- package/dist/neutral/zod.mjs +147 -0
- package/dist/neutral/zod.mjs.map +7 -0
- package/dist/neutral/zod.model.d.ts +2 -0
- package/dist/neutral/zod.model.d.ts.map +1 -0
- package/dist/neutral/zod.model.mjs +1 -0
- package/dist/neutral/zod.model.mjs.map +7 -0
- package/dist/node/api.d.ts +2 -0
- package/dist/node/api.d.ts.map +1 -0
- package/dist/node/api.model.d.ts +2 -0
- package/dist/node/api.model.d.ts.map +1 -0
- package/dist/node/array.d.ts +2 -0
- package/dist/node/array.d.ts.map +1 -0
- package/dist/node/arraybuffer.d.ts +2 -0
- package/dist/node/arraybuffer.d.ts.map +1 -0
- package/dist/node/assert.d.ts +2 -0
- package/dist/node/assert.d.ts.map +1 -0
- package/dist/node/assert.model.d.ts +2 -0
- package/dist/node/assert.model.d.ts.map +1 -0
- package/dist/node/base.d.ts +2 -0
- package/dist/node/base.d.ts.map +1 -0
- package/dist/node/base.model.d.ts +2 -0
- package/dist/node/base.model.d.ts.map +1 -0
- package/dist/node/browser/platform.d.ts +2 -0
- package/dist/node/browser/platform.d.ts.map +1 -0
- package/dist/node/browser/url.d.ts +2 -0
- package/dist/node/browser/url.d.ts.map +1 -0
- package/dist/node/creatable.d.ts +2 -0
- package/dist/node/creatable.d.ts.map +1 -0
- package/dist/node/creatable.model.d.ts +2 -0
- package/dist/node/creatable.model.d.ts.map +1 -0
- package/dist/node/decimal-precision.d.ts +2 -0
- package/dist/node/decimal-precision.d.ts.map +1 -0
- package/dist/node/delay.d.ts +2 -0
- package/dist/node/delay.d.ts.map +1 -0
- package/dist/node/ellipsize.d.ts +2 -0
- package/dist/node/ellipsize.d.ts.map +1 -0
- package/dist/node/enum.d.ts +2 -0
- package/dist/node/enum.d.ts.map +1 -0
- package/dist/node/enum.model.d.ts +2 -0
- package/dist/node/enum.model.d.ts.map +1 -0
- package/dist/node/error.d.ts +2 -0
- package/dist/node/error.d.ts.map +1 -0
- package/dist/node/error.model.d.ts +2 -0
- package/dist/node/error.model.d.ts.map +1 -0
- package/dist/node/events.d.ts +2 -0
- package/dist/node/events.d.ts.map +1 -0
- package/dist/node/events.model.d.ts +2 -0
- package/dist/node/events.model.d.ts.map +1 -0
- package/dist/node/exists.d.ts +2 -0
- package/dist/node/exists.d.ts.map +1 -0
- package/dist/node/fetch.d.ts +2 -0
- package/dist/node/fetch.d.ts.map +1 -0
- package/dist/node/fetch.model.d.ts +2 -0
- package/dist/node/fetch.model.d.ts.map +1 -0
- package/dist/node/forget.d.ts +2 -0
- package/dist/node/forget.d.ts.map +1 -0
- package/dist/node/forget.model.d.ts +2 -0
- package/dist/node/forget.model.d.ts.map +1 -0
- package/dist/node/function-name.d.ts +2 -0
- package/dist/node/function-name.d.ts.map +1 -0
- package/dist/node/hex.d.ts +2 -0
- package/dist/node/hex.d.ts.map +1 -0
- package/dist/node/hex.model.d.ts +2 -0
- package/dist/node/hex.model.d.ts.map +1 -0
- package/dist/node/index.d.ts +31 -31
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.mjs +3424 -31
- package/dist/node/index.mjs.map +7 -0
- package/dist/node/logger.d.ts +2 -0
- package/dist/node/logger.d.ts.map +1 -0
- package/dist/node/model.d.ts +19 -0
- package/dist/node/model.d.ts.map +1 -0
- package/dist/node/modules/api/ApiClient.d.ts +10 -0
- package/dist/node/modules/api/ApiClient.d.ts.map +1 -0
- package/dist/node/modules/api/ApiConfig.d.ts +9 -0
- package/dist/node/modules/api/ApiConfig.d.ts.map +1 -0
- package/dist/node/modules/api/ApiEndpoint.d.ts +19 -0
- package/dist/node/modules/api/ApiEndpoint.d.ts.map +1 -0
- package/dist/node/modules/api/ApiStage.d.ts +11 -0
- package/dist/node/modules/api/ApiStage.d.ts.map +1 -0
- package/dist/node/modules/api/getApiStage.d.ts +8 -0
- package/dist/node/modules/api/getApiStage.d.ts.map +1 -0
- package/dist/node/modules/api/index.d.ts +6 -0
- package/dist/node/modules/api/index.d.ts.map +1 -0
- package/dist/node/modules/api/model.d.ts +3 -0
- package/dist/node/modules/api/model.d.ts.map +1 -0
- package/dist/node/modules/array/containsAll.d.ts +8 -0
- package/dist/node/modules/array/containsAll.d.ts.map +1 -0
- package/dist/node/modules/array/distinct.d.ts +6 -0
- package/dist/node/modules/array/distinct.d.ts.map +1 -0
- package/dist/node/modules/array/filterAs.d.ts +8 -0
- package/dist/node/modules/array/filterAs.d.ts.map +1 -0
- package/dist/node/modules/array/filterAsync.d.ts +9 -0
- package/dist/node/modules/array/filterAsync.d.ts.map +1 -0
- package/dist/node/modules/array/findAs.d.ts +15 -0
- package/dist/node/modules/array/findAs.d.ts.map +1 -0
- package/dist/node/modules/array/flatten.d.ts +8 -0
- package/dist/node/modules/array/flatten.d.ts.map +1 -0
- package/dist/node/modules/array/index.d.ts +8 -0
- package/dist/node/modules/array/index.d.ts.map +1 -0
- package/dist/node/modules/array/uniq.d.ts +14 -0
- package/dist/node/modules/array/uniq.d.ts.map +1 -0
- package/dist/node/modules/arraybuffer/equalArrayBuffers.d.ts +8 -0
- package/dist/node/modules/arraybuffer/equalArrayBuffers.d.ts.map +1 -0
- package/dist/node/modules/arraybuffer/index.d.ts +5 -0
- package/dist/node/modules/arraybuffer/index.d.ts.map +1 -0
- package/dist/node/modules/arraybuffer/isArrayBuffer.d.ts +7 -0
- package/dist/node/modules/arraybuffer/isArrayBuffer.d.ts.map +1 -0
- package/dist/node/modules/arraybuffer/toArrayBuffer.d.ts +11 -0
- package/dist/node/modules/arraybuffer/toArrayBuffer.d.ts.map +1 -0
- package/dist/node/modules/arraybuffer/toUint8Array.d.ts +11 -0
- package/dist/node/modules/arraybuffer/toUint8Array.d.ts.map +1 -0
- package/dist/node/modules/assert/assertDefinedEx.d.ts +41 -0
- package/dist/node/modules/assert/assertDefinedEx.d.ts.map +1 -0
- package/dist/node/modules/assert/assertEx.d.ts +41 -0
- package/dist/node/modules/assert/assertEx.d.ts.map +1 -0
- package/dist/node/modules/assert/index.d.ts +4 -0
- package/dist/node/modules/assert/index.d.ts.map +1 -0
- package/dist/node/modules/assert/model.d.ts +2 -0
- package/dist/node/modules/assert/model.d.ts.map +1 -0
- package/dist/node/modules/assert/types.d.ts +36 -0
- package/dist/node/modules/assert/types.d.ts.map +1 -0
- package/dist/node/modules/base/Base.d.ts +53 -0
- package/dist/node/modules/base/Base.d.ts.map +1 -0
- package/dist/node/modules/base/globallyUnique.d.ts +21 -0
- package/dist/node/modules/base/globallyUnique.d.ts.map +1 -0
- package/dist/node/modules/base/index.d.ts +3 -0
- package/dist/node/modules/base/index.d.ts.map +1 -0
- package/dist/node/modules/base/model.d.ts +2 -0
- package/dist/node/modules/base/model.d.ts.map +1 -0
- package/dist/node/modules/creatable/AbstractCreatable.d.ts +123 -0
- package/dist/node/modules/creatable/AbstractCreatable.d.ts.map +1 -0
- package/dist/node/modules/creatable/Creatable.d.ts +49 -0
- package/dist/node/modules/creatable/Creatable.d.ts.map +1 -0
- package/dist/node/modules/creatable/Factory.d.ts +28 -0
- package/dist/node/modules/creatable/Factory.d.ts.map +1 -0
- package/dist/node/modules/creatable/index.d.ts +5 -0
- package/dist/node/modules/creatable/index.d.ts.map +1 -0
- package/dist/node/modules/creatable/lib/getFunctionName.d.ts +7 -0
- package/dist/node/modules/creatable/lib/getFunctionName.d.ts.map +1 -0
- package/dist/node/modules/creatable/lib/getRootFunction.d.ts +8 -0
- package/dist/node/modules/creatable/lib/getRootFunction.d.ts.map +1 -0
- package/dist/node/modules/creatable/lib/index.d.ts +3 -0
- package/dist/node/modules/creatable/lib/index.d.ts.map +1 -0
- package/dist/node/modules/creatable/model/CreatableInstance.d.ts +16 -0
- package/dist/node/modules/creatable/model/CreatableInstance.d.ts.map +1 -0
- package/dist/node/modules/creatable/model/CreatableParams.d.ts +16 -0
- package/dist/node/modules/creatable/model/CreatableParams.d.ts.map +1 -0
- package/dist/node/modules/creatable/model/CreatableStatusReporter.d.ts +15 -0
- package/dist/node/modules/creatable/model/CreatableStatusReporter.d.ts.map +1 -0
- package/dist/node/modules/creatable/model/Labels.d.ts +24 -0
- package/dist/node/modules/creatable/model/Labels.d.ts.map +1 -0
- package/dist/node/modules/creatable/model/index.d.ts +5 -0
- package/dist/node/modules/creatable/model/index.d.ts.map +1 -0
- package/dist/node/modules/creatable/model.d.ts +3 -0
- package/dist/node/modules/creatable/model.d.ts.map +1 -0
- package/dist/node/modules/decimal-precision/fromFixedPoint.d.ts +8 -0
- package/dist/node/modules/decimal-precision/fromFixedPoint.d.ts.map +1 -0
- package/dist/node/modules/decimal-precision/index.d.ts +4 -0
- package/dist/node/modules/decimal-precision/index.d.ts.map +1 -0
- package/dist/node/modules/decimal-precision/toDecimalPrecision.d.ts +8 -0
- package/dist/node/modules/decimal-precision/toDecimalPrecision.d.ts.map +1 -0
- package/dist/node/modules/decimal-precision/toFixedPoint.d.ts +8 -0
- package/dist/node/modules/decimal-precision/toFixedPoint.d.ts.map +1 -0
- package/dist/node/modules/delay/delay.d.ts +7 -0
- package/dist/node/modules/delay/delay.d.ts.map +1 -0
- package/dist/node/modules/delay/index.d.ts +2 -0
- package/dist/node/modules/delay/index.d.ts.map +1 -0
- package/dist/node/modules/ellipsize/index.d.ts +8 -0
- package/dist/node/modules/ellipsize/index.d.ts.map +1 -0
- package/dist/node/modules/enum/Enum.d.ts +88 -0
- package/dist/node/modules/enum/Enum.d.ts.map +1 -0
- package/dist/node/modules/enum/index.d.ts +2 -0
- package/dist/node/modules/enum/index.d.ts.map +1 -0
- package/dist/node/modules/enum/model.d.ts +2 -0
- package/dist/node/modules/enum/model.d.ts.map +1 -0
- package/dist/node/modules/error/assert.d.ts +12 -0
- package/dist/node/modules/error/assert.d.ts.map +1 -0
- package/dist/node/modules/error/handleError.d.ts +15 -0
- package/dist/node/modules/error/handleError.d.ts.map +1 -0
- package/dist/node/modules/error/index.d.ts +3 -0
- package/dist/node/modules/error/index.d.ts.map +1 -0
- package/dist/node/modules/error/model.d.ts +2 -0
- package/dist/node/modules/error/model.d.ts.map +1 -0
- package/dist/node/modules/events/BaseEmitter.d.ts +74 -0
- package/dist/node/modules/events/BaseEmitter.d.ts.map +1 -0
- package/dist/node/modules/events/Events/Events.d.ts +132 -0
- package/dist/node/modules/events/Events/Events.d.ts.map +1 -0
- package/dist/node/modules/events/Events/index.d.ts +2 -0
- package/dist/node/modules/events/Events/index.d.ts.map +1 -0
- package/dist/node/modules/events/index.d.ts +4 -0
- package/dist/node/modules/events/index.d.ts.map +1 -0
- package/dist/node/modules/events/model/Event.d.ts +21 -0
- package/dist/node/modules/events/model/Event.d.ts.map +1 -0
- package/dist/node/modules/events/model/EventEmitter.d.ts +25 -0
- package/dist/node/modules/events/model/EventEmitter.d.ts.map +1 -0
- package/dist/node/modules/events/model/index.d.ts +3 -0
- package/dist/node/modules/events/model/index.d.ts.map +1 -0
- package/dist/node/modules/events/model.d.ts +3 -0
- package/dist/node/modules/events/model.d.ts.map +1 -0
- package/dist/node/modules/exists/index.d.ts +10 -0
- package/dist/node/modules/exists/index.d.ts.map +1 -0
- package/dist/node/modules/fetch/FetchClient.d.ts +46 -0
- package/dist/node/modules/fetch/FetchClient.d.ts.map +1 -0
- package/dist/node/modules/fetch/FetchError.d.ts +80 -0
- package/dist/node/modules/fetch/FetchError.d.ts.map +1 -0
- package/dist/node/modules/fetch/FetchJsonClient.d.ts +19 -0
- package/dist/node/modules/fetch/FetchJsonClient.d.ts.map +1 -0
- package/dist/node/modules/fetch/fetchCompress.d.ts +12 -0
- package/dist/node/modules/fetch/fetchCompress.d.ts.map +1 -0
- package/dist/node/modules/fetch/fetchJson.d.ts +7 -0
- package/dist/node/modules/fetch/fetchJson.d.ts.map +1 -0
- package/dist/node/modules/fetch/index.d.ts +11 -0
- package/dist/node/modules/fetch/index.d.ts.map +1 -0
- package/dist/node/modules/fetch/methods.d.ts +12 -0
- package/dist/node/modules/fetch/methods.d.ts.map +1 -0
- package/dist/node/modules/fetch/model.d.ts +5 -0
- package/dist/node/modules/fetch/model.d.ts.map +1 -0
- package/dist/node/modules/fetch/parseJson.d.ts +16 -0
- package/dist/node/modules/fetch/parseJson.d.ts.map +1 -0
- package/dist/node/modules/fetch/types.d.ts +12 -0
- package/dist/node/modules/fetch/types.d.ts.map +1 -0
- package/dist/node/modules/forget/ForgetConfig.d.ts +21 -0
- package/dist/node/modules/forget/ForgetConfig.d.ts.map +1 -0
- package/dist/node/modules/forget/ForgetNodeConfig.d.ts +13 -0
- package/dist/node/modules/forget/ForgetNodeConfig.d.ts.map +1 -0
- package/dist/node/modules/forget/ForgetPromise.d.ts +49 -0
- package/dist/node/modules/forget/ForgetPromise.d.ts.map +1 -0
- package/dist/node/modules/forget/ForgetPromiseNode.d.ts +15 -0
- package/dist/node/modules/forget/ForgetPromiseNode.d.ts.map +1 -0
- package/dist/node/modules/forget/forget.d.ts +10 -0
- package/dist/node/modules/forget/forget.d.ts.map +1 -0
- package/dist/node/modules/forget/forgetNode.d.ts +9 -0
- package/dist/node/modules/forget/forgetNode.d.ts.map +1 -0
- package/dist/node/modules/forget/index.d.ts +2 -0
- package/dist/node/modules/forget/index.d.ts.map +1 -0
- package/dist/node/modules/forget/model.d.ts +3 -0
- package/dist/node/modules/forget/model.d.ts.map +1 -0
- package/dist/node/modules/forget/neutral/index.d.ts +4 -0
- package/dist/node/modules/forget/neutral/index.d.ts.map +1 -0
- package/dist/node/modules/forget/node/index.d.ts +4 -0
- package/dist/node/modules/forget/node/index.d.ts.map +1 -0
- package/dist/node/modules/function-name/functionName.d.ts +7 -0
- package/dist/node/modules/function-name/functionName.d.ts.map +1 -0
- package/dist/node/modules/function-name/index.d.ts +2 -0
- package/dist/node/modules/function-name/index.d.ts.map +1 -0
- package/dist/node/modules/hex/HexRegEx.d.ts +19 -0
- package/dist/node/modules/hex/HexRegEx.d.ts.map +1 -0
- package/dist/node/modules/hex/address/AddressTransformZod.d.ts +10 -0
- package/dist/node/modules/hex/address/AddressTransformZod.d.ts.map +1 -0
- package/dist/node/modules/hex/address/AddressValidationZod.d.ts +10 -0
- package/dist/node/modules/hex/address/AddressValidationZod.d.ts.map +1 -0
- package/dist/node/modules/hex/address/address.d.ts +18 -0
- package/dist/node/modules/hex/address/address.d.ts.map +1 -0
- package/dist/node/modules/hex/address/as.d.ts +13 -0
- package/dist/node/modules/hex/address/as.d.ts.map +1 -0
- package/dist/node/modules/hex/address/index.d.ts +7 -0
- package/dist/node/modules/hex/address/index.d.ts.map +1 -0
- package/dist/node/modules/hex/address/is.d.ts +12 -0
- package/dist/node/modules/hex/address/is.d.ts.map +1 -0
- package/dist/node/modules/hex/address/to.d.ts +12 -0
- package/dist/node/modules/hex/address/to.d.ts.map +1 -0
- package/dist/node/modules/hex/ethAddress.d.ts +45 -0
- package/dist/node/modules/hex/ethAddress.d.ts.map +1 -0
- package/dist/node/modules/hex/hash/as.d.ts +11 -0
- package/dist/node/modules/hex/hash/as.d.ts.map +1 -0
- package/dist/node/modules/hex/hash/hash.d.ts +28 -0
- package/dist/node/modules/hex/hash/hash.d.ts.map +1 -0
- package/dist/node/modules/hex/hash/index.d.ts +5 -0
- package/dist/node/modules/hex/hash/index.d.ts.map +1 -0
- package/dist/node/modules/hex/hash/is.d.ts +9 -0
- package/dist/node/modules/hex/hash/is.d.ts.map +1 -0
- package/dist/node/modules/hex/hash/zod.d.ts +6 -0
- package/dist/node/modules/hex/hash/zod.d.ts.map +1 -0
- package/dist/node/modules/hex/hex/as.d.ts +11 -0
- package/dist/node/modules/hex/hex/as.d.ts.map +1 -0
- package/dist/node/modules/hex/hex/from/from.d.ts +8 -0
- package/dist/node/modules/hex/hex/from/from.d.ts.map +1 -0
- package/dist/node/modules/hex/hex/from/fromArrayBuffer.d.ts +8 -0
- package/dist/node/modules/hex/hex/from/fromArrayBuffer.d.ts.map +1 -0
- package/dist/node/modules/hex/hex/from/fromBigInt.d.ts +8 -0
- package/dist/node/modules/hex/hex/from/fromBigInt.d.ts.map +1 -0
- package/dist/node/modules/hex/hex/from/fromHexString.d.ts +9 -0
- package/dist/node/modules/hex/hex/from/fromHexString.d.ts.map +1 -0
- package/dist/node/modules/hex/hex/from/fromNumber.d.ts +9 -0
- package/dist/node/modules/hex/hex/from/fromNumber.d.ts.map +1 -0
- package/dist/node/modules/hex/hex/from/index.d.ts +6 -0
- package/dist/node/modules/hex/hex/from/index.d.ts.map +1 -0
- package/dist/node/modules/hex/hex/hex.d.ts +17 -0
- package/dist/node/modules/hex/hex/hex.d.ts.map +1 -0
- package/dist/node/modules/hex/hex/index.d.ts +9 -0
- package/dist/node/modules/hex/hex/index.d.ts.map +1 -0
- package/dist/node/modules/hex/hex/is.d.ts +9 -0
- package/dist/node/modules/hex/hex/is.d.ts.map +1 -0
- package/dist/node/modules/hex/hex/isHexZero.d.ts +7 -0
- package/dist/node/modules/hex/hex/isHexZero.d.ts.map +1 -0
- package/dist/node/modules/hex/hex/legacy.d.ts +7 -0
- package/dist/node/modules/hex/hex/legacy.d.ts.map +1 -0
- package/dist/node/modules/hex/hex/nibble.d.ts +13 -0
- package/dist/node/modules/hex/hex/nibble.d.ts.map +1 -0
- package/dist/node/modules/hex/hex/to.d.ts +8 -0
- package/dist/node/modules/hex/hex/to.d.ts.map +1 -0
- package/dist/node/modules/hex/hexToBigInt.d.ts +8 -0
- package/dist/node/modules/hex/hexToBigInt.d.ts.map +1 -0
- package/dist/node/modules/hex/index.d.ts +8 -0
- package/dist/node/modules/hex/index.d.ts.map +1 -0
- package/dist/node/modules/hex/model.d.ts +3 -0
- package/dist/node/modules/hex/model.d.ts.map +1 -0
- package/dist/node/modules/hex/zod.d.ts +6 -0
- package/dist/node/modules/hex/zod.d.ts.map +1 -0
- package/dist/node/modules/logger/ConsoleLogger.d.ts +7 -0
- package/dist/node/modules/logger/ConsoleLogger.d.ts.map +1 -0
- package/dist/node/modules/logger/IdLogger.d.ts +19 -0
- package/dist/node/modules/logger/IdLogger.d.ts.map +1 -0
- package/dist/node/modules/logger/LevelLogger.d.ts +47 -0
- package/dist/node/modules/logger/LevelLogger.d.ts.map +1 -0
- package/dist/node/modules/logger/NoOpLogFunction.d.ts +3 -0
- package/dist/node/modules/logger/NoOpLogFunction.d.ts.map +1 -0
- package/dist/node/modules/logger/SilentLogger.d.ts +17 -0
- package/dist/node/modules/logger/SilentLogger.d.ts.map +1 -0
- package/dist/node/modules/logger/getFunctionName.d.ts +7 -0
- package/dist/node/modules/logger/getFunctionName.d.ts.map +1 -0
- package/dist/node/modules/logger/index.d.ts +7 -0
- package/dist/node/modules/logger/index.d.ts.map +1 -0
- package/dist/node/modules/object/AsObjectFactory.d.ts +8 -0
- package/dist/node/modules/object/AsObjectFactory.d.ts.map +1 -0
- package/dist/node/modules/object/AsTypeFactory.d.ts +11 -0
- package/dist/node/modules/object/AsTypeFactory.d.ts.map +1 -0
- package/dist/node/modules/object/EmptyObject.d.ts +2 -0
- package/dist/node/modules/object/EmptyObject.d.ts.map +1 -0
- package/dist/node/modules/object/IsObjectFactory.d.ts +16 -0
- package/dist/node/modules/object/IsObjectFactory.d.ts.map +1 -0
- package/dist/node/modules/object/JsonObject.d.ts +49 -0
- package/dist/node/modules/object/JsonObject.d.ts.map +1 -0
- package/dist/node/modules/object/ObjectWrapper.d.ts +9 -0
- package/dist/node/modules/object/ObjectWrapper.d.ts.map +1 -0
- package/dist/node/modules/object/OmitStartsWith.d.ts +18 -0
- package/dist/node/modules/object/OmitStartsWith.d.ts.map +1 -0
- package/dist/node/modules/object/Optional.d.ts +3 -0
- package/dist/node/modules/object/Optional.d.ts.map +1 -0
- package/dist/node/modules/object/Override.d.ts +4 -0
- package/dist/node/modules/object/Override.d.ts.map +1 -0
- package/dist/node/modules/object/PartialRecord.d.ts +3 -0
- package/dist/node/modules/object/PartialRecord.d.ts.map +1 -0
- package/dist/node/modules/object/PickStartsWith.d.ts +9 -0
- package/dist/node/modules/object/PickStartsWith.d.ts.map +1 -0
- package/dist/node/modules/object/Simplify.d.ts +5 -0
- package/dist/node/modules/object/Simplify.d.ts.map +1 -0
- package/dist/node/modules/object/StringKeyObject.d.ts +3 -0
- package/dist/node/modules/object/StringKeyObject.d.ts.map +1 -0
- package/dist/node/modules/object/Validator.d.ts +13 -0
- package/dist/node/modules/object/Validator.d.ts.map +1 -0
- package/dist/node/modules/object/WithAdditional.d.ts +4 -0
- package/dist/node/modules/object/WithAdditional.d.ts.map +1 -0
- package/dist/node/modules/object/asObject.d.ts +4 -0
- package/dist/node/modules/object/asObject.d.ts.map +1 -0
- package/dist/node/modules/object/deepMerge.d.ts +49 -0
- package/dist/node/modules/object/deepMerge.d.ts.map +1 -0
- package/dist/node/modules/object/index-deprecated.d.ts +2 -0
- package/dist/node/modules/object/index-deprecated.d.ts.map +1 -0
- package/dist/node/modules/object/index-un-deprecated.d.ts +22 -0
- package/dist/node/modules/object/index-un-deprecated.d.ts.map +1 -0
- package/dist/node/modules/object/index.d.ts +3 -0
- package/dist/node/modules/object/index.d.ts.map +1 -0
- package/dist/node/modules/object/isType.d.ts +4 -0
- package/dist/node/modules/object/isType.d.ts.map +1 -0
- package/dist/node/modules/object/model.d.ts +14 -0
- package/dist/node/modules/object/model.d.ts.map +1 -0
- package/dist/node/modules/object/omitBy.d.ts +21 -0
- package/dist/node/modules/object/omitBy.d.ts.map +1 -0
- package/dist/node/modules/object/pickBy.d.ts +21 -0
- package/dist/node/modules/object/pickBy.d.ts.map +1 -0
- package/dist/node/modules/object/removeFields.d.ts +9 -0
- package/dist/node/modules/object/removeFields.d.ts.map +1 -0
- package/dist/node/modules/object/toSafeJson.d.ts +41 -0
- package/dist/node/modules/object/toSafeJson.d.ts.map +1 -0
- package/dist/node/modules/object-model/AnyObject.d.ts +8 -0
- package/dist/node/modules/object-model/AnyObject.d.ts.map +1 -0
- package/dist/node/modules/object-model/AsTypeFactory.d.ts +12 -0
- package/dist/node/modules/object-model/AsTypeFactory.d.ts.map +1 -0
- package/dist/node/modules/object-model/AsTypeFunction.d.ts +14 -0
- package/dist/node/modules/object-model/AsTypeFunction.d.ts.map +1 -0
- package/dist/node/modules/object-model/Compare.d.ts +3 -0
- package/dist/node/modules/object-model/Compare.d.ts.map +1 -0
- package/dist/node/modules/object-model/EmptyObject.d.ts +8 -0
- package/dist/node/modules/object-model/EmptyObject.d.ts.map +1 -0
- package/dist/node/modules/object-model/index.d.ts +6 -0
- package/dist/node/modules/object-model/index.d.ts.map +1 -0
- package/dist/node/modules/object-model/model.d.ts +6 -0
- package/dist/node/modules/object-model/model.d.ts.map +1 -0
- package/dist/node/modules/object-model/types.d.ts +25 -0
- package/dist/node/modules/object-model/types.d.ts.map +1 -0
- package/dist/node/modules/platform/browser/index.d.ts +7 -0
- package/dist/node/modules/platform/browser/index.d.ts.map +1 -0
- package/dist/node/modules/platform/index-browser.d.ts +2 -0
- package/dist/node/modules/platform/index-browser.d.ts.map +1 -0
- package/dist/node/modules/platform/index-node.d.ts +2 -0
- package/dist/node/modules/platform/index-node.d.ts.map +1 -0
- package/dist/node/modules/platform/node/index.d.ts +9 -0
- package/dist/node/modules/platform/node/index.d.ts.map +1 -0
- package/dist/node/modules/profile/index.d.ts +2 -0
- package/dist/node/modules/profile/index.d.ts.map +1 -0
- package/dist/node/modules/profile/model.d.ts +2 -0
- package/dist/node/modules/profile/model.d.ts.map +1 -0
- package/dist/node/modules/profile/profiler.d.ts +17 -0
- package/dist/node/modules/profile/profiler.d.ts.map +1 -0
- package/dist/node/modules/promise/PromiseEx.d.ts +24 -0
- package/dist/node/modules/promise/PromiseEx.d.ts.map +1 -0
- package/dist/node/modules/promise/fulfilled.d.ts +7 -0
- package/dist/node/modules/promise/fulfilled.d.ts.map +1 -0
- package/dist/node/modules/promise/fulfilledValues.d.ts +20 -0
- package/dist/node/modules/promise/fulfilledValues.d.ts.map +1 -0
- package/dist/node/modules/promise/index.d.ts +7 -0
- package/dist/node/modules/promise/index.d.ts.map +1 -0
- package/dist/node/modules/promise/model.d.ts +3 -0
- package/dist/node/modules/promise/model.d.ts.map +1 -0
- package/dist/node/modules/promise/rejected.d.ts +7 -0
- package/dist/node/modules/promise/rejected.d.ts.map +1 -0
- package/dist/node/modules/promise/toPromise.d.ts +8 -0
- package/dist/node/modules/promise/toPromise.d.ts.map +1 -0
- package/dist/node/modules/promise/types.d.ts +23 -0
- package/dist/node/modules/promise/types.d.ts.map +1 -0
- package/dist/node/modules/retry/index.d.ts +2 -0
- package/dist/node/modules/retry/index.d.ts.map +1 -0
- package/dist/node/modules/retry/model.d.ts +2 -0
- package/dist/node/modules/retry/model.d.ts.map +1 -0
- package/dist/node/modules/retry/retry.d.ts +23 -0
- package/dist/node/modules/retry/retry.d.ts.map +1 -0
- package/dist/node/modules/set/index.d.ts +2 -0
- package/dist/node/modules/set/index.d.ts.map +1 -0
- package/dist/node/modules/set/lib/difference.d.ts +8 -0
- package/dist/node/modules/set/lib/difference.d.ts.map +1 -0
- package/dist/node/modules/set/lib/index.d.ts +4 -0
- package/dist/node/modules/set/lib/index.d.ts.map +1 -0
- package/dist/node/modules/set/lib/intersection.d.ts +8 -0
- package/dist/node/modules/set/lib/intersection.d.ts.map +1 -0
- package/dist/node/modules/set/lib/union.d.ts +8 -0
- package/dist/node/modules/set/lib/union.d.ts.map +1 -0
- package/dist/node/modules/static-implements/index.d.ts +2 -0
- package/dist/node/modules/static-implements/index.d.ts.map +1 -0
- package/dist/node/modules/static-implements/staticImplements.d.ts +7 -0
- package/dist/node/modules/static-implements/staticImplements.d.ts.map +1 -0
- package/dist/node/modules/storage/KeyValueStore.d.ts +34 -0
- package/dist/node/modules/storage/KeyValueStore.d.ts.map +1 -0
- package/dist/node/modules/storage/index.d.ts +2 -0
- package/dist/node/modules/storage/index.d.ts.map +1 -0
- package/dist/node/modules/storage/model.d.ts +2 -0
- package/dist/node/modules/storage/model.d.ts.map +1 -0
- package/dist/node/modules/telemetry/index.d.ts +3 -0
- package/dist/node/modules/telemetry/index.d.ts.map +1 -0
- package/dist/node/modules/telemetry/model.d.ts +2 -0
- package/dist/node/modules/telemetry/model.d.ts.map +1 -0
- package/dist/node/modules/telemetry/span.d.ts +51 -0
- package/dist/node/modules/telemetry/span.d.ts.map +1 -0
- package/dist/node/modules/telemetry/timeBudget.d.ts +12 -0
- package/dist/node/modules/telemetry/timeBudget.d.ts.map +1 -0
- package/dist/node/modules/telemetry-exporter/XyConsoleSpanExporter.d.ts +40 -0
- package/dist/node/modules/telemetry-exporter/XyConsoleSpanExporter.d.ts.map +1 -0
- package/dist/node/modules/telemetry-exporter/index.d.ts +2 -0
- package/dist/node/modules/telemetry-exporter/index.d.ts.map +1 -0
- package/dist/node/modules/timer/index.d.ts +2 -0
- package/dist/node/modules/timer/index.d.ts.map +1 -0
- package/dist/node/modules/timer/setTimeoutEx.d.ts +37 -0
- package/dist/node/modules/timer/setTimeoutEx.d.ts.map +1 -0
- package/dist/node/modules/typeof/Brand.d.ts +5 -0
- package/dist/node/modules/typeof/Brand.d.ts.map +1 -0
- package/dist/node/modules/typeof/IdentityFunction.d.ts +3 -0
- package/dist/node/modules/typeof/IdentityFunction.d.ts.map +1 -0
- package/dist/node/modules/typeof/ObjectTypeShape.d.ts +5 -0
- package/dist/node/modules/typeof/ObjectTypeShape.d.ts.map +1 -0
- package/dist/node/modules/typeof/TypeOfTypes.d.ts +3 -0
- package/dist/node/modules/typeof/TypeOfTypes.d.ts.map +1 -0
- package/dist/node/modules/typeof/Typed.d.ts +41 -0
- package/dist/node/modules/typeof/Typed.d.ts.map +1 -0
- package/dist/node/modules/typeof/ifDefined.d.ts +8 -0
- package/dist/node/modules/typeof/ifDefined.d.ts.map +1 -0
- package/dist/node/modules/typeof/ifTypeOf.d.ts +11 -0
- package/dist/node/modules/typeof/ifTypeOf.d.ts.map +1 -0
- package/dist/node/modules/typeof/index.d.ts +12 -0
- package/dist/node/modules/typeof/index.d.ts.map +1 -0
- package/dist/node/modules/typeof/is.d.ts +116 -0
- package/dist/node/modules/typeof/is.d.ts.map +1 -0
- package/dist/node/modules/typeof/isType.d.ts +9 -0
- package/dist/node/modules/typeof/isType.d.ts.map +1 -0
- package/dist/node/modules/typeof/model.d.ts +7 -0
- package/dist/node/modules/typeof/model.d.ts.map +1 -0
- package/dist/node/modules/typeof/typeOf.d.ts +8 -0
- package/dist/node/modules/typeof/typeOf.d.ts.map +1 -0
- package/dist/node/modules/typeof/validateType.d.ts +10 -0
- package/dist/node/modules/typeof/validateType.d.ts.map +1 -0
- package/dist/node/modules/url/index-browser.d.ts +12 -0
- package/dist/node/modules/url/index-browser.d.ts.map +1 -0
- package/dist/node/modules/url/index-neutral.d.ts +12 -0
- package/dist/node/modules/url/index-neutral.d.ts.map +1 -0
- package/dist/node/modules/url/index-node.d.ts +13 -0
- package/dist/node/modules/url/index-node.d.ts.map +1 -0
- package/dist/node/modules/url/lib/index.d.ts +2 -0
- package/dist/node/modules/url/lib/index.d.ts.map +1 -0
- package/dist/node/modules/url/lib/isLocalhost.d.ts +7 -0
- package/dist/node/modules/url/lib/isLocalhost.d.ts.map +1 -0
- package/dist/node/modules/zod/Config.d.ts +8 -0
- package/dist/node/modules/zod/Config.d.ts.map +1 -0
- package/dist/node/modules/zod/index.d.ts +8 -0
- package/dist/node/modules/zod/index.d.ts.map +1 -0
- package/dist/node/modules/zod/model.d.ts +2 -0
- package/dist/node/modules/zod/model.d.ts.map +1 -0
- package/dist/node/modules/zod/zodAllFactory.d.ts +20 -0
- package/dist/node/modules/zod/zodAllFactory.d.ts.map +1 -0
- package/dist/node/modules/zod/zodAsAsyncFactory.d.ts +14 -0
- package/dist/node/modules/zod/zodAsAsyncFactory.d.ts.map +1 -0
- package/dist/node/modules/zod/zodAsFactory.d.ts +14 -0
- package/dist/node/modules/zod/zodAsFactory.d.ts.map +1 -0
- package/dist/node/modules/zod/zodIsFactory.d.ts +8 -0
- package/dist/node/modules/zod/zodIsFactory.d.ts.map +1 -0
- package/dist/node/modules/zod/zodToAsyncFactory.d.ts +14 -0
- package/dist/node/modules/zod/zodToAsyncFactory.d.ts.map +1 -0
- package/dist/node/modules/zod/zodToFactory.d.ts +14 -0
- package/dist/node/modules/zod/zodToFactory.d.ts.map +1 -0
- package/dist/node/neutral/url.d.ts +2 -0
- package/dist/node/neutral/url.d.ts.map +1 -0
- package/dist/node/node/platform.d.ts +2 -0
- package/dist/node/node/platform.d.ts.map +1 -0
- package/dist/node/node/url.d.ts +2 -0
- package/dist/node/node/url.d.ts.map +1 -0
- package/dist/node/object.d.ts +2 -0
- package/dist/node/object.d.ts.map +1 -0
- package/dist/node/object.model.d.ts +2 -0
- package/dist/node/object.model.d.ts.map +1 -0
- package/dist/node/platform.d.ts +2 -1
- package/dist/node/platform.mjs +18 -1
- package/dist/node/platform.mjs.map +7 -0
- package/dist/node/profile.d.ts +2 -0
- package/dist/node/profile.d.ts.map +1 -0
- package/dist/node/profile.model.d.ts +2 -0
- package/dist/node/profile.model.d.ts.map +1 -0
- package/dist/node/promise.d.ts +2 -0
- package/dist/node/promise.d.ts.map +1 -0
- package/dist/node/promise.model.d.ts +2 -0
- package/dist/node/promise.model.d.ts.map +1 -0
- package/dist/node/retry.d.ts +2 -0
- package/dist/node/retry.d.ts.map +1 -0
- package/dist/node/retry.model.d.ts +2 -0
- package/dist/node/retry.model.d.ts.map +1 -0
- package/dist/node/set.d.ts +2 -0
- package/dist/node/set.d.ts.map +1 -0
- package/dist/node/static-implements.d.ts +2 -0
- package/dist/node/static-implements.d.ts.map +1 -0
- package/dist/node/storage.d.ts +2 -0
- package/dist/node/storage.d.ts.map +1 -0
- package/dist/node/storage.model.d.ts +2 -0
- package/dist/node/storage.model.d.ts.map +1 -0
- package/dist/node/telemetry-exporter.d.ts +2 -0
- package/dist/node/telemetry-exporter.d.ts.map +1 -0
- package/dist/node/telemetry.d.ts +2 -0
- package/dist/node/telemetry.d.ts.map +1 -0
- package/dist/node/telemetry.model.d.ts +2 -0
- package/dist/node/telemetry.model.d.ts.map +1 -0
- package/dist/node/timer.d.ts +2 -0
- package/dist/node/timer.d.ts.map +1 -0
- package/dist/node/typeof.d.ts +2 -0
- package/dist/node/typeof.d.ts.map +1 -0
- package/dist/node/typeof.model.d.ts +2 -0
- package/dist/node/typeof.model.d.ts.map +1 -0
- package/dist/node/url.d.ts +2 -1
- package/dist/node/url.mjs +15 -1
- package/dist/node/url.mjs.map +7 -0
- package/dist/node/zod.d.ts +2 -0
- package/dist/node/zod.d.ts.map +1 -0
- package/dist/node/zod.model.d.ts +2 -0
- package/dist/node/zod.model.d.ts.map +1 -0
- package/package.json +113 -35
- package/dist/_pkg/api/neutral/ApiClient.d.ts +0 -9
- package/dist/_pkg/api/neutral/ApiConfig.d.ts +0 -8
- package/dist/_pkg/api/neutral/ApiEndpoint.d.ts +0 -18
- package/dist/_pkg/api/neutral/ApiStage.d.ts +0 -10
- package/dist/_pkg/api/neutral/getApiStage.d.ts +0 -7
- package/dist/_pkg/api/neutral/index.d.ts +0 -5
- package/dist/_pkg/api/neutral/index.mjs +0 -77
- package/dist/_pkg/api/neutral/model.d.ts +0 -2
- package/dist/_pkg/api/neutral/model.mjs +0 -0
- package/dist/_pkg/array/neutral/containsAll.d.ts +0 -7
- package/dist/_pkg/array/neutral/distinct.d.ts +0 -5
- package/dist/_pkg/array/neutral/filterAs.d.ts +0 -7
- package/dist/_pkg/array/neutral/filterAsync.d.ts +0 -8
- package/dist/_pkg/array/neutral/findAs.d.ts +0 -14
- package/dist/_pkg/array/neutral/flatten.d.ts +0 -7
- package/dist/_pkg/array/neutral/index.d.ts +0 -7
- package/dist/_pkg/array/neutral/index.mjs +0 -79
- package/dist/_pkg/array/neutral/uniq.d.ts +0 -13
- package/dist/_pkg/arraybuffer/neutral/equalArrayBuffers.d.ts +0 -7
- package/dist/_pkg/arraybuffer/neutral/index.d.ts +0 -4
- package/dist/_pkg/arraybuffer/neutral/index.mjs +0 -73
- package/dist/_pkg/arraybuffer/neutral/isArrayBuffer.d.ts +0 -6
- package/dist/_pkg/arraybuffer/neutral/toArrayBuffer.d.ts +0 -10
- package/dist/_pkg/arraybuffer/neutral/toUint8Array.d.ts +0 -10
- package/dist/_pkg/assert/neutral/assertDefinedEx.d.ts +0 -40
- package/dist/_pkg/assert/neutral/assertEx.d.ts +0 -40
- package/dist/_pkg/assert/neutral/index.d.ts +0 -3
- package/dist/_pkg/assert/neutral/index.mjs +0 -29
- package/dist/_pkg/assert/neutral/model.d.ts +0 -1
- package/dist/_pkg/assert/neutral/model.mjs +0 -0
- package/dist/_pkg/assert/neutral/types.d.ts +0 -35
- package/dist/_pkg/base/neutral/Base.d.ts +0 -52
- package/dist/_pkg/base/neutral/globallyUnique.d.ts +0 -20
- package/dist/_pkg/base/neutral/index.d.ts +0 -2
- package/dist/_pkg/base/neutral/index.mjs +0 -151
- package/dist/_pkg/base/neutral/model.d.ts +0 -1
- package/dist/_pkg/base/neutral/model.mjs +0 -0
- package/dist/_pkg/creatable/neutral/AbstractCreatable.d.ts +0 -122
- package/dist/_pkg/creatable/neutral/Creatable.d.ts +0 -48
- package/dist/_pkg/creatable/neutral/Factory.d.ts +0 -27
- package/dist/_pkg/creatable/neutral/index.d.ts +0 -4
- package/dist/_pkg/creatable/neutral/index.mjs +0 -395
- package/dist/_pkg/creatable/neutral/lib/getFunctionName.d.ts +0 -6
- package/dist/_pkg/creatable/neutral/lib/getRootFunction.d.ts +0 -7
- package/dist/_pkg/creatable/neutral/lib/index.d.ts +0 -2
- package/dist/_pkg/creatable/neutral/model/CreatableInstance.d.ts +0 -15
- package/dist/_pkg/creatable/neutral/model/CreatableParams.d.ts +0 -15
- package/dist/_pkg/creatable/neutral/model/CreatableStatusReporter.d.ts +0 -14
- package/dist/_pkg/creatable/neutral/model/Labels.d.ts +0 -23
- package/dist/_pkg/creatable/neutral/model/index.d.ts +0 -4
- package/dist/_pkg/creatable/neutral/model.d.ts +0 -2
- package/dist/_pkg/creatable/neutral/model.mjs +0 -0
- package/dist/_pkg/decimal-precision/neutral/fromFixedPoint.d.ts +0 -7
- package/dist/_pkg/decimal-precision/neutral/index.d.ts +0 -3
- package/dist/_pkg/decimal-precision/neutral/index.mjs +0 -38
- package/dist/_pkg/decimal-precision/neutral/toDecimalPrecision.d.ts +0 -7
- package/dist/_pkg/decimal-precision/neutral/toFixedPoint.d.ts +0 -7
- package/dist/_pkg/delay/neutral/delay.d.ts +0 -6
- package/dist/_pkg/delay/neutral/index.d.ts +0 -1
- package/dist/_pkg/delay/neutral/index.mjs +0 -8
- package/dist/_pkg/ellipsize/neutral/index.d.ts +0 -7
- package/dist/_pkg/ellipsize/neutral/index.mjs +0 -9
- package/dist/_pkg/enum/neutral/Enum.d.ts +0 -87
- package/dist/_pkg/enum/neutral/index.d.ts +0 -1
- package/dist/_pkg/enum/neutral/index.mjs +0 -7
- package/dist/_pkg/enum/neutral/model.d.ts +0 -1
- package/dist/_pkg/enum/neutral/model.mjs +0 -0
- package/dist/_pkg/error/neutral/assert.d.ts +0 -11
- package/dist/_pkg/error/neutral/handleError.d.ts +0 -14
- package/dist/_pkg/error/neutral/index.d.ts +0 -2
- package/dist/_pkg/error/neutral/index.mjs +0 -31
- package/dist/_pkg/error/neutral/model.d.ts +0 -1
- package/dist/_pkg/error/neutral/model.mjs +0 -0
- package/dist/_pkg/events/neutral/BaseEmitter.d.ts +0 -73
- package/dist/_pkg/events/neutral/Events/Events.d.ts +0 -131
- package/dist/_pkg/events/neutral/Events/index.d.ts +0 -1
- package/dist/_pkg/events/neutral/index.d.ts +0 -3
- package/dist/_pkg/events/neutral/index.mjs +0 -414
- package/dist/_pkg/events/neutral/model/Event.d.ts +0 -20
- package/dist/_pkg/events/neutral/model/EventEmitter.d.ts +0 -24
- package/dist/_pkg/events/neutral/model/index.d.ts +0 -2
- package/dist/_pkg/events/neutral/model.d.ts +0 -2
- package/dist/_pkg/events/neutral/model.mjs +0 -0
- package/dist/_pkg/exists/neutral/index.d.ts +0 -9
- package/dist/_pkg/exists/neutral/index.mjs +0 -7
- package/dist/_pkg/fetch/neutral/FetchClient.d.ts +0 -45
- package/dist/_pkg/fetch/neutral/FetchError.d.ts +0 -79
- package/dist/_pkg/fetch/neutral/FetchJsonClient.d.ts +0 -18
- package/dist/_pkg/fetch/neutral/fetchCompress.d.ts +0 -11
- package/dist/_pkg/fetch/neutral/fetchJson.d.ts +0 -6
- package/dist/_pkg/fetch/neutral/index.d.ts +0 -10
- package/dist/_pkg/fetch/neutral/index.mjs +0 -364
- package/dist/_pkg/fetch/neutral/methods.d.ts +0 -11
- package/dist/_pkg/fetch/neutral/model.d.ts +0 -4
- package/dist/_pkg/fetch/neutral/model.mjs +0 -0
- package/dist/_pkg/fetch/neutral/parseJson.d.ts +0 -15
- package/dist/_pkg/fetch/neutral/types.d.ts +0 -11
- package/dist/_pkg/forget/neutral/ForgetConfig.d.ts +0 -20
- package/dist/_pkg/forget/neutral/ForgetNodeConfig.d.ts +0 -12
- package/dist/_pkg/forget/neutral/ForgetPromise.d.ts +0 -48
- package/dist/_pkg/forget/neutral/ForgetPromiseNode.d.ts +0 -14
- package/dist/_pkg/forget/neutral/forget.d.ts +0 -9
- package/dist/_pkg/forget/neutral/forgetNode.d.ts +0 -8
- package/dist/_pkg/forget/neutral/index.d.ts +0 -1
- package/dist/_pkg/forget/neutral/index.mjs +0 -161
- package/dist/_pkg/forget/neutral/model.d.ts +0 -2
- package/dist/_pkg/forget/neutral/model.mjs +0 -0
- package/dist/_pkg/forget/neutral/neutral/index.d.ts +0 -3
- package/dist/_pkg/forget/neutral/node/index.d.ts +0 -3
- package/dist/_pkg/function-name/neutral/functionName.d.ts +0 -6
- package/dist/_pkg/function-name/neutral/index.d.ts +0 -1
- package/dist/_pkg/function-name/neutral/index.mjs +0 -26
- package/dist/_pkg/hex/neutral/HexRegEx.d.ts +0 -18
- package/dist/_pkg/hex/neutral/address/AddressTransformZod.d.ts +0 -9
- package/dist/_pkg/hex/neutral/address/AddressValidationZod.d.ts +0 -9
- package/dist/_pkg/hex/neutral/address/address.d.ts +0 -17
- package/dist/_pkg/hex/neutral/address/as.d.ts +0 -12
- package/dist/_pkg/hex/neutral/address/index.d.ts +0 -6
- package/dist/_pkg/hex/neutral/address/is.d.ts +0 -11
- package/dist/_pkg/hex/neutral/address/to.d.ts +0 -11
- package/dist/_pkg/hex/neutral/ethAddress.d.ts +0 -44
- package/dist/_pkg/hex/neutral/hash/as.d.ts +0 -10
- package/dist/_pkg/hex/neutral/hash/hash.d.ts +0 -27
- package/dist/_pkg/hex/neutral/hash/index.d.ts +0 -4
- package/dist/_pkg/hex/neutral/hash/is.d.ts +0 -8
- package/dist/_pkg/hex/neutral/hash/zod.d.ts +0 -5
- package/dist/_pkg/hex/neutral/hex/as.d.ts +0 -10
- package/dist/_pkg/hex/neutral/hex/from/from.d.ts +0 -7
- package/dist/_pkg/hex/neutral/hex/from/fromArrayBuffer.d.ts +0 -7
- package/dist/_pkg/hex/neutral/hex/from/fromBigInt.d.ts +0 -7
- package/dist/_pkg/hex/neutral/hex/from/fromHexString.d.ts +0 -8
- package/dist/_pkg/hex/neutral/hex/from/fromNumber.d.ts +0 -8
- package/dist/_pkg/hex/neutral/hex/from/index.d.ts +0 -5
- package/dist/_pkg/hex/neutral/hex/hex.d.ts +0 -16
- package/dist/_pkg/hex/neutral/hex/index.d.ts +0 -8
- package/dist/_pkg/hex/neutral/hex/is.d.ts +0 -8
- package/dist/_pkg/hex/neutral/hex/isHexZero.d.ts +0 -6
- package/dist/_pkg/hex/neutral/hex/legacy.d.ts +0 -6
- package/dist/_pkg/hex/neutral/hex/nibble.d.ts +0 -12
- package/dist/_pkg/hex/neutral/hex/to.d.ts +0 -7
- package/dist/_pkg/hex/neutral/hexToBigInt.d.ts +0 -7
- package/dist/_pkg/hex/neutral/index.d.ts +0 -7
- package/dist/_pkg/hex/neutral/index.mjs +0 -380
- package/dist/_pkg/hex/neutral/model.d.ts +0 -2
- package/dist/_pkg/hex/neutral/model.mjs +0 -0
- package/dist/_pkg/hex/neutral/zod.d.ts +0 -5
- package/dist/_pkg/logger/neutral/ConsoleLogger.d.ts +0 -6
- package/dist/_pkg/logger/neutral/IdLogger.d.ts +0 -18
- package/dist/_pkg/logger/neutral/LevelLogger.d.ts +0 -46
- package/dist/_pkg/logger/neutral/NoOpLogFunction.d.ts +0 -2
- package/dist/_pkg/logger/neutral/SilentLogger.d.ts +0 -16
- package/dist/_pkg/logger/neutral/getFunctionName.d.ts +0 -6
- package/dist/_pkg/logger/neutral/index.d.ts +0 -6
- package/dist/_pkg/logger/neutral/index.mjs +0 -125
- package/dist/_pkg/object/neutral/AsObjectFactory.d.ts +0 -7
- package/dist/_pkg/object/neutral/AsTypeFactory.d.ts +0 -10
- package/dist/_pkg/object/neutral/EmptyObject.d.ts +0 -1
- package/dist/_pkg/object/neutral/IsObjectFactory.d.ts +0 -15
- package/dist/_pkg/object/neutral/JsonObject.d.ts +0 -48
- package/dist/_pkg/object/neutral/ObjectWrapper.d.ts +0 -8
- package/dist/_pkg/object/neutral/OmitStartsWith.d.ts +0 -17
- package/dist/_pkg/object/neutral/Optional.d.ts +0 -2
- package/dist/_pkg/object/neutral/Override.d.ts +0 -3
- package/dist/_pkg/object/neutral/PartialRecord.d.ts +0 -2
- package/dist/_pkg/object/neutral/PickStartsWith.d.ts +0 -8
- package/dist/_pkg/object/neutral/Simplify.d.ts +0 -4
- package/dist/_pkg/object/neutral/StringKeyObject.d.ts +0 -2
- package/dist/_pkg/object/neutral/Validator.d.ts +0 -12
- package/dist/_pkg/object/neutral/WithAdditional.d.ts +0 -3
- package/dist/_pkg/object/neutral/asObject.d.ts +0 -3
- package/dist/_pkg/object/neutral/deepMerge.d.ts +0 -48
- package/dist/_pkg/object/neutral/index-deprecated.d.ts +0 -1
- package/dist/_pkg/object/neutral/index-un-deprecated.d.ts +0 -21
- package/dist/_pkg/object/neutral/index-un-deprecated.mjs +0 -319
- package/dist/_pkg/object/neutral/index.d.ts +0 -2
- package/dist/_pkg/object/neutral/index.mjs +0 -434
- package/dist/_pkg/object/neutral/isType.d.ts +0 -3
- package/dist/_pkg/object/neutral/model.d.ts +0 -13
- package/dist/_pkg/object/neutral/model.mjs +0 -0
- package/dist/_pkg/object/neutral/omitBy.d.ts +0 -20
- package/dist/_pkg/object/neutral/pickBy.d.ts +0 -20
- package/dist/_pkg/object/neutral/removeFields.d.ts +0 -8
- package/dist/_pkg/object/neutral/toSafeJson.d.ts +0 -40
- package/dist/_pkg/object-model/neutral/AnyObject.d.ts +0 -7
- package/dist/_pkg/object-model/neutral/AsTypeFactory.d.ts +0 -11
- package/dist/_pkg/object-model/neutral/AsTypeFunction.d.ts +0 -13
- package/dist/_pkg/object-model/neutral/Compare.d.ts +0 -2
- package/dist/_pkg/object-model/neutral/EmptyObject.d.ts +0 -7
- package/dist/_pkg/object-model/neutral/index.d.ts +0 -5
- package/dist/_pkg/object-model/neutral/index.mjs +0 -0
- package/dist/_pkg/object-model/neutral/model.d.ts +0 -5
- package/dist/_pkg/object-model/neutral/model.mjs +0 -0
- package/dist/_pkg/object-model/neutral/types.d.ts +0 -24
- package/dist/_pkg/platform/browser/browser/index.d.ts +0 -6
- package/dist/_pkg/platform/browser/index-browser.d.ts +0 -1
- package/dist/_pkg/platform/browser/index-browser.mjs +0 -15
- package/dist/_pkg/platform/browser/index-node.d.ts +0 -1
- package/dist/_pkg/platform/browser/node/index.d.ts +0 -8
- package/dist/_pkg/platform/node/browser/index.d.ts +0 -6
- package/dist/_pkg/platform/node/index-browser.d.ts +0 -1
- package/dist/_pkg/platform/node/index-node.d.ts +0 -1
- package/dist/_pkg/platform/node/index-node.mjs +0 -17
- package/dist/_pkg/platform/node/node/index.d.ts +0 -8
- package/dist/_pkg/profile/neutral/index.d.ts +0 -1
- package/dist/_pkg/profile/neutral/index.mjs +0 -36
- package/dist/_pkg/profile/neutral/model.d.ts +0 -1
- package/dist/_pkg/profile/neutral/model.mjs +0 -0
- package/dist/_pkg/profile/neutral/profiler.d.ts +0 -16
- package/dist/_pkg/promise/neutral/PromiseEx.d.ts +0 -23
- package/dist/_pkg/promise/neutral/fulfilled.d.ts +0 -6
- package/dist/_pkg/promise/neutral/fulfilledValues.d.ts +0 -19
- package/dist/_pkg/promise/neutral/index.d.ts +0 -6
- package/dist/_pkg/promise/neutral/index.mjs +0 -56
- package/dist/_pkg/promise/neutral/model.d.ts +0 -2
- package/dist/_pkg/promise/neutral/model.mjs +0 -0
- package/dist/_pkg/promise/neutral/rejected.d.ts +0 -6
- package/dist/_pkg/promise/neutral/toPromise.d.ts +0 -7
- package/dist/_pkg/promise/neutral/types.d.ts +0 -22
- package/dist/_pkg/retry/neutral/index.d.ts +0 -1
- package/dist/_pkg/retry/neutral/index.mjs +0 -27
- package/dist/_pkg/retry/neutral/model.d.ts +0 -1
- package/dist/_pkg/retry/neutral/model.mjs +0 -0
- package/dist/_pkg/retry/neutral/retry.d.ts +0 -22
- package/dist/_pkg/set/neutral/index.d.ts +0 -1
- package/dist/_pkg/set/neutral/index.mjs +0 -19
- package/dist/_pkg/set/neutral/lib/difference.d.ts +0 -7
- package/dist/_pkg/set/neutral/lib/index.d.ts +0 -3
- package/dist/_pkg/set/neutral/lib/intersection.d.ts +0 -7
- package/dist/_pkg/set/neutral/lib/union.d.ts +0 -7
- package/dist/_pkg/static-implements/neutral/index.d.ts +0 -1
- package/dist/_pkg/static-implements/neutral/index.mjs +0 -9
- package/dist/_pkg/static-implements/neutral/staticImplements.d.ts +0 -6
- package/dist/_pkg/storage/neutral/KeyValueStore.d.ts +0 -33
- package/dist/_pkg/storage/neutral/index.d.ts +0 -1
- package/dist/_pkg/storage/neutral/index.mjs +0 -0
- package/dist/_pkg/storage/neutral/model.d.ts +0 -1
- package/dist/_pkg/storage/neutral/model.mjs +0 -0
- package/dist/_pkg/telemetry/neutral/index.d.ts +0 -2
- package/dist/_pkg/telemetry/neutral/index.mjs +0 -151
- package/dist/_pkg/telemetry/neutral/model.d.ts +0 -1
- package/dist/_pkg/telemetry/neutral/model.mjs +0 -0
- package/dist/_pkg/telemetry/neutral/span.d.ts +0 -50
- package/dist/_pkg/telemetry/neutral/timeBudget.d.ts +0 -11
- package/dist/_pkg/telemetry-exporter/neutral/XyConsoleSpanExporter.d.ts +0 -39
- package/dist/_pkg/telemetry-exporter/neutral/index.d.ts +0 -1
- package/dist/_pkg/telemetry-exporter/neutral/index.mjs +0 -87
- package/dist/_pkg/timer/neutral/index.d.ts +0 -1
- package/dist/_pkg/timer/neutral/index.mjs +0 -74
- package/dist/_pkg/timer/neutral/setTimeoutEx.d.ts +0 -36
- package/dist/_pkg/typeof/neutral/Brand.d.ts +0 -4
- package/dist/_pkg/typeof/neutral/IdentityFunction.d.ts +0 -2
- package/dist/_pkg/typeof/neutral/ObjectTypeShape.d.ts +0 -4
- package/dist/_pkg/typeof/neutral/TypeOfTypes.d.ts +0 -2
- package/dist/_pkg/typeof/neutral/Typed.d.ts +0 -40
- package/dist/_pkg/typeof/neutral/ifDefined.d.ts +0 -7
- package/dist/_pkg/typeof/neutral/ifTypeOf.d.ts +0 -10
- package/dist/_pkg/typeof/neutral/index.d.ts +0 -11
- package/dist/_pkg/typeof/neutral/index.mjs +0 -254
- package/dist/_pkg/typeof/neutral/is.d.ts +0 -115
- package/dist/_pkg/typeof/neutral/isType.d.ts +0 -8
- package/dist/_pkg/typeof/neutral/model.d.ts +0 -6
- package/dist/_pkg/typeof/neutral/model.mjs +0 -0
- package/dist/_pkg/typeof/neutral/typeOf.d.ts +0 -7
- package/dist/_pkg/typeof/neutral/validateType.d.ts +0 -9
- package/dist/_pkg/url/browser/index-browser.d.ts +0 -11
- package/dist/_pkg/url/browser/index-browser.mjs +0 -11
- package/dist/_pkg/url/browser/index-neutral.d.ts +0 -11
- package/dist/_pkg/url/browser/index-node.d.ts +0 -12
- package/dist/_pkg/url/browser/lib/index.d.ts +0 -1
- package/dist/_pkg/url/browser/lib/isLocalhost.d.ts +0 -6
- package/dist/_pkg/url/neutral/index-browser.d.ts +0 -11
- package/dist/_pkg/url/neutral/index-neutral.d.ts +0 -11
- package/dist/_pkg/url/neutral/index-neutral.mjs +0 -11
- package/dist/_pkg/url/neutral/index-node.d.ts +0 -12
- package/dist/_pkg/url/neutral/lib/index.d.ts +0 -1
- package/dist/_pkg/url/neutral/lib/isLocalhost.d.ts +0 -6
- package/dist/_pkg/url/node/index-browser.d.ts +0 -11
- package/dist/_pkg/url/node/index-neutral.d.ts +0 -11
- package/dist/_pkg/url/node/index-node.d.ts +0 -12
- package/dist/_pkg/url/node/index-node.mjs +0 -14
- package/dist/_pkg/url/node/lib/index.d.ts +0 -1
- package/dist/_pkg/url/node/lib/isLocalhost.d.ts +0 -6
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/modules/enum/Enum.ts", "../../src/modules/api/ApiStage.ts", "../../src/modules/api/ApiClient.ts", "../../src/modules/fetch/FetchError.ts", "../../src/modules/fetch/fetchCompress.ts", "../../src/modules/fetch/parseJson.ts", "../../src/modules/fetch/FetchClient.ts", "../../src/modules/fetch/fetchJson.ts", "../../src/modules/fetch/FetchJsonClient.ts", "../../src/modules/fetch/methods.ts", "../../src/modules/typeof/typeOf.ts", "../../src/modules/typeof/ifDefined.ts", "../../src/modules/typeof/ifTypeOf.ts", "../../src/modules/typeof/is.ts", "../../src/modules/typeof/isType.ts", "../../src/modules/typeof/Typed.ts", "../../src/modules/typeof/validateType.ts", "../../src/modules/api/ApiEndpoint.ts", "../../src/modules/api/getApiStage.ts", "../../src/modules/array/containsAll.ts", "../../src/modules/array/distinct.ts", "../../src/modules/exists/index.ts", "../../src/modules/array/filterAs.ts", "../../src/modules/array/filterAsync.ts", "../../src/modules/array/findAs.ts", "../../src/modules/array/flatten.ts", "../../src/modules/array/uniq.ts", "../../src/modules/arraybuffer/equalArrayBuffers.ts", "../../src/modules/arraybuffer/isArrayBuffer.ts", "../../src/modules/assert/assertDefinedEx.ts", "../../src/modules/assert/assertEx.ts", "../../src/modules/hex/address/address.ts", "../../src/modules/hex/HexRegEx.ts", "../../src/modules/hex/address/AddressTransformZod.ts", "../../src/modules/hex/address/AddressValidationZod.ts", "../../src/modules/error/assert.ts", "../../src/modules/error/handleError.ts", "../../src/modules/hex/hex/nibble.ts", "../../src/modules/hex/hex/is.ts", "../../src/modules/hex/hex/from/fromHexString.ts", "../../src/modules/hex/hex/from/fromArrayBuffer.ts", "../../src/modules/hex/hex/from/fromBigInt.ts", "../../src/modules/hex/hex/from/fromNumber.ts", "../../src/modules/hex/hex/from/from.ts", "../../src/modules/hex/hex/as.ts", "../../src/modules/hex/hex/hex.ts", "../../src/modules/hex/hex/isHexZero.ts", "../../src/modules/hex/hex/legacy.ts", "../../src/modules/hex/hex/to.ts", "../../src/modules/hex/address/is.ts", "../../src/modules/hex/address/as.ts", "../../src/modules/hex/address/to.ts", "../../src/modules/hex/ethAddress.ts", "../../src/modules/hex/hash/is.ts", "../../src/modules/hex/hash/as.ts", "../../src/modules/hex/hash/hash.ts", "../../src/modules/hex/hash/zod.ts", "../../src/modules/hex/hexToBigInt.ts", "../../src/modules/hex/zod.ts", "../../src/modules/arraybuffer/toArrayBuffer.ts", "../../src/modules/arraybuffer/toUint8Array.ts", "../../src/modules/base/Base.ts", "../../src/modules/base/globallyUnique.ts", "../../src/modules/creatable/AbstractCreatable.ts", "../../src/modules/forget/ForgetConfig.ts", "../../src/modules/forget/ForgetNodeConfig.ts", "../../src/modules/timer/setTimeoutEx.ts", "../../src/modules/delay/delay.ts", "../../src/modules/forget/ForgetPromise.ts", "../../src/modules/forget/ForgetPromiseNode.ts", "../../src/modules/forget/forgetNode.ts", "../../src/modules/events/Events/Events.ts", "../../src/modules/events/BaseEmitter.ts", "../../src/modules/telemetry/span.ts", "../../src/modules/telemetry/timeBudget.ts", "../../src/modules/creatable/Creatable.ts", "../../src/modules/creatable/Factory.ts", "../../src/modules/creatable/lib/getFunctionName.ts", "../../src/modules/creatable/lib/getRootFunction.ts", "../../src/modules/creatable/model/Labels.ts", "../../src/modules/decimal-precision/fromFixedPoint.ts", "../../src/modules/decimal-precision/toDecimalPrecision.ts", "../../src/modules/decimal-precision/toFixedPoint.ts", "../../src/modules/ellipsize/index.ts", "../../src/modules/function-name/functionName.ts", "../../src/modules/logger/NoOpLogFunction.ts", "../../src/modules/logger/LevelLogger.ts", "../../src/modules/logger/ConsoleLogger.ts", "../../src/modules/logger/getFunctionName.ts", "../../src/modules/logger/IdLogger.ts", "../../src/modules/logger/SilentLogger.ts", "../../src/modules/object/AsTypeFactory.ts", "../../src/modules/object/AsObjectFactory.ts", "../../src/modules/object/asObject.ts", "../../src/modules/object/deepMerge.ts", "../../src/modules/object/IsObjectFactory.ts", "../../src/modules/object/JsonObject.ts", "../../src/modules/zod/zodAsFactory.ts", "../../src/modules/zod/zodIsFactory.ts", "../../src/modules/zod/zodToFactory.ts", "../../src/modules/zod/zodAllFactory.ts", "../../src/modules/zod/zodAsAsyncFactory.ts", "../../src/modules/zod/zodToAsyncFactory.ts", "../../src/modules/object/ObjectWrapper.ts", "../../src/modules/object/omitBy.ts", "../../src/modules/object/pickBy.ts", "../../src/modules/object/removeFields.ts", "../../src/modules/object/toSafeJson.ts", "../../src/modules/object/Validator.ts", "../../src/modules/profile/profiler.ts", "../../src/modules/promise/fulfilled.ts", "../../src/modules/promise/fulfilledValues.ts", "../../src/modules/promise/PromiseEx.ts", "../../src/modules/promise/rejected.ts", "../../src/modules/promise/toPromise.ts", "../../src/modules/retry/retry.ts", "../../src/modules/set/lib/difference.ts", "../../src/modules/set/lib/intersection.ts", "../../src/modules/set/lib/union.ts", "../../src/modules/static-implements/staticImplements.ts", "../../src/modules/telemetry-exporter/XyConsoleSpanExporter.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Transforms a given record object into a readonly \"enum-like\" structure while preserving\n * the literal types of its values. This allows you to use the returned object both at runtime\n * (for lookups) and at compile time (for strongly typed values).\n *\n * To maintain literal types (i.e., prevent them from being widened to `string`, `number`, etc.),\n * ensure you annotate your object with `as const` before passing it to `Enum`.\n *\n * @template T - A record type with string keys and any kind of values.\n * @param obj - A readonly record object annotated with `as const`.\n * @returns A readonly version of the provided record, preserving exact literal value types.\n *\n * @example\n * ```typescript\n * // Defining a record with literal types using as const:\n * const DnsRecordType = Enum({\n * A: 1,\n * AAAA: 28,\n * CAA: 257,\n * CNAME: 5,\n * DNAME: 39,\n * MX: 15,\n * NS: 2,\n * PTR: 12,\n * SOA: 6,\n * SPF: 99,\n * SRV: 33,\n * TXT: 16,\n * } as const);\n *\n * // DnsRecordType is now a readonly object:\n * // {\n * // readonly A: 1;\n * // readonly AAAA: 28;\n * // readonly CAA: 257;\n * // readonly CNAME: 5;\n * // readonly DNAME: 39;\n * // readonly MX: 15;\n * // readonly NS: 2;\n * // readonly PTR: 12;\n * // readonly SOA: 6;\n * // readonly SPF: 99;\n * // readonly SRV: 33;\n * // readonly TXT: 16;\n * // }\n * ```\n */\nexport const Enum = <const T extends Record<string | number | symbol, unknown>>(obj: Readonly<T>): Enum<T> => {\n return obj\n}\n\n/**\n * A utility type that, given a `Record<string, unknown>`, returns a readonly version\n * of that record. This results in a type where all properties of `T` are readonly.\n *\n * @template T - The record type to make readonly.\n *\n * @example\n * ```typescript\n * // Given a record:\n * export const DnsRecordType = Enum({\n * A: 1,\n * AAAA: 28,\n * CAA: 257,\n * CNAME: 5,\n * DNAME: 39,\n * MX: 15,\n * NS: 2,\n * PTR: 12,\n * SOA: 6,\n * SPF: 99,\n * SRV: 33,\n * TXT: 16,\n * })\n *\n * // Now the type inference will preserve the literal types:\n * export type DnsRecordType = Enum<typeof DnsRecordType>\n * ```\n */\nexport type Enum<T extends Readonly<Record<string | number | symbol, unknown>>> = {\n readonly [K in keyof T]: T[K]\n}\n\n/**\n * A utility type that, given an `Enum` object, returns the union of its keys.\n */\nexport type EnumKey<T extends Record<string | number | symbol, unknown>, K = Enum<T>> = keyof K\n\n/**\n * A utility type that, given an `Enum` object, returns the union of its values.\n */\nexport type EnumValue<T extends Record<string | number | symbol, unknown>, K = Enum<T>> = K[keyof K]\n", "import type { EnumValue } from '#enum'\nimport { Enum } from '#enum'\n\n/** Deployment stage identifiers for API environments. */\nexport const ApiStage = Enum({\n Beta: 'beta',\n Local: 'local',\n Prod: 'prod',\n})\n\n/** A valid API stage value ('prod', 'beta', or 'local'). */\nexport type ApiStage = EnumValue<typeof ApiStage>\n", "import { ApiStage } from './ApiStage.ts'\n\n/** Abstract base class for API clients that provides stage and token configuration. */\nabstract class ApiClient {\n protected stage?: ApiStage\n protected token?: string | null\n\n constructor(\n token?: string | null,\n stage?: ApiStage,\n ) {\n this.stage = stage ?? ApiStage.Prod\n this.token = token\n }\n\n abstract endPoint(): string\n}\n\nexport { ApiClient }\n", "import type { FetchJsonResponse } from './types.ts'\n\n/**\n * Classification of why a fetch request failed.\n * - `dns` \u2014 host could not be resolved (ENOTFOUND, EAI_AGAIN)\n * - `connection-refused` \u2014 the host actively refused the connection (ECONNREFUSED)\n * - `connection-reset` \u2014 the connection was reset/broken mid-flight (ECONNRESET, EPIPE)\n * - `connection-timeout` \u2014 the connection could not be established in time (ETIMEDOUT)\n * - `timeout` \u2014 the request exceeded its time budget (AbortSignal.timeout, undici header/body timeouts)\n * - `aborted` \u2014 the request was aborted by an AbortController\n * - `tls` \u2014 a TLS/certificate problem (expired, self-signed, hostname mismatch, ...)\n * - `unreachable` \u2014 the host or network is unreachable (EHOSTUNREACH, ENETUNREACH)\n * - `http-status` \u2014 the response arrived but its status was rejected by validateStatus\n * - `parse` \u2014 a successful response had a non-empty body that could not be parsed as JSON\n * - `network` \u2014 a generic network failure with no recognizable cause (e.g. browser \"Failed to fetch\")\n * - `unknown` \u2014 the failure could not be classified\n */\nexport type FetchErrorType\n = | 'dns'\n | 'connection-refused'\n | 'connection-reset'\n | 'connection-timeout'\n | 'timeout'\n | 'aborted'\n | 'tls'\n | 'unreachable'\n | 'http-status'\n | 'parse'\n | 'network'\n | 'unknown'\n\n/** Brand value stamped on every FetchError, used by isFetchError for robust cross-realm detection. */\nconst fetchErrorMarker = '$$xylabs-fetch-error'\n\n/** Maps known Node/undici system error codes to a FetchErrorType. */\nconst codeTypes: Record<string, FetchErrorType> = {\n ENOTFOUND: 'dns',\n EAI_AGAIN: 'dns',\n ECONNREFUSED: 'connection-refused',\n ECONNRESET: 'connection-reset',\n EPIPE: 'connection-reset',\n ETIMEDOUT: 'connection-timeout',\n UND_ERR_CONNECT_TIMEOUT: 'connection-timeout',\n UND_ERR_HEADERS_TIMEOUT: 'timeout',\n UND_ERR_BODY_TIMEOUT: 'timeout',\n EHOSTUNREACH: 'unreachable',\n ENETUNREACH: 'unreachable',\n CERT_HAS_EXPIRED: 'tls',\n DEPTH_ZERO_SELF_SIGNED_CERT: 'tls',\n UNABLE_TO_VERIFY_LEAF_SIGNATURE: 'tls',\n SELF_SIGNED_CERT_IN_CHAIN: 'tls',\n ERR_TLS_CERT_ALTNAME_INVALID: 'tls',\n}\n\n/** Extracts a string `code` by walking the error and its `cause` chain. */\nfunction findErrorCode(error: unknown): string | undefined {\n let current = error\n for (let depth = 0; depth < 8 && current instanceof Error; depth++) {\n const code = (current as { code?: unknown }).code\n if (typeof code === 'string') return code\n current = (current as { cause?: unknown }).cause\n }\n return undefined\n}\n\nfunction typeFromCode(code: string): FetchErrorType | undefined {\n if (Object.hasOwn(codeTypes, code)) return codeTypes[code]\n if (code.startsWith('CERT_') || code.startsWith('ERR_TLS_')) return 'tls'\n return undefined\n}\n\n/**\n * Classifies a raw error thrown by native `fetch` (or its `cause` chain) into a FetchErrorType.\n * Recognizes DNS, connection, TLS, timeout and abort failures from Node/undici system codes\n * and DOMException names, falling back to `network` for generic failures and `unknown` otherwise.\n */\nexport function classifyFetchError(error: unknown): { code?: string; type: FetchErrorType } {\n if (error instanceof Error) {\n if (error.name === 'TimeoutError') return { type: 'timeout' }\n if (error.name === 'AbortError') return { type: 'aborted' }\n }\n\n const code = findErrorCode(error)\n if (code !== undefined) {\n const type = typeFromCode(code)\n if (type !== undefined) return { type, code }\n return { type: 'unknown', code }\n }\n\n if (error instanceof TypeError && /fetch failed|failed to fetch|network/i.test(error.message)) {\n return { type: 'network' }\n }\n\n return { type: 'unknown' }\n}\n\n/** Context attached to a FetchError describing the request and (when available) the response. */\nexport interface FetchErrorContext {\n /** Raw response body text \u2014 set for `parse` errors so the unparseable payload can be inspected. */\n body?: string\n cause?: unknown\n code?: string\n method?: string\n response?: FetchJsonResponse<unknown>\n status?: number\n statusText?: string\n type?: FetchErrorType\n url?: string\n}\n\n/** Plain serializable shape of a FetchError, safe for logging/telemetry (no circular refs). */\nexport interface FetchErrorJson {\n code?: string\n message: string\n method?: string\n name: string\n status?: number\n statusText?: string\n type: FetchErrorType\n url?: string\n}\n\n/**\n * Structured error for every failure mode of the #fetch stack.\n * Carries a classified `type`, the underlying system `code` (when known), request context\n * (`url`, `method`) and, for HTTP-status failures, the parsed `response`. The original error\n * is preserved on `cause`. Detect with {@link isFetchError}.\n */\nexport class FetchError extends Error {\n readonly __fetchErrorMarker = fetchErrorMarker\n readonly body?: string\n readonly code?: string\n readonly method?: string\n readonly response?: FetchJsonResponse<unknown>\n readonly status?: number\n readonly statusText?: string\n readonly type: FetchErrorType\n readonly url?: string\n\n constructor(message: string, context: FetchErrorContext = {}) {\n super(message, { cause: context.cause })\n this.name = 'FetchError'\n this.type = context.type ?? 'unknown'\n this.code = context.code\n this.url = context.url\n this.method = context.method\n this.status = context.status\n this.statusText = context.statusText\n this.response = context.response\n this.body = context.body\n }\n\n toJSON(): FetchErrorJson {\n return {\n name: this.name,\n message: this.message,\n type: this.type,\n code: this.code,\n url: this.url,\n method: this.method,\n status: this.status,\n statusText: this.statusText,\n }\n }\n}\n\n/** Type guard: true for any FetchError we built, robust across bundle/realm copies via a brand marker. */\nexport function isFetchError(value: unknown): value is FetchError {\n return (\n value instanceof FetchError\n || (typeof value === 'object'\n && value !== null\n && (value as { __fetchErrorMarker?: unknown }).__fetchErrorMarker === fetchErrorMarker)\n )\n}\n\n/**\n * Wraps a raw thrown error into a structured FetchError, classifying network failures.\n * Idempotent: an existing FetchError is returned unchanged so wrapping at multiple layers is safe.\n */\nexport function toFetchError(error: unknown, context: { method?: string; url?: string } = {}): FetchError {\n if (isFetchError(error)) return error\n const { type, code } = classifyFetchError(error)\n const message = error instanceof Error ? error.message : String(error)\n return new FetchError(message, {\n ...context, type, code, cause: error,\n })\n}\n", "import { toFetchError } from './FetchError.ts'\n\nexport interface FetchCompressOptions extends RequestInit {\n /** Gzip payloads larger than this byte count. */\n compressMinLength?: number\n}\n\nasync function gzipString(body: string): Promise<ArrayBuffer> {\n const blob = new Blob([body])\n const stream = blob.stream().pipeThrough(new CompressionStream('gzip'))\n const response = new Response(stream)\n return response.arrayBuffer()\n}\n\n/**\n * Drop-in replacement for native `fetch` that optionally gzip-compresses the request body.\n * When `compressMinLength` is set and the body string exceeds that threshold, the body is\n * gzip-compressed using native compression and `Content-Encoding: gzip` is added to the headers.\n * Returns a standard `Response` \u2014 identical to what native `fetch` returns.\n */\nexport async function fetchCompress(url: string | URL, options: FetchCompressOptions = {}): Promise<Response> {\n const { compressMinLength = 1024, ...init } = options\n\n try {\n if (init.body !== undefined && init.body !== null) {\n const bodyStr = typeof init.body === 'string' ? init.body : JSON.stringify(init.body)\n if (bodyStr.length > compressMinLength) {\n const headers = new Headers(init.headers)\n headers.set('Content-Encoding', 'gzip')\n return await fetch(url, {\n ...init,\n body: await gzipString(bodyStr),\n headers,\n })\n }\n }\n\n return await fetch(url, init)\n } catch (error) {\n throw toFetchError(error, { url: url.toString(), method: init.method })\n }\n}\n", "import { FetchError, toFetchError } from './FetchError.ts'\n\n/**\n * Reads and JSON-parses a response body. An empty or whitespace-only body resolves to `null`\n * (so 204/304/HEAD and other empty responses are not treated as failures). A non-empty body that\n * cannot be parsed throws a FetchError of type `parse` carrying the raw body and status. A failure\n * while reading the body stream (e.g. a dropped connection) is classified as a network FetchError.\n */\nexport async function parseJsonResponse<T>(response: Response, context: { method?: string; url?: string } = {}): Promise<T | null> {\n let text: string\n try {\n text = await response.text()\n } catch (error) {\n throw toFetchError(error, context)\n }\n if (text.trim() === '') return null\n try {\n return JSON.parse(text) as T\n } catch (error) {\n throw new FetchError('Failed to parse response body as JSON', {\n type: 'parse',\n url: context.url,\n method: context.method,\n status: response.status,\n statusText: response.statusText,\n body: text,\n cause: error,\n })\n }\n}\n\n/**\n * Best-effort JSON parse for non-success responses: returns `null` on any failure\n * (empty body, malformed body, or read error) so the response can still be surfaced for inspection.\n */\nexport async function tryParseJson<T>(response: Response): Promise<T | null> {\n try {\n const text = await response.text()\n if (text.trim() === '') return null\n return JSON.parse(text) as T\n } catch {\n return null\n }\n}\n", "import { fetchCompress } from './fetchCompress.ts'\nimport { FetchError } from './FetchError.ts'\nimport { parseJsonResponse, tryParseJson } from './parseJson.ts'\nimport type { FetchJsonOptions, FetchJsonResponse } from './types.ts'\n\n/** Configuration for a FetchClient instance. */\nexport interface FetchClientConfig extends Omit<FetchJsonOptions, 'method' | 'body'> {\n baseURL?: string\n params?: Record<string, string>\n timeout?: number\n /**\n * Determines whether a given HTTP status code should resolve or throw.\n * Returns true to resolve, false to throw a FetchClientError (a FetchError of type 'http-status').\n * Default: status >= 200 && status < 300 (like Axios).\n */\n validateStatus?: ((status: number) => boolean) | null\n}\n\n/** Per-request config, extending the instance defaults. */\nexport interface FetchClientRequestConfig extends FetchClientConfig {\n data?: unknown\n method?: string\n url?: string\n}\n\n/**\n * HTTP-status error thrown when validateStatus rejects the response status code.\n * Specialization of {@link FetchError} (type 'http-status') that also exposes the request `config`.\n * `isFetchError` and `instanceof FetchError` both return true for it.\n */\nexport class FetchClientError<T = unknown> extends FetchError {\n readonly config: FetchClientRequestConfig\n declare readonly response: FetchJsonResponse<T>\n\n constructor(message: string, response: FetchJsonResponse<T>, config: FetchClientRequestConfig) {\n super(message, {\n type: 'http-status',\n url: config.url,\n method: config.method,\n status: response.status,\n statusText: response.statusText,\n response,\n })\n this.name = 'FetchClientError'\n this.config = config\n }\n}\n\nfunction buildHeaders(custom?: RequestInit['headers'], includeContentType = false): Headers {\n const headers = new Headers()\n headers.set('Accept', 'application/json, text/plain, *.*')\n if (includeContentType) {\n headers.set('Content-Type', 'application/json')\n }\n if (custom) {\n const merged = new Headers(custom)\n for (const [key, value] of merged.entries()) headers.set(key, value)\n }\n return headers\n}\n\nfunction buildURL(config: FetchClientRequestConfig): string {\n const base = config.baseURL ?? ''\n const path = config.url ?? ''\n const url = base === '' ? new URL(path) : new URL(path, base)\n if (config.params) {\n for (const [key, value] of Object.entries(config.params)) {\n url.searchParams.set(key, value)\n }\n }\n return url.href\n}\n\n/**\n * Stateful, instance-based HTTP client backed by native fetch with\n * JSON serialization and optional gzip compression via #fetch.\n */\nexport class FetchClient {\n defaults: FetchClientConfig\n\n constructor(defaults: FetchClientConfig = {}) {\n this.defaults = defaults\n }\n\n static create(config?: FetchClientConfig): FetchClient {\n return new FetchClient(config)\n }\n\n delete<T = unknown>(url: string, config?: FetchClientConfig): Promise<FetchJsonResponse<T>> {\n return this.request<T>({\n ...config, url, method: 'DELETE',\n })\n }\n\n get<T = unknown>(url: string, config?: FetchClientConfig): Promise<FetchJsonResponse<T>> {\n return this.request<T>({\n ...config, url, method: 'GET',\n })\n }\n\n patch<T = unknown>(url: string, data?: unknown, config?: FetchClientConfig): Promise<FetchJsonResponse<T>> {\n return this.request<T>({\n ...config, url, data, method: 'PATCH',\n })\n }\n\n post<T = unknown>(url: string, data?: unknown, config?: FetchClientConfig): Promise<FetchJsonResponse<T>> {\n return this.request<T>({\n ...config, url, data, method: 'POST',\n })\n }\n\n put<T = unknown>(url: string, data?: unknown, config?: FetchClientConfig): Promise<FetchJsonResponse<T>> {\n return this.request<T>({\n ...config, url, data, method: 'PUT',\n })\n }\n\n async request<T = unknown>(config: FetchClientRequestConfig): Promise<FetchJsonResponse<T>> {\n const merged: FetchClientRequestConfig = { ...this.defaults, ...config }\n const url = buildURL(merged)\n\n const init: FetchJsonOptions = {\n method: merged.method ?? 'GET',\n headers: buildHeaders(merged.headers, merged.data !== undefined),\n compressMinLength: merged.compressMinLength,\n signal: merged.timeout !== undefined && merged.timeout !== 0 ? AbortSignal.timeout(merged.timeout) : merged.signal,\n }\n\n if (merged.data !== undefined) {\n init.body = JSON.stringify(merged.data)\n }\n\n const response = await fetchCompress(url, init)\n\n const data = response.ok\n ? await parseJsonResponse<T>(response, { url, method: merged.method })\n : await tryParseJson<T>(response)\n\n const result: FetchJsonResponse<T> = {\n data,\n headers: response.headers,\n response,\n status: response.status,\n statusText: response.statusText,\n }\n\n const validateStatus = merged.validateStatus === undefined\n ? (s: number) => s >= 200 && s < 300\n : merged.validateStatus\n\n if (validateStatus && !validateStatus(response.status)) {\n throw new FetchClientError(\n `Request failed with status ${response.status} ${response.statusText}`,\n result,\n { ...merged, url },\n )\n }\n\n return result\n }\n}\n", "import { fetchCompress } from './fetchCompress.ts'\nimport { parseJsonResponse, tryParseJson } from './parseJson.ts'\nimport type {\n FetchJsonOptions,\n FetchJsonResponse,\n} from './types.ts'\n\nfunction buildHeaders(custom?: RequestInit['headers'], includeContentType = false): Headers {\n const headers = new Headers()\n headers.set('Accept', 'application/json, text/plain, *.*')\n if (includeContentType) {\n headers.set('Content-Type', 'application/json')\n }\n if (custom) {\n const merged = new Headers(custom)\n for (const [key, value] of merged.entries()) headers.set(key, value)\n }\n return headers\n}\n\n/**\n * JSON-configured fetch with optional gzip compression on request bodies.\n * Request bodies exceeding `compressMinLength` bytes are gzip-compressed using native compression.\n */\nexport async function fetchJson<T>(url: string, options: FetchJsonOptions = {}): Promise<FetchJsonResponse<T>> {\n const { headers: customHeaders, ...rest } = options\n\n const response = await fetchCompress(url, {\n ...rest,\n headers: buildHeaders(customHeaders, rest.body !== undefined && rest.body !== null),\n })\n\n const data = response.ok\n ? await parseJsonResponse<T>(response, { url, method: rest.method })\n : await tryParseJson<T>(response)\n\n return {\n data,\n headers: response.headers,\n response,\n status: response.status,\n statusText: response.statusText,\n }\n}\n", "import type { FetchClientConfig } from './FetchClient.ts'\nimport { FetchClient } from './FetchClient.ts'\n\n/**\n * Pre-configured FetchClient for JSON APIs with optional gzip compression.\n * Drop-in replacement for `@xylabs/axios`'s `axiosJson` / `AxiosJson`.\n *\n * Default behavior matches axiosJsonConfig():\n * - JSON Accept/Content-Type headers\n * - Request bodies > compressMinLength (default 1024) are gzip-compressed\n * - Responses are parsed as JSON\n * - Non-2xx status codes throw (like Axios default)\n */\nexport class FetchJsonClient extends FetchClient {\n constructor(config?: FetchClientConfig) {\n super(config)\n }\n\n static override create(config?: FetchClientConfig): FetchJsonClient {\n return new FetchJsonClient(config)\n }\n}\n\n/** Ready-to-use JSON fetch client, equivalent to `axiosJson` from `@xylabs/axios`. */\nexport const fetchJsonClient = new FetchJsonClient()\n", "import { fetchJson } from './fetchJson.ts'\nimport type {\n FetchJsonOptions,\n FetchJsonResponse,\n} from './types.ts'\n\n/** JSON GET request. */\nexport function fetchJsonGet<T>(url: string, options?: FetchJsonOptions): Promise<FetchJsonResponse<T>> {\n return fetchJson<T>(url, { ...options, method: 'GET' })\n}\n\n/** JSON POST request with a body. */\nexport function fetchJsonPost<T>(url: string, data?: unknown, options?: FetchJsonOptions): Promise<FetchJsonResponse<T>> {\n return fetchJson<T>(url, {\n ...options,\n body: JSON.stringify(data),\n method: 'POST',\n })\n}\n\n/** JSON PUT request with a body. */\nexport function fetchJsonPut<T>(url: string, data?: unknown, options?: FetchJsonOptions): Promise<FetchJsonResponse<T>> {\n return fetchJson<T>(url, {\n ...options,\n body: JSON.stringify(data),\n method: 'PUT',\n })\n}\n\n/** JSON PATCH request with a body. */\nexport function fetchJsonPatch<T>(url: string, data?: unknown, options?: FetchJsonOptions): Promise<FetchJsonResponse<T>> {\n return fetchJson<T>(url, {\n ...options,\n body: JSON.stringify(data),\n method: 'PATCH',\n })\n}\n\n/** JSON DELETE request. */\nexport function fetchJsonDelete<T>(url: string, options?: FetchJsonOptions): Promise<FetchJsonResponse<T>> {\n return fetchJson<T>(url, { ...options, method: 'DELETE' })\n}\n", "import type { TypeOfTypes } from './TypeOfTypes.js'\n\n/**\n * Extended typeof that distinguishes arrays from objects (unlike native `typeof`).\n * @param item - The value to check.\n * @returns The type of the item as a TypeOfTypes string.\n */\nexport const typeOf = <T>(item: T): TypeOfTypes => {\n return Array.isArray(item) ? 'array' : typeof item\n}\n", "import { typeOf } from './typeOf.js'\n\n/**\n * Invokes the callback only if the value is neither null nor undefined.\n * @param value - The value to check.\n * @param func - The callback to invoke with the value if it is defined.\n * @returns The value if defined, or undefined otherwise.\n */\nexport const ifDefined = <T>(value: T, func: (value: T) => void) => {\n switch (typeOf(value)) {\n case 'undefined':\n case 'null': {\n break\n }\n default: {\n func(value)\n return value\n }\n }\n}\n", "import { typeOf } from './typeOf.js'\nimport type { TypeOfTypes } from './TypeOfTypes.js'\n\n/**\n * Invokes the callback if the value matches the specified type, with an optional additional predicate.\n * @param typeName - The expected type name to match against.\n * @param value - The value to check.\n * @param trueFunc - The callback to invoke if the type matches.\n * @param isFunc - Optional additional predicate that must also return true.\n * @returns The result of trueFunc if the type matches (and isFunc passes), or undefined.\n */\nexport const ifTypeOf = <T, R>(typeName: TypeOfTypes, value: unknown, trueFunc: (value: T) => R, isFunc?: (value: T) => boolean) => {\n switch (typeOf(value)) {\n case typeName: {\n return !isFunc || isFunc(value as T) ? trueFunc(value as T) : undefined\n }\n }\n}\n", "/// <reference lib=\"dom\" />\n\n/** A function type that accepts any arguments and returns unknown. */\nexport type AnyFunction = (...args: unknown[]) => unknown\n\n/** A union of valid object key types. */\nexport type RecordKey = string | number | symbol\n\n/** Type guard that checks whether a value is undefined. */\nexport function isUndefined(value: unknown): value is undefined\nexport function isUndefined<T>(value: T): value is Extract<T, undefined>\nexport function isUndefined(value: unknown): value is undefined {\n return value === undefined\n}\n\n/** Type guard that checks whether a value is not undefined. */\nexport function isDefined<T>(value: T): value is Exclude<T, undefined> {\n return !isUndefined(value)\n}\n\n/** Type guard that checks whether a value is null. */\nexport function isNull(value: unknown): value is null\nexport function isNull<T>(value: T): value is Extract<T, null>\nexport function isNull(value: unknown): value is null {\n return value === null\n}\n\n/** Type guard that checks whether a value is neither undefined nor null. */\nexport function isDefinedNotNull<T>(value: T): value is Exclude<T, undefined | null> {\n return !isUndefined(value) && !isNull(value)\n}\n\n/** Type guard that checks whether a value is undefined or null. */\nexport function isUndefinedOrNull(value: unknown): value is undefined | null\nexport function isUndefinedOrNull<T>(value: T): value is Extract<T, undefined | null>\nexport function isUndefinedOrNull(value: unknown): value is undefined | null {\n return isUndefined(value) || isNull(value)\n}\n\n/** Type guard that checks whether a value is a bigint. */\nexport function isBigInt(value: unknown): value is bigint\nexport function isBigInt<T extends bigint>(value: T): value is Extract<T, bigint>\nexport function isBigInt(value: unknown): value is bigint {\n return typeof value === 'bigint'\n}\n\n/** Type guard that checks whether a value is a string. */\nexport function isString(value: unknown): value is string\nexport function isString<T extends string>(value: T): value is Extract<T, string>\nexport function isString(value: unknown): value is string {\n return typeof value === 'string'\n}\n\n/** Type guard that checks whether a value is a number. */\nexport function isNumber(value: unknown): value is number\nexport function isNumber<T extends number>(value: T): value is Extract<T, number>\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number'\n}\n\n/** Type guard that checks whether a value is a plain object (not null and not an array). */\nexport function isObject(value: unknown): value is object\nexport function isObject<T extends object>(value: T): value is Extract<T, object>\nexport function isObject(value: unknown): value is object {\n return (typeof value === 'object') && (value !== null) && !Array.isArray(value)\n}\n\n/** Type guard that checks whether a value is an array. */\nexport function isArray(value: unknown): value is readonly unknown[]\nexport function isArray<T>(value: T): value is Extract<T, readonly unknown[]>\nexport function isArray(value: unknown): value is readonly unknown[] {\n return Array.isArray(value)\n}\n\n/** Type guard that checks whether a value is a function. */\nexport function isFunction(value: unknown): value is AnyFunction\nexport function isFunction<T extends AnyFunction>(value: T): value is Extract<T, AnyFunction>\nexport function isFunction(value: unknown): value is AnyFunction {\n return typeof value === 'function'\n}\n\n/** Type guard that checks whether a value is a symbol. */\nexport function isSymbol(value: unknown): value is symbol\nexport function isSymbol<T extends symbol>(value: T): value is Extract<T, symbol>\nexport function isSymbol(value: unknown): value is symbol {\n return typeof value === 'symbol'\n}\n\n/** Type guard that checks whether a value is an object with no own keys. */\nexport function isEmptyObject(value: unknown): value is {}\nexport function isEmptyObject<K extends RecordKey, V, T extends Record<K, V>>(value: T): value is Extract<T, Record<K, never>>\nexport function isEmptyObject(value: unknown): value is {} {\n return isObject(value) && Object.keys(value).length === 0\n}\n\n/** Type guard that checks whether a value is an empty string. */\nexport function isEmptyString(value: unknown): value is ''\nexport function isEmptyString<T extends string>(value: T): value is Extract<T, ''>\nexport function isEmptyString(value: unknown): value is '' {\n return isString(value) && value.length === 0\n}\n\n/** Type guard that checks whether a value is an empty array. */\nexport function isEmptyArray(value: unknown): value is []\nexport function isEmptyArray<T extends unknown[]>(value: T): value is Extract<T, unknown[]>\nexport function isEmptyArray(value: unknown): value is [] {\n return isArray(value) && value.length === 0\n}\n\n/** Type guard that checks whether a value is a non-empty array. */\nexport function isPopulatedArray(value: unknown): value is readonly unknown[]\nexport function isPopulatedArray<T extends unknown[]>(value: T): value is Extract<T, readonly unknown[]>\nexport function isPopulatedArray(value: unknown): value is readonly unknown[] {\n return isArray(value) && value.length > 0\n}\n\n/** Type guard that checks whether a value is empty (empty string, empty array, or empty object). */\nexport function isEmpty<T>(value: unknown): value is T\nexport function isEmpty<K extends RecordKey, V, T extends Record<K, V>>(value: T): value is Extract<T, Record<K, never>>\nexport function isEmpty<T extends unknown[]>(value: T): value is Extract<T, never[]>\nexport function isEmpty<T>(value: unknown): value is T {\n return isEmptyString(value) || isEmptyArray(value) || isEmptyObject(value)\n}\n\n/** Type guard that checks whether a value is falsy (0, null, undefined, false, '', or 0n). */\nexport function isFalsy<T>(value: T): value is Extract<T, 0 | null | undefined | false | '' | 0n>\nexport function isFalsy<T extends boolean>(value: T): value is Extract<T, false>\nexport function isFalsy<T extends number>(value: T): value is Extract<T, 0>\nexport function isFalsy<T extends bigint>(value: T): value is Extract<T, 0n>\nexport function isFalsy<T extends null>(value: T): value is Extract<T, null>\nexport function isFalsy<T extends undefined>(value: T): value is Extract<T, undefined>\nexport function isFalsy<T extends string>(value: T): value is Extract<T, ''>\nexport function isFalsy<T>(value: T): value is T {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- mirrors JavaScript falsy semantics (incl. NaN)\n return !value\n}\n\n/** Type guard that checks whether a value is truthy (not 0, null, undefined, false, '', or 0n). */\nexport function isTruthy<T>(value: T): value is Exclude<T, 0 | null | undefined | false | '' | 0n>\nexport function isTruthy<T extends boolean>(value: T): value is Extract<T, true>\nexport function isTruthy<T extends number>(value: T): value is Extract<T, number>\nexport function isTruthy<T extends bigint>(value: T): value is Extract<T, bigint>\nexport function isTruthy<T extends null>(value: T): value is Extract<T, null>\nexport function isTruthy<T extends undefined>(value: T): value is Extract<T, undefined>\nexport function isTruthy<T extends string>(value: T): value is Extract<T, string>\nexport function isTruthy<T>(value: T): value is T {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- mirrors JavaScript truthy semantics\n return !!value\n}\n\n/** Type guard that checks whether a value is a boolean. */\nexport function isBoolean(value: unknown): value is boolean\nexport function isBoolean<T extends boolean>(value: T): value is Extract<T, boolean>\nexport function isBoolean(value: unknown): value is boolean {\n return typeof value === 'boolean'\n}\n\n/** Type guard that checks whether a value is a string that can be parsed as a valid date. */\nexport function isDateString(value: unknown): value is string\nexport function isDateString<T>(value: T): value is Extract<T, string>\nexport function isDateString(value: unknown): value is string {\n return isString(value) && !Number.isNaN(Date.parse(value))\n}\n\n/** Type guard that checks whether a value is a Date instance. */\nexport function isDate(value: unknown): value is Date\nexport function isDate<T>(value: T): value is Extract<T, Date>\nexport function isDate(value: unknown): value is Date {\n return value instanceof Date\n}\n\n/** Type guard that checks whether a value is a RegExp instance. */\nexport function isRegExp(value: unknown): value is RegExp\nexport function isRegExp<T extends RegExp>(value: T): value is Extract<T, RegExp>\nexport function isRegExp(value: unknown): value is RegExp {\n return value instanceof RegExp\n}\n\n/** Type guard that checks whether a value is an Error instance. */\nexport function isError(value: unknown): value is Error\nexport function isError<T>(value: T): value is Extract<T, Error>\nexport function isError(value: unknown): value is Error {\n return value instanceof Error\n}\n\n/** Type guard that checks whether a value is a Promise instance. */\nexport function isPromise(value: unknown): value is Promise<unknown>\nexport function isPromise<T>(value: T): value is Extract<T, Promise<unknown>>\nexport function isPromise(value: unknown): value is Promise<unknown> {\n return value instanceof Promise\n}\n\n/** Type guard that checks whether a value is promise-like (has a `then` method). */\nexport function isPromiseLike(value: unknown): value is Promise<unknown>\nexport function isPromiseLike<T>(value: T): value is Extract<T, Promise<unknown>>\nexport function isPromiseLike(value: unknown): value is Promise<unknown> {\n return (\n typeof value === 'object'\n && value !== null\n && typeof (value as Record<string, unknown>).then === 'function'\n )\n}\n\n/** Type guard that checks whether a value is a Map instance. */\nexport function isMap(value: unknown): value is Map<unknown, unknown>\nexport function isMap<K, V, T extends Map<K, V>>(value: T): value is Extract<T, Map<K, V>>\nexport function isMap(value: unknown): value is Map<unknown, unknown> {\n return value instanceof Map\n}\n\n/** Type guard that checks whether a value is an ArrayBufferView (e.g., TypedArray or DataView). */\nexport function isArrayBufferView(value: unknown): value is ArrayBufferView\nexport function isArrayBufferView<T extends ArrayBufferView>(value: T): value is Extract<T, ArrayBufferView>\nexport function isArrayBufferView(value: unknown): value is ArrayBufferView {\n return ArrayBuffer.isView(value)\n}\n\n/** Type guard that checks whether a value is a Set instance. */\nexport function isSet(value: unknown): value is Set<unknown>\nexport function isSet<T extends Set<unknown>>(value: T): value is Extract<T, Set<unknown>>\nexport function isSet(value: unknown): value is Set<unknown> {\n return value instanceof Set\n}\n\n/** Type guard that checks whether a value is a WeakMap instance. */\nexport function isWeakMap(value: unknown): value is WeakMap<WeakKey, unknown>\nexport function isWeakMap<K extends WeakKey, V, T extends WeakMap<K, V>>(value: T): value is Extract<T, WeakMap<K, V>>\nexport function isWeakMap(value: unknown): value is WeakMap<WeakKey, unknown> {\n return value instanceof WeakMap\n}\n\n/** Type guard that checks whether a value is a WeakSet instance. */\nexport function isWeakSet(value: unknown): value is WeakSet<WeakKey>\nexport function isWeakSet<K extends WeakKey, T extends WeakSet<K>>(value: T): value is Extract<T, WeakSet<K>>\nexport function isWeakSet(value: unknown): value is WeakSet<WeakKey> {\n return value instanceof WeakSet\n}\n\n/** Type guard that checks whether a value is a DataView instance. */\nexport function isDataView(value: unknown): value is DataView\nexport function isDataView<T>(value: T): value is Extract<T, DataView>\nexport function isDataView(value: unknown): value is DataView {\n return value instanceof DataView\n}\n\n/** Type guard that checks whether a value is a Blob instance. */\nexport function isBlob(value: unknown): value is Blob\nexport function isBlob<T extends Blob>(value: T): value is Extract<T, Blob>\nexport function isBlob(value: unknown): value is Blob {\n return typeof Blob !== 'undefined' && value instanceof Blob\n}\n\n/** Type guard that checks whether a value is a File instance. */\nexport function isFile(value: unknown): value is File\nexport function isFile<T extends File>(value: T): value is Extract<T, File>\nexport function isFile(value: unknown): value is File {\n return typeof File !== 'undefined' && value instanceof File\n}\n", "import type { FieldType } from './ObjectTypeShape.js'\n\n/**\n * Checks whether a value matches the expected field type, with correct handling for arrays and nulls.\n * @param value - The value to check.\n * @param expectedType - The expected type string.\n * @returns True if the value matches the expected type.\n */\nexport const isType = (value: unknown, expectedType: FieldType) => {\n const typeofValue = typeof value\n switch (expectedType) {\n case 'array': {\n return Array.isArray(value)\n }\n case 'null': {\n return value === null\n }\n case 'undefined': {\n return value === undefined\n }\n case 'object': {\n // nulls resolve to objects, so exclude them\n if (value === null) {\n return false\n }\n // arrays resolve to objects, so exclude them\n return typeofValue === 'object' && !Array.isArray(value)\n }\n default: {\n return typeofValue === expectedType\n }\n }\n}\n", "import { isType } from './isType.js'\n\n/** A value that can appear in a typed object tree (primitives, objects, arrays, functions, and symbols). */\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport type TypedValue = bigint | string | number | boolean | null | TypedObject | TypedArray | Function | symbol | undefined\n\n/** A valid key for a typed object. Defaults to string | number | symbol unless narrowed by T. */\nexport type TypedKey<T extends string | void = void> = T extends string ? T : string | number | symbol\n\n/** An object whose keys are TypedKey and whose values are TypedValue. */\nexport type TypedObject = object | { [key: TypedKey]: TypedValue }\n\n/** An array of TypedValue elements. */\nexport type TypedArray = TypedValue[]\n\n/**\n * Type guard that checks whether a value is a valid TypedKey (string, bigint, number, or symbol).\n * @param value - The value to check.\n * @returns True if the value is a valid TypedKey.\n */\nexport const isTypedKey = (value: unknown): value is TypedKey => {\n switch (typeof value) {\n case 'string':\n case 'bigint':\n case 'number':\n case 'symbol': {\n return true\n }\n default: {\n return false\n }\n }\n}\n\n/**\n * Type guard that checks whether a value is a valid TypedValue.\n * @param value - The value to check.\n * @returns True if the value is a string, number, boolean, null, TypedObject, or TypedArray.\n */\nexport const isTypedValue = (value: unknown): value is TypedValue => {\n switch (typeof value) {\n case 'string':\n case 'number':\n case 'boolean': {\n return true\n }\n default: {\n return value === null || isTypedObject(value) || isTypedArray(value)\n }\n }\n}\n\n/**\n * Type guard that checks whether a value is a TypedArray (an array where every element is a TypedValue).\n * @param value - The value to check.\n * @returns True if the value is an array of TypedValue elements.\n */\nexport const isTypedArray = (value: unknown): value is TypedArray => {\n return Array.isArray(value) && value.every(item => isTypedValue(item))\n}\n\n/**\n * Type guard that checks whether a key-value pair has a valid TypedKey and TypedValue.\n * @param pair - A tuple of [key, value] to validate.\n * @returns True if the key is a TypedKey and the value is a TypedValue.\n */\nexport const isValidTypedFieldPair = (pair: [key: unknown, value: unknown]): pair is [key: TypedKey, value: TypedValue] => {\n const [key, value] = pair\n return isTypedKey(key) && isTypedValue(value)\n}\n\n/**\n * Type guard that checks whether a value is a TypedObject (an object with TypedKey keys and TypedValue values).\n * @param value - The value to check.\n * @returns True if the value is a valid TypedObject.\n */\nexport const isTypedObject = (value: unknown): value is TypedObject => {\n return (\n isType(value, 'object')\n // check if all keys are strings\n && Object.entries(value as object).every(item => isValidTypedFieldPair(item))\n )\n}\n\n// Object Type Test\n/*\ninterface TestObject {\n value: number\n}\n\nconst x: TestObject = { value: 1 }\n\nconst f = (p: TypedValue): void => {\n console.log(p)\n}\n\nf(x)\n*/\n", "import { typeOf } from './typeOf.js'\nimport type { TypeOfTypes } from './TypeOfTypes.js'\n\n/**\n * Validates that a value matches the expected type, returning the value and any errors.\n * @param typeName - The expected type name.\n * @param value - The value to validate.\n * @param optional - If true, undefined values are accepted without error.\n * @returns A tuple of [value or undefined, array of errors].\n */\nexport const validateType = <T>(typeName: TypeOfTypes, value: T, optional = false): [T | undefined, Error[]] => {\n switch (typeOf(value)) {\n case typeName: {\n return [value, []]\n }\n default: {\n if (optional && typeOf(value) === 'undefined') {\n return [value, []]\n }\n return [undefined, [new Error(`value type is not '${typeName}:${typeof value}'`)]]\n }\n }\n}\n", "import { fetchJsonGet, fetchJsonPost } from '#fetch'\nimport { isUndefined } from '#typeof'\n\nimport type { ApiConfig } from './ApiConfig.ts'\n\n/**\n * Generic REST API endpoint wrapper that supports fetching and inserting typed data.\n * @typeParam T - The type of data returned by the endpoint\n */\nclass ApiEndpoint<T> {\n private _value?: T\n private config: ApiConfig\n private path: string\n\n constructor(config: ApiConfig, path: string) {\n this.config = config\n this.path = path\n }\n\n get value() {\n return this._value\n }\n\n private get headers() {\n return isUndefined(this.config.jwtToken) ? undefined : { Authorization: this.config.jwtToken }\n }\n\n private get url() {\n return `${this.config.apiDomain}/${this.path}`\n }\n\n async fetch() {\n const response = await fetchJsonGet<T>(this.url, { headers: this.headers })\n if (response.status === 200) {\n this._value = response.data ?? undefined\n } else {\n throw new Error('Unexpected Status Code')\n }\n return this._value\n }\n\n async get() {\n return this._value ?? (await this.fetch())\n }\n\n async insert(value: T) {\n const response = await fetchJsonPost<T>(this.url, value, { headers: this.headers })\n if (response.status === 200) {\n this._value = response.data ?? undefined\n } else {\n throw new Error('Unexpected Status Code')\n }\n return this._value\n }\n}\n\nexport { ApiEndpoint }\n", "import { ApiStage } from './ApiStage.ts'\n\n/**\n * Determines the API stage based on the hostname.\n * @param hostname - The hostname to evaluate\n * @returns The corresponding ApiStage (Local, Beta, or Prod)\n */\nconst getApiStage = (hostname: string) => {\n if (hostname.startsWith('localhost')) {\n return ApiStage.Local\n }\n if (hostname.startsWith('beta.')) {\n return ApiStage.Beta\n }\n return ApiStage.Prod\n}\n\nexport { getApiStage }\n", "/**\n * Checks whether the source array contains every element in the target array.\n * @param source - The array to search within\n * @param target - The elements that must all be present\n * @returns True if every target element exists in source\n */\nexport const containsAll = <T>(source: T[], target: T[]) => target.every(i => source.includes(i))\n", "/**\n * Array filter callback that removes duplicate values, with correct NaN handling.\n * Use with `array.filter(distinct)`.\n */\nexport const distinct = <T>(value: T, index: number, array: T[]): boolean => {\n // Special case for NaN\n if (Number.isNaN(value)) {\n // Return true for the first NaN only\n return array.findIndex(item => Number.isNaN(item)) === index\n }\n\n // Standard distinct logic for other values\n return array.indexOf(value) === index\n}\n", "/**\n * Used to type narrow an object which is possibly null or undefined. Works well\n * with functional Array methods. For example:\n * @example\n * const payloads: XyoPayload[] = boundWitness._payloads?.filter(exists) || []\n * @param x The object which is potentially undefined or null\n * @returns False if the object is null/undefined, true otherwise\n */\nexport const exists = <T>(x?: T | null): x is NonNullable<T> => {\n return x === undefined || x === null ? false : true\n}\n", "import { exists } from '#exists'\n\n/**\n * Maps each element using the predicate and filters out nullish results.\n * @param x - The input array\n * @param predicate - Transform function applied to each element\n * @returns Array of non-nullish transformed values\n */\nexport const filterAs = <In, Out>(x: In[], predicate: (a: In) => Out) => {\n return x.map(predicate).filter(exists)\n}\n", "/**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param array The array to filter.\n * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.\n * @param concurrency Maximum number of predicates to run in parallel.\n * @returns The elements of an array that meet the condition specified in a callback function.\n */\nexport const filterAsync = async <T>(\n array: T[],\n predicate: (value: T, index: number, array: T[]) => Promise<boolean>,\n concurrency = 16,\n): Promise<T[]> => {\n if (array.length === 0) {\n return []\n }\n\n const results: boolean[] = Array.from({ length: array.length })\n let nextIndex = 0\n const limit = Math.max(1, concurrency)\n\n const worker = async () => {\n while (true) {\n const index = nextIndex++\n if (index >= array.length) {\n return\n }\n results[index] = await predicate(array[index], index, array)\n }\n }\n\n await Promise.all(Array.from({ length: Math.min(limit, array.length) }, () => worker()))\n return array.filter((_, index) => results[index])\n}\n", "import { exists } from '#exists'\n\n/**\n * Maps each element using the predicate and returns the first non-nullish result.\n * @param x - The input array\n * @param predicate - Transform function applied to each element\n * @returns The first non-nullish transformed value, or undefined\n */\nexport const findAs = <In, Out>(x: In[], predicate: (a: In) => Out) => {\n return x.map(predicate).find(exists)\n}\n\n/**\n * Maps each element using the predicate and returns the last non-nullish result.\n * @param x - The input array\n * @param predicate - Transform function applied to each element\n * @returns The last non-nullish transformed value, or undefined\n */\nexport const findLastAs = <In, Out>(x: In[], predicate: (a: In) => Out) => {\n return x.map(predicate).findLast(exists)\n}\n", "import { exists } from '#exists'\n\n/**\n * Concatenates two values or arrays into a single flat array, filtering out nullish entries.\n * @param a - First value or array\n * @param b - Second value or array\n * @returns A flat array of non-nullish elements\n */\nexport const flatten = <T>(a?: T | ConcatArray<T>, b?: T | ConcatArray<T>): T[] => {\n // eslint-disable-next-line unicorn/prefer-spread\n return ([] as (T | undefined)[]).concat(a).concat(b).filter(exists)\n}\n", "/**\n * Returns a new array with duplicate values removed.\n * @param arr - The input array\n * @returns A deduplicated array\n */\nexport const uniq = <T>(arr: T[]): T[] => {\n return [...new Set(arr)]\n}\n\n/**\n * Returns a new array with duplicates removed, using a key function for comparison.\n * @param arr - The input array\n * @param iteratee - Function that returns the key to compare by\n * @returns A deduplicated array keeping the first occurrence of each key\n */\nexport const uniqBy = <T, I>(arr: T[], iteratee: (item: T) => I): T[] => {\n const seen = new Set()\n return arr.filter((item) => {\n const key = iteratee(item)\n if (!seen.has(key)) {\n seen.add(key)\n return true\n }\n return false\n })\n}\n", "/**\n * Compares two ArrayBuffers for byte-level equality.\n * @param a1 - First buffer\n * @param a2 - Second buffer\n * @returns True if the buffers have the same length and identical bytes\n */\nexport const equalArrayBuffers = (a1: ArrayBufferLike, a2: ArrayBufferLike) => {\n const u1 = new Uint8Array(a1)\n const u2 = new Uint8Array(a2)\n if (u1.byteLength !== u2.byteLength) return false\n for (let i = 0; i < u1.byteLength; i++) {\n if (u1[i] !== u2[i]) return false\n }\n return true\n}\n", "/** Type guard that checks if a value is an ArrayBuffer instance. */\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer\nexport function isArrayBuffer<T extends ArrayBuffer>(value: T): value is Extract<T, ArrayBuffer>\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer {\n return value instanceof ArrayBuffer\n}\n\n/** Type guard that checks if a value conforms to the ArrayBufferLike interface (has byteLength and slice). */\nexport function isArrayBufferLike(value: unknown): value is ArrayBufferLike\nexport function isArrayBufferLike<T extends ArrayBufferLike>(value: T): value is Extract<T, ArrayBufferLike>\nexport function isArrayBufferLike(value: unknown): value is ArrayBufferLike {\n return (\n value !== null\n && typeof value === 'object'\n && 'byteLength' in value\n && typeof (value as ArrayBufferLike).byteLength === 'number'\n && 'slice' in value\n && typeof (value as ArrayBufferLike).slice === 'function'\n )\n}\n", "import type { AssertExErrorFunc, AssertExMessageFunc } from './types.ts'\n\n/**\n * Asserts that a value is defined (not undefined) and returns the value.\n * Throws an error if the value is undefined.\n *\n * @template T - The type of value to check\n * @param expr - Expression to be evaluated for being defined\n * @param messageFunc - Function that returns a message for the error if expression is undefined\n * @throws Error with the message returned by messageFunc\n * @returns The value of the expression (guaranteed to be defined)\n * @example\n * ```typescript\n * // Simple usage with a message function\n * const value = assertDefinedEx(possiblyUndefined, () => 'Value must be defined')\n *\n * // Using with type narrowing\n * const config: Config | undefined = loadConfig()\n * const safeConfig = assertDefinedEx(config, () => 'Config failed to load')\n * // safeConfig is now type Config (not Config | undefined)\n * ```\n */\nfunction assertDefinedEx<T>(expr: T | undefined, messageFunc?: AssertExMessageFunc<T>): T\n\n/**\n * Asserts that a value is defined (not undefined) and returns the value.\n * Throws a custom error if the value is undefined.\n *\n * @template T - The type of value to check\n * @template R - The type of error to throw\n * @param expr - Expression to be evaluated for being defined\n * @param errorFunc - Function that returns a custom error instance if expression is undefined\n * @throws Custom error returned by errorFunc\n * @returns The value of the expression (guaranteed to be defined)\n * @example\n * ```typescript\n * // Using with a custom error\n * const user = assertDefinedEx(getUser(), () => new UserNotFoundError('User not found'))\n * ```\n */\nfunction assertDefinedEx<T, R extends Error>(expr: T | undefined, errorFunc?: AssertExErrorFunc<T, R>): T\n\n/**\n * Implementation of assertDefinedEx that handles all overloads.\n *\n */\nfunction assertDefinedEx<T, R extends Error, P extends AssertExMessageFunc<T> | AssertExErrorFunc<T, R>>(\n expr: T | undefined,\n func?: P,\n): T {\n if (expr !== undefined) return expr\n if (typeof func === 'function') {\n const errorOrMessage = func(expr)\n throw typeof errorOrMessage === 'string' ? new Error(errorOrMessage) : errorOrMessage\n }\n if (func !== undefined) {\n throw new Error('Invalid assertDefinedEx usage: second argument must be a function or undefined')\n }\n throw new Error('Assertion failed: value is undefined')\n}\n\nexport { assertDefinedEx }\n", "import type { AssertExErrorFunc, AssertExMessageFunc } from './types.ts'\n\n/**\n * Asserts that an expression is truthy and returns the value.\n * Throws an error if the expression is falsy.\n *\n * @template T - The type of value to check\n * @param expr - Expression to be evaluated for truthiness\n * @param messageFunc - Function that returns a message for the error if expression is falsy\n * @throws Error with the message returned by messageFunc\n * @returns The value of the expression (guaranteed to be truthy)\n * @example\n * ```typescript\n * // Simple usage with a message function\n * const value = assertEx(possiblyFalsy, () => 'Value must be truthy')\n *\n * // Using with type narrowing\n * const config: Config | null = loadConfig()\n * const safeConfig = assertEx(config, () => 'Config failed to load')\n * // safeConfig is now type Config (not Config | null)\n * ```\n */\nfunction assertEx<T>(expr: T | null | undefined, messageFunc?: AssertExMessageFunc<T>): T\n\n/**\n * Asserts that an expression is truthy and returns the value.\n * Throws a custom error if the expression is falsy.\n *\n * @template T - The type of value to check\n * @template R - The type of error to throw\n * @param expr - Expression to be evaluated for truthiness\n * @param errorFunc - Function that returns a custom error instance if expression is falsy\n * @throws Custom error returned by errorFunc\n * @returns The value of the expression (guaranteed to be truthy)\n * @example\n * ```typescript\n * // Using with a custom error\n * const user = assertEx(getUser(), () => new UserNotFoundError('User not found'))\n * ```\n */\nfunction assertEx<T, R extends Error>(expr: T | null | undefined, errorFunc?: AssertExErrorFunc<T, R>): T\n\n/**\n * Implementation of assertEx that handles all overloads.\n */\nfunction assertEx<T, R extends Error, P extends AssertExMessageFunc<T> | AssertExErrorFunc<T, R>>(\n expr: T | null | undefined,\n func?: P,\n): T {\n if (expr !== undefined && expr !== null && expr !== false && expr !== 0 && expr !== '' && expr !== 0n) return expr\n if (typeof func === 'function') {\n const errorOrMessage = func(expr)\n throw typeof errorOrMessage === 'string' ? new Error(errorOrMessage) : errorOrMessage\n }\n if (func !== undefined) {\n throw new Error('Invalid assertEx usage: second argument must be a function or undefined')\n }\n throw new Error('Assertion failed')\n}\n\nexport { assertEx }\n", "import * as z from 'zod/mini'\n\nimport type { Brand } from '#typeof'\n\nimport { type Hex } from '../hex/index.ts'\nimport { HexRegExMinMax } from '../HexRegEx.ts'\n\n/** A 160-bit zero address constant. */\nexport const ZERO_ADDRESS = '0000000000000000000000000000000000000000' as Address\n/** The character length of an address hex string (40 hex characters / 20 bytes). */\nexport const ADDRESS_LENGTH = 40 as const\n\n/** Regular expression matching a 20-byte (40 hex character) address string. */\nexport const AddressRegEx = HexRegExMinMax(ADDRESS_LENGTH / 2, ADDRESS_LENGTH / 2)\n\ntype BrandedAddress = Brand<Hex, { readonly __address: true }>\n\n/** Zod schema that validates and transforms a string into a branded Address type. */\nexport const AddressZod = z.pipe(\n z.string().check(z.regex(AddressRegEx)),\n z.transform((v: string): BrandedAddress => v as BrandedAddress),\n)\n\n/** A validated 20-byte address string type, inferred from the AddressZod schema. */\nexport type Address = z.infer<typeof AddressZod>\n", "/**\n * Creates a RegExp matching lowercase hex strings with a byte length in the given range.\n * @param minBytes - Minimum number of bytes (default 0)\n * @param maxBytes - Maximum number of bytes\n * @returns A RegExp for validating hex strings within the byte range\n */\nexport const HexRegExMinMax = (minBytes = 0, maxBytes: number = (Number.MAX_SAFE_INTEGER / 2)) => {\n return new RegExp(`^[a-f0-9]{${minBytes * 2},${maxBytes * 2}}$`)\n}\n\n/**\n * Creates a RegExp matching mixed-case hex strings with a 0x prefix and a byte length in the given range.\n * @param minBytes - Minimum number of bytes (default 0)\n * @param maxBytes - Maximum number of bytes\n * @returns A RegExp for validating prefixed hex strings within the byte range\n */\nexport const HexRegExMinMaxMixedCaseWithPrefix = (minBytes = 0, maxBytes: number = (Number.MAX_SAFE_INTEGER / 2)) => {\n return new RegExp(`^0x[a-fA-F0-9]{${minBytes * 2},${maxBytes * 2}}$`)\n}\n\n/** Regular expression matching a lowercase hex string without prefix. */\nexport const HexRegEx = /^[0-9a-f]+$/\n/** Regular expression matching a lowercase hex string with a 0x prefix. */\nexport const HexRegExWithPrefix = /^0x[0-9a-f]+$/\n", "import * as z from 'zod/mini'\n\nimport { type Address, ADDRESS_LENGTH } from './address.ts'\nimport { AddressValidationZod } from './AddressValidationZod.ts'\n\n/** Zod schema that accepts a string, bigint, or number and transforms it into a validated Address. */\nexport const AddressTransformZod = z.pipe(\n z.pipe(\n z.union([z.string(), z.bigint(), z.number()]),\n z.transform((value: string | bigint | number): string => {\n if (typeof value === 'bigint') {\n return value.toString(16).padStart(ADDRESS_LENGTH, '0')\n }\n if (typeof value === 'string') {\n return value.startsWith('0x') ? value.slice(2) : value\n }\n return BigInt(value).toString(16).padStart(ADDRESS_LENGTH, '0')\n }),\n ).check(z.refine((x: string) => AddressValidationZod.safeParse(x).success)),\n z.transform((x: string): Address => x as Address),\n)\n\n/** The output type of AddressTransformZod after parsing and transformation. */\nexport type AddressTransformZodType = z.infer<typeof AddressTransformZod>\n", "import * as z from 'zod/mini'\n\nimport { HexZod } from '../hex/index.ts'\nimport type { Address } from './address.ts'\nimport { ADDRESS_LENGTH } from './address.ts'\n\n/** Zod schema that validates a string is a properly formatted 40-character hex address. */\nexport const AddressValidationZod = z.pipe(\n z.string().check(\n z.refine((x: string) => HexZod.safeParse(x).success),\n z.refine((x: string) => x.length === ADDRESS_LENGTH, { error: e => new Error(`Address must have 40 characters [${String(e.input)}]`) }),\n ),\n z.transform((v: string): Address => v as Address),\n)\n\n/** The output type of AddressValidationZod after parsing. */\nexport type AddressValidationZodType = z.infer<typeof AddressValidationZod>\n", "import { isString, isUndefined } from '#typeof'\n\ntype AssertCallback = (value: unknown, message: string) => string | boolean\n\n/** Configuration for assertion behavior: a static message string, a boolean toggle, or a callback. */\nexport type AssertConfig = string | AssertCallback | boolean\n\n/**\n * Throws an Error based on the assert configuration when a value fails validation.\n * @param value - The value being validated\n * @param assert - Assertion config controlling the error message\n * @param defaultMessage - Fallback message if no custom message is provided\n */\nexport const assertError = (value: unknown, assert: AssertConfig | undefined, defaultMessage: string) => {\n if (!isUndefined(assert)) {\n const assertString\n = typeof assert === 'string'\n ? assert\n : typeof assert === 'boolean'\n ? defaultMessage\n : assert(value, defaultMessage)\n if (isString(assertString) || assertString) {\n throw new Error(assertString === true ? defaultMessage : assertString)\n }\n }\n // eslint-disable-next-line unicorn/no-useless-undefined\n return undefined\n}\n", "import { isError } from '#typeof'\n\n/**\n * Invokes the handler if the value is an Error, otherwise re-throws it.\n * @param error - The caught value to inspect\n * @param handler - Callback invoked with the Error if it is one\n * @returns The handler's return value\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const handleError = <T>(error: any, handler: (error: Error) => T) => {\n if (isError(error)) {\n return handler(error)\n }\n throw error\n}\n\n/**\n * Async version of handleError. Invokes the async handler if the value is an Error, otherwise re-throws it.\n * @param error - The caught value to inspect\n * @param handler - Async callback invoked with the Error if it is one\n * @returns The handler's resolved return value\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const handleErrorAsync = async <T>(error: any, handler: (error: Error) => Promise<T>) => {\n if (isError(error)) {\n return await handler(error)\n }\n throw error\n}\n", "/**\n * Converts a bit count to the equivalent number of hex nibbles (4 bits each).\n * @param value - The number of bits (must be a multiple of 4)\n * @returns The number of nibbles\n */\nexport const bitsToNibbles = (value: number): number => {\n const nibbles = value >> 2\n if (value !== nibbles << 2) throw new Error('Bits for nibbles must multiple of 4')\n return nibbles\n}\n\n/**\n * Converts a nibble count to the equivalent number of bits.\n * @param value - The number of nibbles\n * @returns The number of bits\n */\nexport const nibblesToBits = (value: number): number => {\n return value << 2\n}\n", "import { HexRegEx, HexRegExWithPrefix } from '../HexRegEx.ts'\nimport type { Hex, HexConfig } from './hex.ts'\nimport { bitsToNibbles } from './nibble.ts'\n\n/**\n * Type guard that checks whether a value is a valid hex string.\n * @param value - The value to check\n * @param config - Optional configuration for prefix and bit length validation\n * @returns True if the value is a valid Hex string\n */\nexport const isHex = (value: unknown, config?: HexConfig): value is Hex => {\n // Is it a string?\n if (typeof value !== 'string') return false\n\n const valueCharLength = value.length - (config?.prefix === true ? 2 : 0)\n\n // If a bitLength specified, does it conform?\n if (config?.bitLength !== undefined && valueCharLength !== bitsToNibbles(config?.bitLength)) return false\n\n // Does it only has hex values?\n const regex = config?.prefix === true ? HexRegExWithPrefix : HexRegEx\n return regex.test(value)\n}\n", "import { isNumber } from '#typeof'\n\nimport type { Hex, HexConfig } from '../hex.ts'\nimport { isHex } from '../is.ts'\nimport { bitsToNibbles } from '../nibble.ts'\n\n/**\n * Normalizes a hex string by stripping an optional 0x prefix, lowercasing, and padding to byte/bit boundaries.\n * @param value - The hex string to normalize (with or without 0x prefix)\n * @param config - Configuration for prefix, byteSize, and bitLength padding\n * @returns The normalized Hex string\n */\nexport const hexFromHexString = (value: string, config: HexConfig = {}): Hex => {\n const {\n prefix: isPrefix = false, byteSize = 8, bitLength,\n } = config\n const nibbleBoundary = bitsToNibbles(byteSize)\n const unEvened = (value.startsWith('0x') ? value.slice(2) : value).toLowerCase()\n if (isHex(unEvened)) {\n const evenCharacters = unEvened.padStart(Math.ceil(unEvened.length / nibbleBoundary) * nibbleBoundary, '0')\n const padded = isNumber(bitLength) ? evenCharacters.padStart(bitLength / 4, '0') : evenCharacters\n return (isPrefix ? `0x${padded}` : padded).toLowerCase() as Hex\n }\n throw new Error('Received string is not a value hex')\n}\n", "import type { Hex, HexConfig } from '../hex.ts'\nimport { hexFromHexString } from './fromHexString.ts'\n\n/** Convert an ArrayBuffer to a hex string */\nexport const hexFromArrayBuffer = (\n /** The buffer to be converted */\n buffer: ArrayBufferLike,\n /** Configuration of output format and validation */\n config?: HexConfig,\n): Hex => {\n const unPadded = [...new Uint8Array(buffer)].map(x => x.toString(16).padStart(2, '0')).join('')\n return hexFromHexString(unPadded, config)\n}\n", "import type { Hex, HexConfig } from '../hex.ts'\nimport { hexFromHexString } from './fromHexString.ts'\n\n/** Convert a bigint to a hex string */\nexport const hexFromBigInt = (\n /** The bigint to be converted */\n value: bigint,\n /** Configuration of output format and validation */\n config: HexConfig = {},\n): Hex => {\n const unPadded = value.toString(16)\n return hexFromHexString(unPadded, config)\n}\n", "import type { Hex, HexConfig } from '../hex.ts'\nimport { hexFromBigInt } from './fromBigInt.ts'\n\n/**\n * Converts a number to a hex string by converting to BigInt first.\n * @param value - The number to convert\n * @param config - Optional hex output configuration\n * @returns The hex string representation\n */\nexport const hexFromNumber = (value: number, config?: HexConfig): Hex => {\n return hexFromBigInt(BigInt(value), config)\n}\n", "import type { Hex, HexConfig } from '../hex.ts'\nimport { hexFromArrayBuffer } from './fromArrayBuffer.ts'\nimport { hexFromBigInt } from './fromBigInt.ts'\nimport { hexFromHexString } from './fromHexString.ts'\nimport { hexFromNumber } from './fromNumber.ts'\n\n/** Takes unknown value and tries our best to convert it to a hex string */\nexport const hexFrom = (\n /** Supported types are string, number, bigint, and ArrayBuffer */\n value: string | number | bigint | ArrayBufferLike,\n /** Configuration of output format and validation */\n config?: HexConfig,\n): Hex => {\n switch (typeof value) {\n case 'string': {\n return hexFromHexString(value, config)\n }\n case 'bigint': {\n return hexFromBigInt(value, config)\n }\n case 'number': {\n return hexFromNumber(value, config)\n }\n case 'object': {\n return hexFromArrayBuffer(value, config)\n }\n default: {\n throw new Error(`Invalid type: ${typeof value}`)\n }\n }\n}\n", "import type { AssertConfig } from '#error'\nimport { assertError } from '#error'\n\nimport { hexFromHexString } from './from/index.ts'\nimport type { Hex } from './hex.ts'\nimport { isHex } from './is.ts'\n\n/**\n * Attempts to coerce a value into a Hex type, returning undefined or throwing based on the assert config.\n * @param value - The value to coerce (must be a string)\n * @param assert - If provided, throws on failure instead of returning undefined\n * @returns The value as Hex, or undefined if coercion fails and assert is not set\n */\nexport function asHex(value: unknown): Hex | undefined\nexport function asHex(value: unknown, assert: AssertConfig): Hex\nexport function asHex(value: unknown, assert?: AssertConfig): Hex | undefined {\n switch (typeof value) {\n case 'string': {\n const stringValue = hexFromHexString(value)\n return isHex(stringValue) ? stringValue : assertError(value, assert, `Value is not Hex [${value}]`)\n }\n default: {\n return assertError(value, assert, `Unsupported type [${typeof value}]`)\n }\n }\n}\n", "import * as z from 'zod/mini'\n\nimport type { Brand } from '#typeof'\n\nimport { HexRegEx } from '../HexRegEx.ts'\n\n/** Branded type representing a validated lowercase hex string. */\nexport type BrandedHex = Brand<Lowercase<string>, { readonly __hex: true }>\n\n/** Zod schema that validates and transforms a string into a branded Hex type. */\nexport const HexZod = z.pipe(\n z.string().check(z.regex(HexRegEx, { error: 'Invalid hex format' })),\n z.transform((val: string) => val as BrandedHex),\n)\n\n/** Configuration of validation and output format */\nexport interface HexConfig {\n bitLength?: number\n byteSize?: number\n prefix?: boolean\n}\n\n/** A validated hex string type, inferred from the HexZod schema. */\nexport type Hex = z.infer<typeof HexZod>\n", "import { isString } from '#typeof'\n\nimport { hexFromHexString } from './from/index.ts'\n\n/**\n * Checks whether a hex string represents a zero value.\n * @param value - The hex string to check\n * @returns True if zero, false if non-zero, or undefined if the input is not a string\n */\nexport const isHexZero = (value?: string) => {\n return isString(value) ? BigInt(hexFromHexString(value, { prefix: true })) === 0n : undefined\n}\n", "/**\n * Converts an ArrayBuffer to a hex string without padding or normalization.\n * @param buffer - The ArrayBuffer to convert\n * @returns A lowercase hex string representation of the buffer\n */\nexport const toHexLegacy = (buffer: ArrayBuffer) => {\n return [...new Uint8Array(buffer)].map(x => x.toString(16).padStart(2, '0')).join('')\n}\n", "import { hexFrom } from './from/index.ts'\nimport type { HexConfig } from './hex.ts'\n\n/** takes any value and tries our best to convert it to a hex string */\nexport const toHex = (\n /** Supported types are string, number, bigint, and ArrayBuffer */\n value: string | number | bigint | ArrayBufferLike,\n /** Configuration of output format and validation */\n config: HexConfig = {},\n) => {\n const { prefix: isPrefix = false } = config\n return hexFrom(value, { prefix: isPrefix, ...config })\n}\n", "import type { HexConfig } from '../hex/index.ts'\nimport { isHex } from '../hex/index.ts'\nimport type { Address } from './address.ts'\nimport { AddressValidationZod } from './AddressValidationZod.ts'\n\n/**\n * Type guard that checks whether a value is a valid 160-bit address.\n * @param value - The value to check\n * @param config - Optional hex config (defaults to 160-bit, no prefix)\n * @returns True if the value is a valid Address\n */\nexport const isAddress = (value?: unknown, config: HexConfig = {}): value is Address => {\n const { bitLength = 160, prefix: isPrefix = false } = config\n return isHex(value, { bitLength, prefix: isPrefix })\n}\n\n/** @alpha */\nexport function isAddressV2(value?: unknown): value is Address {\n return AddressValidationZod.safeParse(value).success\n}\n", "import type { AssertConfig } from '#error'\nimport { assertError } from '#error'\nimport { isObject } from '#typeof'\n\nimport { hexFromHexString } from '../hex/index.ts'\nimport type { Address } from './address.ts'\nimport { AddressValidationZod } from './AddressValidationZod.ts'\nimport { isAddress } from './is.ts'\n\n/**\n * Attempts to coerce a value into an Address type, returning undefined or throwing based on the assert config.\n * @param value - The value to coerce (must be a string)\n * @param assert - If provided, throws on failure instead of returning undefined\n * @returns The value as Address, or undefined if coercion fails and assert is not set\n */\nexport function asAddress(value?: unknown): Address | undefined\nexport function asAddress(value: unknown, assert: AssertConfig): Address\nexport function asAddress(value?: unknown, assert?: AssertConfig): Address | undefined {\n try {\n let stringValue: string | undefined\n\n switch (typeof value) {\n case 'string': {\n stringValue = hexFromHexString(value, { prefix: false, byteSize: 4 })\n break\n }\n default: {\n return isObject(assert) ? assertError(value, assert, `Unsupported type [${typeof value}]`) : undefined\n }\n }\n return isAddress(stringValue) ? stringValue : assertError(value, assert, `Value is not an Address [${value}]`)\n } catch (ex) {\n const error = ex as Error\n return assertError(undefined, assert, error.message)\n }\n}\n\n/** @alpha */\nexport function asAddressV2(value?: unknown, assert = false): Address | undefined {\n return assert\n ? AddressValidationZod.parse(value)\n : AddressValidationZod.safeParse(value).data\n}\n", "import type { HexConfig } from '../hex/index.ts'\nimport { hexFrom } from '../hex/index.ts'\nimport type { Address } from './address.ts'\nimport { AddressTransformZod } from './AddressTransformZod.ts'\n\n/**\n * Converts a value to a 160-bit Address hex string.\n * @param value - The value to convert (string, number, bigint, or ArrayBuffer)\n * @param config - Optional hex config (defaults to 160-bit, no prefix)\n * @returns The value as an Address\n */\nexport const toAddress = (value: string | number | bigint | ArrayBufferLike, config: HexConfig = {}): Address => {\n const { bitLength = 160, prefix: isPrefix = false } = config\n return hexFrom(value, {\n bitLength, prefix: isPrefix, ...config,\n }) as unknown as Address\n}\n\n/** @alpha */\nexport function toAddressV2(value: unknown, assert = false): Address | undefined {\n return assert\n ? AddressTransformZod.parse(value)\n : AddressTransformZod.safeParse(value).data\n}\n", "import * as z from 'zod/mini'\n\nimport type { AssertConfig } from '#error'\nimport { assertError } from '#error'\nimport type { Brand } from '#typeof'\n\nimport type { HexConfig } from './hex/index.ts'\nimport {\n hexFrom, hexFromHexString, isHex,\n} from './hex/index.ts'\nimport { HexRegExMinMaxMixedCaseWithPrefix } from './HexRegEx.ts'\n\n/** Regular expression matching a 20-byte Ethereum address with 0x prefix (mixed case). */\nexport const EthAddressRegEx = HexRegExMinMaxMixedCaseWithPrefix(20, 20)\n\n/** Zod schema that validates a string is a properly formatted Ethereum address. */\nexport const EthAddressToStringZod = z.string().check(z.regex(EthAddressRegEx))\n\n/** @deprecated use EthAddressToStringZod */\nexport const EthAddressToStringSchema = EthAddressToStringZod\n\n/** Zod schema that validates and transforms a string into an EthAddress type. */\nexport const EthAddressFromStringZod = z.pipe(\n z.string().check(z.regex(EthAddressRegEx)),\n z.transform((v: string) => toEthAddress(v)),\n)\n\n/** @deprecated use EthAddressFromStringZod */\nexport const EthAddressFromStringSchema = EthAddressFromStringZod\n\n/** Branded type representing a validated Ethereum address with 0x prefix. */\n// using true instead of unique symbol to avoid conflicts with other versions of library\nexport type EthAddress = Brand<string, { readonly __eth_address: true }>\n\n/** The zero Ethereum address constant (0x followed by 40 zero characters). */\nexport const ETH_ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' as EthAddress\n\n/**\n * Converts a value to a 0x-prefixed Ethereum address string.\n * @param value - The value to convert (string, number, bigint, or ArrayBuffer)\n * @param config - Optional hex config (defaults to 160-bit, no inner prefix)\n * @returns The value as an EthAddress\n */\nexport const toEthAddress = (value: string | number | bigint | ArrayBufferLike, config: HexConfig = {}): EthAddress => {\n const { bitLength = 160, prefix: isPrefix = false } = config\n return `0x${hexFrom(value, {\n bitLength, prefix: isPrefix, ...config,\n })}` as EthAddress\n}\n\n/**\n * Type guard that checks whether a value is a valid 0x-prefixed Ethereum address.\n * @param value - The value to check\n * @param config - Optional hex config (defaults to 160-bit with prefix)\n * @returns True if the value is a valid EthAddress\n */\nexport const isEthAddress = (value?: unknown, config: HexConfig = {}): value is EthAddress => {\n const { bitLength = 160, prefix: isPrefix = true } = config\n const loweredValue = typeof value === 'string' ? value.toLowerCase() : value\n return isHex(loweredValue, { bitLength, prefix: isPrefix })\n}\n\n/** Zod schema that validates a string as a properly formatted Ethereum address using regex and type guard. */\nexport const EthAddressZod = z.string().check(\n z.regex(EthAddressRegEx, { error: 'Invalid address format' }),\n z.refine(isEthAddress),\n)\n\n/**\n * Attempts to coerce a value into an EthAddress, returning undefined or throwing based on the assert config.\n * @param value - The value to coerce (must be a string)\n * @param assert - If provided, throws on failure instead of returning undefined\n * @returns The value as EthAddress, or undefined if coercion fails and assert is not set\n */\nexport function asEthAddress(value: unknown): EthAddress | undefined\nexport function asEthAddress(value: unknown, assert: AssertConfig): EthAddress\nexport function asEthAddress(value: unknown, assert?: AssertConfig): EthAddress | undefined {\n try {\n let stringValue: string | undefined\n\n switch (typeof value) {\n case 'string': {\n stringValue = hexFromHexString(value, { prefix: true, byteSize: 4 })\n break\n }\n default: {\n if (value !== undefined) {\n return assertError(value, assert, `Unsupported type [${typeof value}]`)\n }\n }\n }\n return isEthAddress(stringValue) ? stringValue : assertError(value, assert, `Value is not an EthAddress [${value}]`)\n } catch (ex) {\n const error = ex as Error\n return assertError(undefined, assert, error.message)\n }\n}\n", "import { isHex } from '../hex/index.ts'\nimport type { Hash, HashBitLength } from './hash.ts'\n\n/**\n * Type guard that checks whether a value is a valid hash of the specified bit length.\n * @param value - The value to check\n * @param bitLength - The expected bit length of the hash (defaults to 256)\n * @returns True if the value is a valid Hash\n */\nexport const isHash = (value: unknown, bitLength: HashBitLength = 256): value is Hash => {\n return isHex(value, { bitLength })\n}\n", "import type { AssertConfig } from '#error'\nimport { assertError } from '#error'\nimport { isUndefined } from '#typeof'\n\nimport { hexFromHexString } from '../hex/index.ts'\nimport { type Hash } from './hash.ts'\nimport { isHash } from './is.ts'\n\n/**\n * Attempts to coerce a value into a Hash type, returning undefined or throwing based on the assert config.\n * @param value - The value to coerce (must be a string)\n * @param assert - If provided, throws on failure instead of returning undefined\n * @returns The value as Hash, or undefined if coercion fails and assert is not set\n */\nexport function asHash(value: unknown): Hash | undefined\nexport function asHash(value: unknown, assert: AssertConfig): Hash\nexport function asHash(value: unknown, assert?: AssertConfig): Hash | undefined {\n switch (typeof value) {\n case 'string': {\n const stringValue = hexFromHexString(value)\n return isHash(stringValue) ? stringValue : assertError(value, assert, `Value is not a Hash [${value}]`)\n }\n default: {\n return isUndefined(assert) ? undefined : assertError(value, assert, `Unsupported type [${typeof value}]`)\n }\n }\n}\n", "import * as z from 'zod/mini'\n\nimport type { Brand } from '#typeof'\n\nimport type { Hex } from '../hex/index.ts'\nimport { HexRegExMinMax } from '../HexRegEx.ts'\n\n/** The byte length of a standard hash (32 bytes / 256 bits). */\nexport const HASH_LENGTH = 32 as const\n\n/** Regular expression matching a 32-byte (64 hex character) hash string. */\nexport const HashRegEx = HexRegExMinMax(HASH_LENGTH, HASH_LENGTH)\n\n/** A 256-bit zero hash constant. */\nexport const ZERO_HASH = '0000000000000000000000000000000000000000000000000000000000000000' as Hash\n\n/** Valid bit lengths for hash values. */\nexport type HashBitLength = 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096\n/** Array of all valid hash bit lengths for runtime validation. */\nexport const HashBitLength: HashBitLength[] = [32, 64, 128, 256, 512, 1024, 2048, 4096]\n\n/**\n * Type guard that checks whether a value is a valid hash bit length.\n * @param value - The value to check\n * @returns True if the value is one of the supported HashBitLength values\n */\nexport const isHashBitLength = (value: unknown): value is HashBitLength => {\n return typeof value === 'number' && HashBitLength.includes(value as HashBitLength)\n}\n\n/** Branded type representing a validated hash hex string. */\nexport type BrandedHash = Brand<Hex, { readonly __hash: true }>\n\n/** Zod schema that validates and transforms a string into a branded Hash type. */\nexport const HashZod = z.pipe(\n z.string().check(z.regex(HashRegEx, { error: 'Invalid hex format' })),\n z.transform((val: string) => val as BrandedHash),\n)\n\n/** A validated hash string type, inferred from the HashZod schema. */\nexport type Hash = z.infer<typeof HashZod>\n", "import * as z from 'zod/mini'\n\nimport { asHash } from './as.ts'\nimport type { Hash } from './hash.ts'\nimport { HashZod } from './hash.ts'\n\n/** Zod schema that transforms a Hash to a plain string for JSON serialization. */\nexport const HashToJsonZod = z.pipe(HashZod, z.transform((v: Hash): string => v))\n/** Zod schema that parses a JSON string into a validated Hash, throwing on invalid input. */\nexport const JsonToHashZod = z.pipe(z.string(), z.transform((v: string): Hash => asHash(v, true)))\n", "import { type Hex, hexFromHexString } from './hex/index.ts'\n\n/**\n * Converts a Hex string to a BigInt.\n * @param hex - The hex string to convert\n * @returns The BigInt representation of the hex value\n */\nexport function hexToBigInt(hex: Hex): bigint {\n return BigInt(hexFromHexString(hex, { prefix: true }))\n}\n", "import * as z from 'zod/mini'\n\nimport { toHex } from './hex/index.ts'\nimport { hexToBigInt } from './hexToBigInt.ts'\n\n/** Zod schema that transforms a non-negative BigInt into a hex string for JSON serialization. */\nexport const BigIntToJsonZod = z.pipe(\n z.bigint().check(z.nonnegative()),\n z.transform((x: bigint) => toHex(x)),\n)\n/** Zod schema that parses a JSON hex string into a BigInt. */\nexport const JsonToBigIntZod = z.pipe(\n z.string(),\n z.transform((x: string) => hexToBigInt(toHex(x))),\n)\n", "import { assertEx } from '#assert'\nimport type { Hex } from '#hex'\nimport { toHex } from '#hex'\nimport { isUndefined } from '#typeof'\n\nfunction hexToArrayBuffer(value: Hex): Uint8Array {\n if (value.length % 2 !== 0) {\n throw new Error('Invalid hex value')\n }\n\n const length = value.length / 2\n const result = new Uint8Array(new ArrayBuffer(length))\n\n for (let i = 0; i < length; i++) {\n const byte = value.slice(i * 2, i * 2 + 2)\n result[i] = Number.parseInt(byte, 16)\n }\n\n return result\n}\n\nfunction stringToArrayBuffer(value: string, base = 16): Uint8Array {\n switch (base) {\n case 16: {\n return hexToArrayBuffer(toHex((value.startsWith('0x') ? value.slice(2) : value).toUpperCase()))\n }\n default: {\n throw new Error(`Unsupported base [${base}]`)\n }\n }\n}\n\n/**\n * Converts a string, bigint, or ArrayBufferLike to an ArrayBufferLike, with optional zero-padding.\n * @param value - The value to convert (hex string, bigint, or existing buffer)\n * @param padLength - Minimum byte length, left-padded with zeros if needed\n * @param base - Numeric base for string parsing (default 16)\n * @returns The resulting ArrayBufferLike, or undefined if value is undefined\n */\nexport function toArrayBuffer(value: undefined, padLength?: number, base?: number): undefined\nexport function toArrayBuffer(value: ArrayBufferLike | bigint | string, padLength?: number, base?: number): ArrayBufferLike\nexport function toArrayBuffer(value: ArrayBufferLike | bigint | string | undefined, padLength?: number, base?: number): ArrayBufferLike | undefined\nexport function toArrayBuffer(value?: ArrayBufferLike | bigint | string, padLength = 0, base?: number): ArrayBufferLike | undefined {\n if (isUndefined(value)) return undefined\n\n if (typeof value === 'bigint' && value < 0) {\n throw new Error(`negative bigint values are not supported: ${typeof value}`)\n }\n\n let result: Uint8Array | undefined\n = typeof value === 'string'\n ? stringToArrayBuffer(value, base)\n : typeof value === 'bigint' ? stringToArrayBuffer(value.toString(16)) : (new Uint8Array(value))\n\n if (result === undefined) {\n throw new Error(`toArrayBuffer - Unknown type: ${typeof value}`)\n }\n\n if (result.length < padLength) {\n result = new Uint8Array([...new Uint8Array(padLength - result.length), ...result])\n assertEx(result?.length <= padLength, () => 'Resulting length is greater than padLength')\n }\n\n return result.buffer\n}\n", "import { toArrayBuffer } from './toArrayBuffer.ts'\n\n/**\n * Converts a string, bigint, or ArrayBufferLike to a Uint8Array, with optional zero-padding.\n * @param value - The value to convert\n * @param padLength - Minimum byte length, left-padded with zeros if needed\n * @param base - Numeric base for string parsing (default 16)\n * @returns The resulting Uint8Array, or undefined if value is undefined\n */\nexport function toUint8Array(value: undefined, padLength?: number, base?: number): undefined\nexport function toUint8Array(value: ArrayBufferLike | bigint | string, padLength?: number, base?: number): Uint8Array\nexport function toUint8Array(value: ArrayBufferLike | bigint | string | undefined, padLength?: number, base?: number): Uint8Array | undefined\nexport function toUint8Array(value?: ArrayBufferLike | bigint | string, padLength?: number, base?: number): Uint8Array | undefined {\n const arrayBuffer = toArrayBuffer(value, padLength, base)\n return arrayBuffer ? new Uint8Array(arrayBuffer) : undefined\n}\n", "import type {\n Meter,\n MeterProvider, Tracer, TracerProvider,\n} from '@opentelemetry/api'\n\nimport { assertEx } from '#assert'\nimport type { Logger } from '#logger'\nimport type { EmptyObject } from '#object'\n\ntype TimeoutHandle = object | number\n\ndeclare function setTimeout(handler: (...args: unknown[]) => void, timeout?: number): TimeoutHandle\ndeclare function clearTimeout(timeoutId: TimeoutHandle | undefined): void\n\nconst DEFAULT_HISTORY_INTERVAL = 1000 * 5\nconst DEFAULT_HISTORY_TIME = 60 * 60 * 1000\nconst MAX_GC_FREQUENCY = 1000 * 60\nconst MIN_GC_FREQUENCY = 1000\nconst MIN_HISTORY_INTERVAL = 1000\n\n/** Branded string type representing a class name used for global instance tracking. */\nexport type BaseClassName = string & { __baseClassName: true }\n\n/** Common parameter fields available to all Base instances (logger, meter, tracer). */\nexport interface BaseParamsFields {\n logger?: Logger\n meterProvider?: MeterProvider\n traceProvider?: TracerProvider\n}\n\n/** Parameters for constructing a Base instance, combining BaseParamsFields with optional additional params. */\nexport type BaseParams<TAdditionalParams extends EmptyObject = EmptyObject> = TAdditionalParams & BaseParamsFields\n\n/**\n * Abstract base class providing logging, telemetry, and global instance tracking with WeakRef-based GC.\n * @typeParam TParams - The parameter type, extending BaseParams\n */\nexport abstract class Base<TParams extends BaseParams = BaseParams> {\n static defaultLogger?: Logger\n static readonly globalInstances: Record<BaseClassName, WeakRef<Base>[]> = {}\n static readonly globalInstancesCountHistory: Record<BaseClassName, number[]> = {}\n private static _historyInterval = DEFAULT_HISTORY_INTERVAL\n private static _historyTime = DEFAULT_HISTORY_TIME\n private static _historyTimeout?: TimeoutHandle\n private static _lastGC = 0\n private static _maxGcFrequency = MAX_GC_FREQUENCY\n private _params: BaseParams<TParams>\n\n constructor(params: BaseParams<TParams>) {\n this._params = params\n params?.logger?.debug(`Base constructed [${this.constructor.name}]`)\n this.recordInstance()\n }\n\n static get historyInterval() {\n return this._historyInterval\n }\n\n static set historyInterval(value: number) {\n assertEx(value <= this.historyTime, () => `historyInterval [${value}] must be less than or equal to historyTime [${this.historyTime}]`)\n this._historyInterval = Math.max(value, MIN_HISTORY_INTERVAL)\n }\n\n static get historyTime() {\n return this._historyTime\n }\n\n static set historyTime(value: number) {\n assertEx(value >= this.historyInterval, () => `historyTime [${value}] must be greater than or equal to historyInterval [${this.historyInterval}]`)\n this._historyInterval = value\n }\n\n static get maxGcFrequency() {\n return this._maxGcFrequency\n }\n\n static set maxGcFrequency(value: number) {\n this._maxGcFrequency = Math.max(value, MIN_GC_FREQUENCY)\n }\n\n static get maxHistoryDepth() {\n return Math.floor(this.historyTime / this.historyInterval)\n }\n\n get logger() {\n return this.params?.logger ?? Base.defaultLogger\n }\n\n get meter(): Meter | undefined {\n return this.params?.meterProvider?.getMeter(this.constructor.name)\n }\n\n get params() {\n return this._params\n }\n\n get tracer(): Tracer | undefined {\n return this.params?.traceProvider?.getTracer(this.constructor.name)\n }\n\n static gc(force?: boolean): void\n static gc(className: BaseClassName): void\n static gc(classNameOrForce: BaseClassName | boolean = false): void {\n if (typeof classNameOrForce === 'string') {\n this.gcClass(classNameOrForce)\n } else {\n if (classNameOrForce || Date.now() - this._lastGC > this._maxGcFrequency) {\n this.gcAll()\n }\n }\n }\n\n static instanceCount(className: BaseClassName): number {\n return this.globalInstances[className]?.length ?? 0\n }\n\n static instanceCounts(): Record<BaseClassName, number> {\n this.gc()\n const result: Record<BaseClassName, number> = {}\n for (const [className, instances] of Object.entries(this.globalInstances)) result[className as BaseClassName] = instances.length\n return result\n }\n\n static startHistory(): void {\n if (this._historyTimeout !== undefined) {\n this.stopHistory()\n }\n\n const timeoutHandler = () => {\n if (this._historyTimeout === undefined) {\n return\n }\n\n this.addToHistory()\n this._historyTimeout = setTimeout(timeoutHandler, this.historyInterval)\n }\n\n this._historyTimeout = setTimeout(timeoutHandler, this.historyInterval)\n }\n\n static stopHistory(): void {\n if (this._historyTimeout === undefined) {\n return\n }\n\n clearTimeout(this._historyTimeout)\n this._historyTimeout = undefined\n }\n\n private static addToHistory() {\n const counts = this.instanceCounts()\n for (const className of Object.keys(this.globalInstances) as BaseClassName[]) {\n this.globalInstancesCountHistory[className] = this.globalInstancesCountHistory[className]?.slice(-this.maxHistoryDepth) ?? []\n this.globalInstancesCountHistory[className].push(counts[className])\n }\n }\n\n private static gcAll() {\n for (const className of Object.keys(this.globalInstances) as BaseClassName[]) {\n this.gcClass(className)\n }\n }\n\n private static gcClass(className: BaseClassName) {\n // remove all the weak refs that are now empty\n this.globalInstances[className] = this.globalInstances[className]?.filter(ref => ref.deref() !== null) ?? []\n }\n\n private recordInstance() {\n const baseClassName = this.constructor.name as BaseClassName\n const instanceArray = Base.globalInstances[baseClassName] ?? []\n instanceArray.push(new WeakRef(this))\n Base.globalInstances[baseClassName] = instanceArray\n }\n}\n", "declare global {\n interface ImportMeta {\n url: string\n }\n\n var xylabs: {\n unique: Record<string, unknown>\n uniqueDisabled?: boolean\n }\n}\n\nconst xyoGlobal = () => {\n if (globalThis.xylabs === undefined) {\n Reflect.set(globalThis, 'xylabs', {})\n }\n return globalThis.xylabs\n}\n\n/** Disables global uniqueness checks, allowing duplicate registrations without throwing. */\nexport const disableGloballyUnique = () => {\n xyoGlobal().uniqueDisabled = true\n}\n\n/**\n * Registers a value as globally unique under the given name and domain.\n * Throws if a different value is already registered under the same key.\n * @param name - The unique name or symbol\n * @param value - The value to register\n * @param domain - The namespace domain (default 'global')\n * @returns The fully qualified unique name\n */\nexport const globallyUnique = (name: string | symbol, value: unknown, domain = 'global') => {\n const uniqueName = [domain, ...(domain === 'bundle' ? [name] : [import.meta.url, name])].join(':')\n if (xyoGlobal().uniqueDisabled !== true) {\n const xylabs = xyoGlobal()\n xylabs.unique ??= {}\n const unique = xylabs.unique\n if (unique[uniqueName] === undefined) {\n unique[uniqueName] = value\n } else {\n if (unique[uniqueName] !== value) {\n throw new Error(\n `Global unique item ${uniqueName} already defined. Make sure you are not importing two versions of the package that contains this item`,\n )\n }\n }\n }\n return uniqueName\n}\n", "import { Mutex } from 'async-mutex'\n\nimport { assertEx } from '#assert'\nimport type { EventData } from '#events'\nimport { BaseEmitter } from '#events'\nimport { type Logger } from '#logger'\nimport type { Promisable } from '#promise'\nimport type { SpanConfig } from '#telemetry'\nimport { spanRoot, spanRootAsync } from '#telemetry'\nimport {\n isError, isNumber, isString,\n isUndefined,\n} from '#typeof'\n\nimport {\n type Creatable, creatable, type CreatableFactory,\n} from './Creatable.ts'\nimport { Factory } from './Factory.ts'\nimport { getFunctionName, getRootFunction } from './lib/index.ts'\nimport type {\n CreatableInstance, CreatableName, CreatableParams,\n CreatableStatus,\n Labels,\n RequiredCreatableParams,\n} from './model/index.ts'\n\nconst AbstractCreatableConstructorKey = Symbol.for('AbstractCreatableConstructor')\nconst CREATABLE_NOT_STARTED = 'Creatable not Started' as const\n\n/**\n * Base class for objects that follow an asynchronous creation and lifecycle pattern.\n * Instances must be created via the static `create` method rather than direct construction.\n * Provides start/stop lifecycle management with status tracking and telemetry support.\n */\n@creatable()\nexport class AbstractCreatable<TParams extends CreatableParams = CreatableParams,\n TEventData extends EventData = EventData> extends BaseEmitter<Partial<TParams & RequiredCreatableParams>, TEventData> {\n /** Optional default logger for this instance. */\n defaultLogger?: Logger\n\n protected _startPromise: Promisable<boolean> | undefined\n private _status: CreatableStatus | null = null\n private _statusMutex = new Mutex()\n private _validatedParams?: TParams & RequiredCreatableParams\n\n constructor(key: unknown, params: Partial<TParams & RequiredCreatableParams>) {\n assertEx(key === AbstractCreatableConstructorKey, () => 'AbstractCreatable should not be instantiated directly, use the static create method instead')\n super(params)\n }\n\n /** The name identifier for this creatable instance. */\n get name(): CreatableName {\n return this.params.name!\n }\n\n /** The validated and merged parameters for this instance. */\n override get params(): TParams & RequiredCreatableParams {\n this._validatedParams ??= this.paramsValidator(super.params)\n return this._validatedParams\n }\n\n /** Whether this instance can be started (must be in 'created' or 'stopped' status). */\n get startable() {\n return this.status === 'created' || this.status === 'stopped'\n }\n\n /** The current lifecycle status of this instance, or null if not yet initialized. */\n get status(): CreatableStatus | null {\n return this._status\n }\n\n /** The status reporter used to broadcast lifecycle changes. */\n get statusReporter() {\n return this.params.statusReporter\n }\n\n /**\n * Asynchronously creates a new instance by processing params, constructing,\n * and running both static and instance createHandlers.\n * @param inParams - Optional partial parameters to configure the instance\n * @returns The fully initialized instance\n */\n static async create<T extends CreatableInstance>(\n this: Creatable<T>,\n inParams: Partial<T['params']> = {},\n ): Promise<T> {\n const params = await this.paramsHandler(inParams)\n const name: CreatableName = params.name ?? this.name as CreatableName\n try {\n const [Constructor] = [this]\n const instance = new Constructor(AbstractCreatableConstructorKey, params)\n instance.setStatus('creating')\n const initializedInstance = await this.createHandler(instance)\n await instance.createHandler()\n instance.setStatus('created')\n return initializedInstance\n } catch (ex) {\n params.statusReporter?.report(name, 'error', isError(ex) ? ex : new Error(`Error creating: ${name}`))\n params.logger?.error(`Error creating creatable [${name}]: ${(isError(ex) ? `${ex.message} ${ex.stack}` : String(ex))}`)\n throw isError(ex) ? ex : new Error(`Error creating: ${name}`)\n }\n }\n\n /**\n * Static hook called during creation to perform additional initialization.\n * Override in subclasses to customize post-construction setup.\n * @param instance - The newly constructed instance\n * @returns The instance, potentially modified\n */\n static createHandler<T extends CreatableInstance>(\n this: Creatable<T>,\n instance: T,\n ): Promisable<T> {\n return instance\n }\n\n /**\n * Static hook called during creation to validate and transform params.\n * Override in subclasses to add default values or validation.\n * @param params - The raw partial params provided to `create`\n * @returns The processed params ready for construction\n */\n static paramsHandler<T extends CreatableInstance>(\n this: Creatable<T>,\n params: Partial<T['params']> = {},\n ): Promisable<T['params']> {\n return { ...params }\n }\n\n /** Instance-level creation hook. Override in subclasses to perform setup after construction. */\n createHandler(): Promisable<void> {\n assertEx(this._status === 'creating', () => `createHandler can not be called [status = ${this.status}]`)\n }\n\n /**\n * Validates and returns the merged params, ensuring required fields are present.\n * Override in subclasses to add custom validation logic.\n * @param params - The raw partial params to validate\n * @returns The validated params\n */\n paramsValidator(params: Partial<TParams & RequiredCreatableParams>): TParams & RequiredCreatableParams {\n return { ...params, name: params.name } as TParams & RequiredCreatableParams\n }\n\n /**\n * Executes a function within a telemetry span.\n * @param name - The span name\n * @param fn - The function to execute within the span\n */\n span<T>(name: string, fn: () => T): T {\n return spanRoot(name, fn, this.tracer)\n }\n\n /**\n * Executes an async function within a telemetry span.\n * @param name - The span name\n * @param fn - The async function to execute within the span\n * @param config - Optional span configuration\n */\n async spanAsync<T>(name: string, fn: () => Promise<T>, config: SpanConfig = {}): Promise<T> {\n return await spanRootAsync(name, fn, {\n ...config, tracer: config.tracer ?? this.tracer, logger: config.logger ?? this.defaultLogger,\n })\n }\n\n /**\n * Starts the instance, transitioning through 'starting' to 'started' status.\n * Thread-safe via mutex. Returns true if already started or started successfully.\n */\n async start(): Promise<boolean> {\n this._noOverride('start')\n if (this.status === 'started') {\n return true\n }\n return await this._statusMutex.runExclusive(async () => {\n try {\n // check again in case it changed\n if (this.status === 'started') {\n return true\n }\n assertEx(this.startable, () => `Creatable [${this.name}] is not startable in status [${this.status}]`)\n this.setStatus('starting')\n await this.startHandler()\n this.setStatus('started')\n return true\n } catch (ex) {\n this.setStatus('error', isError(ex) ? ex : new Error(`Error starting: ${String(ex)}`))\n this.logger?.error(`Error starting creatable [${this.name}]: ${(isError(ex) ? `${ex.message} ${ex.stack}` : String(ex))}`)\n return false\n }\n })\n }\n\n /**\n * Checks whether this instance is currently started.\n * Takes an action if not started, based on the notStartedAction parameter.\n * @param notStartedAction - What to do if not started: 'error'/'throw' throws, 'warn'/'log' logs, 'none' is silent\n * @returns True if started, false otherwise\n */\n started(notStartedAction: 'error' | 'throw' | 'warn' | 'log' | 'none' = 'log'): boolean {\n if (isString(this.status) && this.status === 'started') {\n return true\n }\n const message = () => `${CREATABLE_NOT_STARTED} [${this.name}] current state: ${this.status}`\n switch (notStartedAction) {\n case 'error': {\n throw new Error(message())\n }\n case 'throw': {\n throw new Error(message())\n }\n case 'warn': {\n this.logger?.warn(message())\n break\n }\n case 'log': {\n this.logger?.log(message())\n break\n }\n case 'none': {\n break\n }\n default: {\n throw new Error(`Unknown notStartedAction: ${notStartedAction as string}`)\n }\n }\n return false\n }\n\n /**\n * Async version of `started` that can optionally auto-start the instance.\n * @param notStartedAction - What to do if not started and auto-start is disabled\n * @param tryStart - If true, attempts to start the instance automatically\n * @returns True if the instance is or becomes started\n */\n async startedAsync(notStartedAction: 'error' | 'throw' | 'warn' | 'log' | 'none' = 'log', tryStart = true): Promise<boolean> {\n if (isString(this.status) && this.status === 'started') {\n return true\n }\n if (this.status !== null && ['created', 'stopped', 'starting'].includes(this.status)) {\n // using promise as mutex\n this._startPromise ??= (async () => {\n if (tryStart) {\n try {\n return await this.start()\n } finally {\n this._startPromise = undefined\n }\n }\n return this.started(notStartedAction)\n })()\n } else {\n const message = `${CREATABLE_NOT_STARTED} [${this.name}] current state: ${this.status}`\n throw new Error(message)\n }\n\n if (isUndefined(this._startPromise)) {\n throw new Error(`Failed to create start promise: ${this.status}`)\n }\n return await this._startPromise\n }\n\n /**\n * Stops the instance, transitioning through 'stopping' to 'stopped' status.\n * Thread-safe via mutex. Returns true if already stopped or stopped successfully.\n */\n async stop(): Promise<boolean> {\n this._noOverride('stop')\n if (this.status === 'stopped') {\n return true\n }\n return await this._statusMutex.runExclusive(async () => {\n try {\n // check again in case it changed\n if (this.status === 'stopped') {\n return true\n }\n assertEx(this.status === 'started', () => `Creatable [${this.name}] is not stoppable in status [${this.status}]`)\n this.setStatus('stopping')\n await this.stopHandler()\n this.setStatus('stopped')\n return true\n } catch (ex) {\n this.setStatus('error', isError(ex) ? ex : new Error(`Error stopping: ${String(ex)}`))\n return false\n }\n })\n }\n\n /**\n * Asserts that the given function has not been overridden in a subclass.\n * Used to enforce the handler pattern (override `startHandler` not `start`).\n */\n protected _noOverride(functionName = getFunctionName(3)) {\n const thisFunc = (this as Record<string, unknown>)[functionName]\n const rootFunc = getRootFunction(this, functionName)\n assertEx(thisFunc === rootFunc, () => `Override not allowed for [${functionName}] - override ${functionName}Handler instead`)\n }\n\n /** Sets the lifecycle status and reports it via the status reporter. */\n protected setStatus(value: Exclude<CreatableStatus, 'error'>, progress?: number): void\n protected setStatus(value: Extract<CreatableStatus, 'error'>, error?: Error): void\n protected setStatus(value: CreatableStatus, progressOrError?: number | Error): void {\n this._status = value\n if (value !== null) {\n if (value === 'error') {\n if (isError(progressOrError)) {\n this.statusReporter?.report(this.name, value, progressOrError)\n return\n }\n } else {\n if (isNumber(progressOrError)) {\n this.statusReporter?.report(this.name, value, progressOrError)\n return\n }\n }\n this.statusReporter?.report(this.name, value)\n }\n }\n\n /** Override in subclasses to define start behavior. Throw an error on failure. */\n protected startHandler(): Promisable<void> {\n // when overriding this, throw an error on failure\n }\n\n /** Override in subclasses to define stop behavior. Throw an error on failure. */\n protected stopHandler(): Promisable<void> {\n // when overriding this, throw an error on failure\n }\n}\n\n/**\n * Extends AbstractCreatable with a static `factory` method for creating\n * pre-configured CreatableFactory instances.\n */\n@creatable()\nexport class AbstractCreatableWithFactory<TParams extends CreatableParams = CreatableParams,\n TEventData extends EventData = EventData> extends AbstractCreatable<TParams, TEventData> {\n /**\n * Creates a factory that produces instances of this class with pre-configured params and labels.\n * @param params - Default parameters for instances created by the factory\n * @param labels - Labels to assign to created instances\n */\n static factory<T extends CreatableInstance>(\n this: Creatable<T>,\n params?: Partial<T['params']>,\n labels?: Labels,\n ): CreatableFactory<T> {\n return Factory.withParams<T>(this, params, labels)\n }\n}\n", "/**\n * Configuration options for fire-and-forget promises.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface ForgetConfig<T = any> {\n /** Optional name for identifying the forgotten promise in logs. */\n name?: string\n /** Called when the configured timeout elapses before the promise settles. The promise keeps running. */\n onCancel?: () => void\n /** Called when the promise completes, with a tuple of [result, error]. */\n onComplete?: (result: [T | undefined, Error | undefined]) => void\n /** Called when an exception occurs outside the promise itself. */\n onException?: (error: Error) => void\n /**\n * Timeout in milliseconds after which `onCancel` and `timeoutHandler` run.\n * This does not abort the promise; `activeForgets` stays elevated until it settles.\n */\n timeout?: number\n}\n\n/** Default forget configuration with a 30-second timeout. */\nexport const defaultForgetConfig: ForgetConfig<unknown> = { timeout: 30_000 }\n", "import { defaultForgetConfig, type ForgetConfig } from './ForgetConfig.ts'\n\n/**\n * Node.js-specific forget configuration that extends ForgetConfig with process termination options.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface ForgetNodeConfig<T = any> extends ForgetConfig<T> {\n /** Terminate the process on an exception that happens outside of the promise being forgotten. */\n terminateOnException?: boolean\n /** Terminate the process if the promise times out. */\n terminateOnTimeout?: boolean\n}\n\n/** Default Node.js forget configuration with termination disabled. */\nexport const defaultForgetNodeConfig: ForgetNodeConfig<unknown> = {\n ...defaultForgetConfig,\n terminateOnTimeout: false,\n terminateOnException: false,\n}\n", "import { assertEx } from '#assert'\n\ntype TimeoutHandle = object | number\n\ndeclare function setTimeout(handler: () => void, timeout?: number): TimeoutHandle\ndeclare function clearTimeout(timeoutId: TimeoutHandle | undefined): void\n\ninterface TimeoutInfo {\n delay: number\n func: () => void\n id: string\n}\n\n/** Coalesces multiple logical timeouts into a single native timer. */\nexport class TimerScheduler {\n private currentTimeout: TimeoutHandle | undefined\n private interval = -1\n private timeouts: TimeoutInfo[] = []\n\n /**\n * Cancels a timeout previously created with setTimeoutEx.\n * @param id - The timeout ID returned by setTimeoutEx.\n */\n clearTimeoutEx(id: string) {\n this.timeouts = this.timeouts.filter(timeout => timeout.id !== id)\n this.update(this.timeouts)\n }\n\n /** Clears all scheduled timeouts and resets internal state. */\n reset() {\n this.interval = -1\n clearTimeout(this.currentTimeout)\n this.currentTimeout = undefined\n this.timeouts = []\n }\n\n /**\n * Sets a timeout using an optimized internal timer that coalesces multiple timeouts into a single native timer.\n * @param func - The function to call after the delay.\n * @param delay - The delay in milliseconds (must be >= 0).\n * @returns A unique string ID that can be used with clearTimeoutEx to cancel the timeout.\n */\n setTimeoutEx(func: () => void, delay: number) {\n assertEx(delay >= 0, () => 'delay must be >= 0')\n const id = `${Date.now()}|${Math.random() * 9_999_999_999}`\n this.timeouts.push({\n delay, func, id,\n })\n this.update()\n return id\n }\n\n private timerFunc() {\n const notFiring = this.timeouts.filter(timeout => timeout.delay > this.interval)\n const firing = this.timeouts.filter(timeout => timeout.delay <= this.interval)\n\n this.update(notFiring, this.interval)\n\n for (const timeout of firing) {\n timeout.func()\n }\n }\n\n private update(newTimeouts = this.timeouts, delayPassed = 0) {\n if (newTimeouts.length === 0) {\n this.reset()\n } else {\n const newInterval = Math.min(...newTimeouts.map(timeout => timeout.delay))\n\n if (newInterval === this.interval && this.currentTimeout !== undefined) {\n return\n }\n clearTimeout(this.currentTimeout)\n this.timeouts = newTimeouts.map(timeout => ({\n delay: timeout.delay - delayPassed, func: timeout.func, id: timeout.id,\n }))\n this.interval = newInterval\n this.currentTimeout = setTimeout(() => this.timerFunc(), this.interval)\n }\n }\n}\n\n/** Default scheduler used by the module-level timeout helpers. */\nexport const defaultTimerScheduler = new TimerScheduler()\n\n/**\n * Sets a timeout using an optimized internal timer that coalesces multiple timeouts into a single native timer.\n * @param func - The function to call after the delay.\n * @param delay - The delay in milliseconds (must be >= 0).\n * @returns A unique string ID that can be used with clearTimeoutEx to cancel the timeout.\n */\nexport const setTimeoutEx = (func: () => void, delay: number) => defaultTimerScheduler.setTimeoutEx(func, delay)\n\n/**\n * Cancels a timeout previously created with setTimeoutEx.\n * @param id - The timeout ID returned by setTimeoutEx.\n */\nexport const clearTimeoutEx = (id: string) => defaultTimerScheduler.clearTimeoutEx(id)\n", "import { setTimeoutEx } from '#timer'\n\n/**\n * Returns a promise that resolves after the specified number of milliseconds.\n * @param ms - The number of milliseconds to delay.\n * @returns A promise that resolves after the delay.\n */\nexport const delay = (ms: number) => {\n return new Promise<void>(resolve => setTimeoutEx(() => resolve(), ms))\n}\n", "/// <reference path=\"./types/global-config.d.ts\" />\n\nimport { delay } from '#delay'\nimport type { Logger } from '#logger'\nimport type { Promisable, PromiseEx } from '#promise'\nimport { isNumber, isPromise } from '#typeof'\n\nimport { defaultForgetConfig, type ForgetConfig } from './ForgetConfig.ts'\n\n/** A function that returns a promisable value. */\ntype PromisableFunction<T> = () => Promisable<T>\n\n/**\n * Manages fire-and-forget promises with tracking, timeouts, and error handling.\n *\n * Timeouts are observability hooks only: they invoke `onCancel` and `timeoutHandler` but do not\n * abort or await-cleanup the underlying promise. `activeForgets` therefore counts promises that\n * are still running (unsettled), not promises still inside their configured timeout window.\n */\n// eslint-disable-next-line unicorn/no-static-only-class\nexport class ForgetPromise {\n /**\n * Number of forgotten promises still running (not yet settled).\n * Decremented only when the underlying promise fulfills or rejects \u2014 not when a timeout fires.\n */\n static activeForgets = 0\n /** Number of forgotten promises that threw exceptions. */\n static exceptedForgets = 0\n /** Logger instance used for error and warning output. */\n static logger: Logger = console\n\n /** Whether any forgotten promises are still running, including any that have exceeded their timeout. */\n static get active() {\n return this.activeForgets > 0\n }\n\n /**\n * Waits until all forgotten promises have settled.\n * @param interval - Polling interval in milliseconds.\n * @param timeout - Optional maximum wait time in milliseconds.\n * @returns `0` when every forgotten promise has settled; otherwise the number still running.\n * A non-zero return after `timeout` elapses can include promises whose timeout callback already\n * ran but whose work is still in flight.\n */\n static async awaitInactive(interval = 100, timeout?: number) {\n let timeoutRemaining = timeout\n while (this.active) {\n await delay(interval)\n if (timeoutRemaining !== undefined) {\n timeoutRemaining -= interval\n if (timeoutRemaining <= 0) {\n return this.activeForgets\n }\n }\n }\n return 0\n }\n\n /** Handles exceptions from forgotten promises by logging error details. */\n static exceptionHandler(error: Error, { name }: ForgetConfig, externalStackTrace?: string) {\n this.logger.error(`forget promise handler excepted [${name}]: ${error.message}`, error)\n if (externalStackTrace !== undefined) {\n this.logger.warn(`External Stack trace [${name}]:`, externalStackTrace)\n }\n }\n\n /**\n * Used to explicitly launch an async function (or Promise) with awaiting it\n * @param promise The promise to forget\n * @param config Configuration of forget settings\n */\n static forget<T>(promise: Promise<T> | PromiseEx<T> | PromisableFunction<T> | T, config?: ForgetConfig<T>) {\n const stackError = new Error('Stack')\n const externalStackTrace = stackError.stack\n\n // default | global | provided priorities for config (not deep merge)\n const resolvedConfig = {\n ...defaultForgetConfig, ...globalThis.xy?.forget?.config, ...config,\n }\n const resolvedPromise = typeof promise === 'function' ? (promise as PromisableFunction<T>)() : promise\n if (isPromise(resolvedPromise)) {\n try {\n let isCompleted = false\n this.activeForgets++\n\n const promiseWrapper = async () => {\n try {\n const result = await resolvedPromise\n this.activeForgets--\n isCompleted = true\n resolvedConfig?.onComplete?.([result, undefined])\n } catch (error: unknown) {\n const caughtError = error instanceof Error ? error : new Error(String(error))\n this.activeForgets--\n isCompleted = true\n this.logger.error(`forgotten promise excepted [${config?.name ?? 'unknown'}]: ${caughtError.message}`, caughtError)\n resolvedConfig?.onComplete?.([undefined, caughtError])\n }\n }\n\n const promises = [promiseWrapper()]\n\n // Timeout races for notification only; it does not stop the underlying promise or\n // decrement activeForgets \u2014 callers use activeForgets to see how much work is still running.\n const timeout = resolvedConfig.timeout ?? defaultForgetConfig.timeout\n if (isNumber(timeout)) {\n const timeoutFunc = async () => {\n await delay(timeout)\n if (!isCompleted) {\n resolvedConfig.onCancel?.()\n this.timeoutHandler(timeout, resolvedConfig, externalStackTrace)\n }\n }\n promises.push(timeoutFunc())\n }\n\n const race = Promise.race(promises)\n\n void race.catch(() => {\n // Swallow race errors; forget is fire-and-forget.\n })\n } catch (ex) {\n this.exceptedForgets += 1\n resolvedConfig?.onException?.(ex as Error)\n this.exceptionHandler(ex as Error, resolvedConfig, externalStackTrace)\n }\n } else {\n // we do nothing here since if it was a non-promise, it already got invoked.\n return\n }\n }\n\n /**\n * Handles timeout events for forgotten promises by logging timeout details.\n * Does not terminate the underlying promise; it may continue running after this is called.\n */\n static timeoutHandler(time: number, { name = 'unknown' }: ForgetConfig, externalStackTrace?: string) {\n this.logger.error(`forget promise timed out after ${time}ms [still running] [${name}]`)\n if (externalStackTrace !== undefined) {\n this.logger.warn(`External Stack trace [${name}]:`, externalStackTrace)\n }\n }\n}\n", "/// <reference types=\"node\" />\n/// <reference path=\"./types/global-config-node.d.ts\" />\n\nimport type { Promisable } from '#promise'\n\nimport { defaultForgetNodeConfig, type ForgetNodeConfig } from './ForgetNodeConfig.ts'\nimport { ForgetPromise } from './ForgetPromise.ts'\n\n/**\n * Node.js extension of ForgetPromise that can terminate the process on exceptions or timeouts.\n */\nexport class ForgetPromiseNode extends ForgetPromise {\n /** Handles exceptions, optionally terminating the process based on config. */\n static override exceptionHandler(error: Error, config: ForgetNodeConfig, externalStackTrace?: string) {\n // default | global | provided priorities for config (not deep merge)\n super.exceptionHandler(error, config, externalStackTrace)\n if (config?.terminateOnException === true) {\n this.logger.error(`Attempting to terminate process [${config?.name ?? 'unknown'}]...`)\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(1)\n }\n }\n\n /** Forgets a promise using Node.js-specific configuration with process termination support. */\n static override forget<T>(promise: Promisable<T>, config?: ForgetNodeConfig<T>) {\n const resolvedConfig = {\n ...defaultForgetNodeConfig, ...globalThis.xy?.forget?.config, ...config,\n }\n super.forget(promise, resolvedConfig)\n }\n\n /** Handles timeouts, optionally terminating the process based on config. */\n static override timeoutHandler(time: number, config: ForgetNodeConfig, externalStackTrace?: string) {\n super.timeoutHandler(time, config, externalStackTrace)\n if (config?.terminateOnTimeout === true) {\n this.logger.error(`Attempting to terminate process [${config?.name ?? 'unknown'}]...`)\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(2)\n }\n }\n}\n", "import { type Promisable } from '#promise'\n\nimport type { ForgetNodeConfig } from './ForgetNodeConfig.ts'\nimport { ForgetPromiseNode } from './ForgetPromiseNode.ts'\n\n/**\n * Node.js variant of forget that can optionally terminate the process on exceptions or timeouts.\n * @param promise - The promise or promisable value to forget.\n * @param config - Optional Node.js-specific configuration including process termination options.\n */\nexport const forgetNode = <T>(promise: Promisable<T>, config?: ForgetNodeConfig<T>) => {\n ForgetPromiseNode.forget<T>(promise, config)\n}\n", "import { assertEx } from '#assert'\nimport type { BaseParams } from '#base'\nimport { Base } from '#base'\nimport { handleError } from '#error'\nimport { forget } from '#forget'\nimport { isDefined } from '#typeof'\n\nimport type {\n EventAnyListener, EventArgs, EventData, EventEmitter, EventListener, EventName,\n} from '../model/index.ts'\n\n/**\nEmittery can collect and log debug information.\n\nTo enable this feature set the `DEBUG` environment variable to `emittery` or `*`. Additionally, you can set the static `isDebugEnabled` variable to true\non the Emittery class, or `myEmitter.debug.enabled` on an instance of it for debugging a single instance.\n\nSee API for more information on how debugging works.\n*/\nexport type DebugLogger = (type: string, debugName: string, eventName?: EventName, eventData?: EventArgs) => void\n\n/** Information about a registered event listener, including an optional filter for selective invocation. */\nexport interface EventListenerInfo<TEventArgs extends EventArgs = EventArgs> {\n filter?: TEventArgs\n listener: EventListener<TEventArgs>\n}\n\nconst NO_META_EVENT_ERROR_MESSAGE = '`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`'\n\ninterface ProcessGlobal {\n process?: {\n env?: {\n DEBUG?: string\n }\n }\n}\n\nconst processGlobal = globalThis as ProcessGlobal\n\n/**\nConfigure debug options of an instance.\n*/\n/* v8 ignore next 5 */\nexport interface DebugOptions {\n enabled?: boolean\n logger?: DebugLogger\n readonly name: string\n}\n\nconst resolvedPromise = Promise.resolve()\n\n/** Data shape for internal meta events that fire when listeners are added or removed. */\nexport interface MetaEventData<TEventData extends EventData> {\n listenerAdded: {\n eventName?: keyof TEventData\n listener: EventListener<TEventData[keyof TEventData]> | EventAnyListener<TEventData[keyof TEventData]>\n }\n listenerRemoved: {\n eventName?: keyof TEventData\n listener: EventListener<TEventData[keyof TEventData]> | EventAnyListener<TEventData[keyof TEventData]>\n }\n}\n\nconst isMetaEvent = (eventName: EventName) => eventName === 'listenerAdded' || eventName === 'listenerRemoved'\n\n/** Parameters for constructing an Events instance, with optional debug configuration. */\nexport type EventsParams = BaseParams<{ readonly debug?: DebugOptions }>\n\n/**\n * Core typed event emitter implementation supporting named events, wildcard listeners,\n * serial and concurrent emission, listener filtering, and debug logging.\n */\nexport class Events<TEventData extends EventData = EventData> extends Base<EventsParams> implements EventEmitter<TEventData> {\n protected static anyMap = new WeakMap<object, Set<EventAnyListener>>()\n protected static eventsMap = new WeakMap<object, Map<EventName, Set<EventListenerInfo>>>()\n\n private static isGlobalDebugEnabled = false\n\n // this is here to be able to query the type, not use\n eventData = {} as TEventData\n\n private _canEmitMetaEvents = false\n\n constructor(params: EventsParams = {}) {\n const mutatedParams = { ...params }\n if (mutatedParams.debug) {\n mutatedParams.debug.logger\n ??= (type: string, debugName: string, eventName?: EventName, eventData?: EventArgs) => {\n let eventDataString: string\n try {\n eventDataString = JSON.stringify(eventData)\n } catch {\n eventDataString = `Object with the following keys failed to stringify: ${Object.keys(eventData ?? {}).join(',')}`\n }\n\n const eventNameString = typeof eventName === 'symbol' || typeof eventName === 'number' ? eventName.toString() : eventName\n\n const currentTime = new Date()\n const logTime = `${currentTime.getHours()}:${currentTime.getMinutes()}:${currentTime.getSeconds()}.${currentTime.getMilliseconds()}`\n this.logger?.log(`[${logTime}][events:${type}][${debugName}] Event Name: ${eventNameString}\\n\\tdata: ${eventDataString}`)\n }\n }\n super(mutatedParams)\n Events.anyMap.set(this, new Set<EventAnyListener>())\n Events.eventsMap.set(this, new Map<keyof TEventData, Set<EventListenerInfo>>())\n }\n\n /** Whether debug mode is enabled globally or via the DEBUG environment variable. */\n static get isDebugEnabled() {\n // In a browser environment, `globalThis.process` can potentially reference a DOM Element with a `#process` ID,\n // so instead of just type checking `globalThis.process`, we need to make sure that `globalThis.process.env` exists.\n\n if (typeof processGlobal.process?.env !== 'object') {\n return this.isGlobalDebugEnabled\n }\n\n const env = processGlobal.process?.env\n return env?.DEBUG === 'events' || env?.DEBUG === '*' || this.isGlobalDebugEnabled\n }\n\n static set isDebugEnabled(newValue) {\n this.isGlobalDebugEnabled = newValue\n }\n\n /** The debug configuration for this instance, if provided. */\n get debug() {\n return this.params.debug\n }\n\n /**\n * Removes all listeners for the specified event name(s).\n * @param eventNames - One or more event names to clear listeners for.\n */\n clearListeners(eventNames: keyof TEventData | (keyof TEventData)[]) {\n const eventNamesArray = Array.isArray(eventNames) ? eventNames : [eventNames]\n\n for (const eventName of eventNamesArray) {\n this.logIfDebugEnabled('clear', eventName)\n\n if (typeof eventName === 'string' || typeof eventName === 'symbol' || typeof eventName === 'number') {\n const set = this.getListeners(eventName)\n if (set) {\n set.clear()\n }\n } else {\n Events.anyMap.get(this)?.clear()\n\n const eventEntries = assertEx(Events.eventsMap.get(this))\n for (const [eventName, listeners] of eventEntries) {\n listeners.clear()\n Events.eventsMap.get(this)?.delete(eventName)\n }\n }\n }\n }\n\n /**\n * Emits an event, invoking all registered listeners concurrently.\n * @param eventName - The event to emit.\n * @param eventArgs - The data to pass to listeners.\n */\n async emit<TEventName extends keyof TEventData>(eventName: TEventName, eventArgs: TEventData[TEventName]) {\n return await this.emitInternal(eventName, eventArgs)\n }\n\n /**\n * Emits an internal meta event (listenerAdded or listenerRemoved).\n * @param eventName - The meta event name.\n * @param eventArgs - The meta event data containing listener and event information.\n * @returns True if the meta event was emitted successfully.\n */\n async emitMetaEvent<TEventName extends keyof MetaEventData<TEventData>>(eventName: TEventName, eventArgs: MetaEventData<TEventData>[TEventName]) {\n if (isMetaEvent(eventName)) {\n try {\n this._canEmitMetaEvents = true\n await this.emitMetaEventInternal(eventName, eventArgs)\n return true\n } finally {\n this._canEmitMetaEvents = false\n }\n }\n }\n\n /**\n * Emits an event, invoking all registered listeners sequentially in order.\n * @param eventName - The event to emit.\n * @param eventArgs - The data to pass to listeners.\n */\n async emitSerial<TEventName extends keyof TEventData>(eventName: TEventName, eventArgs: TEventData[TEventName]) {\n if (isMetaEvent(eventName) && !this._canEmitMetaEvents) {\n throw new TypeError(NO_META_EVENT_ERROR_MESSAGE)\n }\n\n const filterMatch = (args: TEventData[TEventName], filter: TEventData[TEventName]) => {\n switch (typeof filter) {\n case 'object': {\n if (filter === null || args === null || typeof args !== 'object') return args === filter\n // eslint-disable-next-line unicorn/no-array-reduce\n return Object.entries(args as Record<string, unknown>).reduce((prev, [key, value]) => ((filter as Record<PropertyKey, unknown>)[key] === value ? true : prev), false)\n }\n default: {\n return args === filter\n }\n }\n }\n\n this.logIfDebugEnabled('emitSerial', eventName, eventArgs)\n\n const listeners = this.getListeners(eventName) ?? new Set()\n const filteredListeners = [...listeners]\n .filter(value => (isDefined(value.filter) ? filterMatch(eventArgs, value.filter as TEventData[TEventName]) : true))\n .map(info => info.listener)\n const anyListeners = assertEx(Events.anyMap.get(this))\n const staticListeners = [...filteredListeners]\n const staticAnyListeners = [...anyListeners]\n\n await resolvedPromise\n\n for (const listener of staticListeners) {\n await this.safeCallListener(eventName, eventArgs, listener)\n }\n\n for (const listener of staticAnyListeners) {\n await this.safeCallAnyListener(eventName, eventArgs, listener)\n }\n }\n\n /**\n * Returns the total number of listeners registered for the specified event name(s).\n * @param eventNames - One or more event names to count listeners for.\n * @returns The total listener count.\n */\n // TODO: Make test for this\n listenerCount(eventNames?: keyof TEventData | (keyof TEventData)[]) {\n const eventNamesArray = Array.isArray(eventNames) ? eventNames : [eventNames]\n let count = 0\n\n for (const eventName of eventNamesArray) {\n if (typeof eventName === 'string') {\n count += assertEx(Events.anyMap.get(this)).size + (this.getListeners(eventName)?.size ?? 0)\n\n continue\n }\n\n count += assertEx(Events.anyMap.get(this)).size\n\n const eventListeners = assertEx(Events.eventsMap.get(this)).values()\n for (const value of eventListeners) {\n count += value.size\n }\n }\n\n return count\n }\n\n /**\n * Logs debug information if debug mode is enabled.\n * @param type - The type of operation being logged.\n * @param eventName - The event name, if applicable.\n * @param eventArgs - The event data, if applicable.\n */\n logIfDebugEnabled<TEventName extends EventName>(type: string, eventName?: TEventName, eventArgs?: EventArgs) {\n if (Events.isDebugEnabled || this.debug?.enabled === true) {\n this.debug?.logger?.(type, this.debug.name, eventName, eventArgs)\n }\n }\n\n /**\n * Removes a specific listener from the specified event name(s).\n * @param eventNames - One or more event names to unsubscribe from.\n * @param listener - The listener to remove.\n */\n off<TEventName extends keyof TEventData, TEventListener = EventListener<TEventData[TEventName]>>(\n eventNames: TEventName | TEventName[],\n listener: TEventListener,\n ) {\n const eventNamesArray = Array.isArray(eventNames) ? eventNames : [eventNames]\n for (const eventName of eventNamesArray) {\n const set = this.getListeners(eventName) as Set<TEventListener> | undefined\n if (set) {\n set.delete(listener)\n if (set.size === 0) {\n const events = Events.eventsMap.get(this)\n events?.delete(eventName)\n }\n }\n\n this.logIfDebugEnabled('unsubscribe', eventName)\n\n /* v8 ignore next 3 -- meta events don't reach this path via public API */\n if (!isMetaEvent(eventName)) {\n forget(this.emitMetaEvent('listenerRemoved', { eventName, listener: listener as EventListener }))\n }\n }\n }\n\n /**\n * Removes a wildcard listener that was receiving all events.\n * @param listener - The wildcard listener to remove.\n */\n offAny(listener: EventAnyListener) {\n this.logIfDebugEnabled('unsubscribeAny')\n\n const typedMap = Events.anyMap.get(this) as Set<EventAnyListener<TEventData[keyof TEventData]>>\n typedMap?.delete(listener)\n forget(this.emitMetaEvent('listenerRemoved', { listener: listener }))\n }\n\n /**\n * Subscribes a listener to the specified event name(s).\n * @param eventNames - One or more event names to listen for.\n * @param listener - The callback to invoke when the event fires.\n * @param filter - Optional filter to selectively invoke the listener based on event data.\n * @returns An unsubscribe function.\n */\n on<TEventName extends keyof TEventData = keyof TEventData>(\n eventNames: TEventName | TEventName[],\n listener: EventListener<TEventData[TEventName]>,\n filter?: TEventData[TEventName],\n ) {\n const eventNamesArray = Array.isArray(eventNames) ? eventNames : [eventNames]\n for (const eventName of eventNamesArray) {\n let set = this.getListeners(eventName)\n if (!set) {\n set = new Set()\n const events = Events.eventsMap.get(this)\n events?.set(eventName, set)\n }\n\n set.add({ filter, listener: listener as EventListener })\n\n this.logIfDebugEnabled('subscribe', eventName)\n\n if (!isMetaEvent(eventName)) {\n forget(this.emitMetaEvent('listenerAdded', { eventName, listener: listener as EventListener }))\n }\n }\n\n return this.off.bind(this, eventNames, listener as EventListener)\n }\n\n /**\n * Subscribes a wildcard listener that receives all events.\n * @param listener - The callback to invoke for any event.\n * @returns An unsubscribe function.\n */\n onAny(listener: EventAnyListener) {\n this.logIfDebugEnabled('subscribeAny')\n\n Events.anyMap.get(this)?.add(listener)\n forget(this.emitMetaEvent('listenerAdded', { listener: listener }))\n return this.offAny.bind(this, listener)\n }\n\n /**\n * Subscribes a listener that will be invoked only once for the specified event, then automatically removed.\n * @param eventName - The event to listen for.\n * @param listener - The callback to invoke once.\n * @returns An unsubscribe function.\n */\n once<TEventName extends keyof TEventData>(eventName: TEventName, listener: EventListener<TEventData[TEventName]>) {\n const subListener = async (args: TEventData[TEventName]) => {\n this.off(eventName, subListener)\n await this.safeCallListener(eventName, args, listener)\n }\n this.on(eventName, subListener)\n return this.off.bind(this, eventName, subListener as EventListener)\n }\n\n private async emitInternal<TEventName extends keyof TEventData, TEventArgs extends TEventData[TEventName]>(\n eventName: TEventName,\n eventArgs: TEventArgs,\n filter?: TEventArgs,\n ) {\n if (isMetaEvent(eventName) && !this._canEmitMetaEvents) {\n throw new TypeError(NO_META_EVENT_ERROR_MESSAGE)\n }\n\n this.logIfDebugEnabled('emit', eventName, eventArgs)\n\n const listeners = this.getListeners(eventName) ?? new Set()\n /* v8 ignore start -- filter parameter is reserved for future use; anyListeners.has is a race condition guard */\n const filteredListeners = [...listeners].filter(value => (isDefined(filter) ? isDefined(value.listener) : true)).map(info => info.listener)\n const anyListeners = assertEx(Events.anyMap.get(this))\n const staticListeners = [...filteredListeners]\n const staticAnyListeners = isMetaEvent(eventName) ? [] : [...anyListeners]\n\n await resolvedPromise\n await Promise.all([\n ...staticListeners.map(async (listener) => {\n await this.safeCallListener(eventName, eventArgs, listener)\n }),\n ...staticAnyListeners.map(async (listener) => {\n if (anyListeners.has(listener)) {\n await this.safeCallAnyListener(eventName, eventArgs, listener)\n }\n }),\n ])\n /* v8 ignore stop */\n }\n\n private async emitMetaEventInternal<TEventName extends keyof MetaEventData<TEventData>>(\n eventName: TEventName,\n eventArgs: MetaEventData<TEventData>[TEventName],\n ) {\n if (isMetaEvent(eventName) && !this._canEmitMetaEvents) {\n throw new TypeError('`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`')\n }\n\n this.logIfDebugEnabled('emit', eventName, eventArgs)\n\n const listeners = this.getListeners(eventName) ?? new Set()\n const filteredListeners = [...listeners].map(info => info.listener)\n const anyListeners = assertEx(Events.anyMap.get(this))\n const staticListeners = [...filteredListeners]\n const staticAnyListeners = isMetaEvent(eventName) ? [] : [...anyListeners]\n\n await resolvedPromise\n await Promise.all([\n ...staticListeners.map(async (listener) => {\n await this.safeCallListener(eventName, eventArgs, listener)\n }),\n /* v8 ignore start -- race condition guard */\n ...staticAnyListeners.map(async (listener) => {\n if (anyListeners.has(listener)) {\n await this.safeCallAnyListener(eventName, eventArgs, listener)\n }\n }),\n /* v8 ignore stop */\n ])\n return true\n }\n\n private getListeners(eventName: EventName) {\n const events = assertEx(Events.eventsMap.get(this))\n if (!events.has(eventName)) {\n return\n }\n\n return events.get(eventName)\n }\n\n private async safeCallAnyListener<TEventArgs extends EventArgs>(\n eventName: EventName,\n eventArgs: TEventArgs,\n listener: EventAnyListener<TEventArgs>,\n ) {\n try {\n return await listener(eventName, eventArgs)\n } catch (ex) {\n handleError(ex, (error) => {\n this.logger?.error(`Listener[${String(eventName)}] Excepted: ${error.message}`)\n })\n }\n }\n\n private async safeCallListener<TEventArgs extends EventArgs>(\n eventName: EventName,\n eventArgs: TEventArgs,\n listener: EventListener<TEventArgs>,\n ) {\n try {\n return await listener(eventArgs)\n } catch (ex) {\n handleError(ex, (error) => {\n this.logger?.error(`Listener[${String(eventName)}] Excepted: ${error.message}`)\n })\n }\n }\n}\n", "import type { BaseParams } from '#base'\nimport { Base } from '#base'\nimport type { EmptyObject } from '#object'\n\nimport { Events } from './Events/index.ts'\nimport type {\n EventAnyListener, EventData, EventEmitter,\n EventListener,\n} from './model/index.ts'\n\n/** Fields specific to BaseEmitter configuration parameters. */\nexport interface BaseEmitterParamsFields {}\n\n/** Parameters type for configuring a BaseEmitter instance. */\nexport type BaseEmitterParams<T extends EmptyObject = EmptyObject> = BaseParams<T & BaseEmitterParamsFields>\n\n/**\n * Base class that combines the Base utility class with typed event emission capabilities.\n * Delegates all event operations to an internal Events instance.\n */\nexport class BaseEmitter<TParams extends BaseParams = BaseParams, TEventData extends EventData = EventData>\n extends Base<TParams> implements EventEmitter<TEventData> {\n // just here to query types\n eventData = {} as TEventData\n\n private events: Events<TEventData>\n\n constructor(params: BaseParams<TParams>) {\n super(params)\n this.events = new Events<TEventData>()\n }\n\n /**\n * Removes all listeners for the specified event name(s).\n * @param eventNames - One or more event names to clear listeners for.\n * @returns This instance for chaining.\n */\n clearListeners(eventNames: keyof TEventData | (keyof TEventData)[]) {\n this.events.clearListeners(eventNames)\n return this\n }\n\n /**\n * Emits an event, invoking all registered listeners concurrently.\n * @param eventName - The event to emit.\n * @param eventArgs - The data to pass to listeners.\n */\n emit<TEventName extends keyof TEventData = keyof TEventData, TEventArgs extends TEventData[TEventName] = TEventData[TEventName]>(\n eventName: TEventName,\n eventArgs: TEventArgs,\n ) {\n return this.events.emit(eventName, eventArgs)\n }\n\n /**\n * Emits an event, invoking all registered listeners sequentially in order.\n * @param eventName - The event to emit.\n * @param eventArgs - The data to pass to listeners.\n */\n emitSerial<TEventName extends keyof TEventData = keyof TEventData, TEventArgs extends TEventData[TEventName] = TEventData[TEventName]>(\n eventName: TEventName,\n eventArgs: TEventArgs,\n ) {\n return this.events.emitSerial(eventName, eventArgs)\n }\n\n /**\n * Returns the total number of listeners registered for the specified event name(s).\n * @param eventNames - One or more event names to count listeners for.\n * @returns The total listener count.\n */\n listenerCount(eventNames: keyof TEventData | (keyof TEventData)[]) {\n return this.events.listenerCount(eventNames)\n }\n\n /**\n * Removes a specific listener from the specified event name(s).\n * @param eventNames - One or more event names to unsubscribe from.\n * @param listener - The listener to remove.\n */\n off<TEventName extends keyof TEventData>(eventNames: TEventName | TEventName[], listener: EventListener<TEventData[TEventName]>) {\n return this.events.off(eventNames, listener)\n }\n\n /**\n * Removes a wildcard listener that was receiving all events.\n * @param listener - The wildcard listener to remove.\n */\n offAny(listener: EventAnyListener) {\n return this.events.offAny(listener)\n }\n\n /**\n * Subscribes a listener to the specified event name(s).\n * @param eventNames - One or more event names to listen for.\n * @param listener - The callback to invoke when the event fires.\n * @returns An unsubscribe function.\n */\n on<TEventName extends keyof TEventData>(eventNames: TEventName | TEventName[], listener: EventListener<TEventData[TEventName]>) {\n return this.events.on(eventNames, listener)\n }\n\n /**\n * Subscribes a wildcard listener that receives all events.\n * @param listener - The callback to invoke for any event.\n * @returns An unsubscribe function.\n */\n onAny(listener: EventAnyListener) {\n return this.events.onAny(listener)\n }\n\n /**\n * Subscribes a listener that will be invoked only once for the specified event, then automatically removed.\n * @param eventName - The event to listen for.\n * @param listener - The callback to invoke once.\n * @returns An unsubscribe function.\n */\n once<TEventName extends keyof TEventData>(eventName: TEventName, listener: EventListener<TEventData[TEventName]>) {\n return this.events.once(eventName, listener)\n }\n}\n", "import type {\n Context,\n Tracer,\n TracerProvider,\n} from '@opentelemetry/api'\nimport {\n context, propagation, ROOT_CONTEXT, SpanStatusCode, trace as TRACE_API,\n} from '@opentelemetry/api'\n\nimport type { Logger } from '#logger'\nimport { isDefined } from '#typeof'\n\nimport { timeBudget } from './timeBudget.ts'\n\ndeclare const console: Logger\n\n/** Configuration options for span creation and execution. */\nexport interface SpanConfig {\n /** Optional logger for time budget warnings. Falls back to console if not provided. */\n logger?: Logger | null\n /** Maximum allowed execution time in milliseconds before logging a warning. */\n timeBudgetLimit?: number\n /** OpenTelemetry tracer to use. Defaults to a tracer named after the span. */\n tracer?: Tracer\n}\n\n/**\n * Creates a new OpenTelemetry context that preserves baggage and custom keys but has no active span.\n * @param activeCtx - The context to clone from.\n * @param configKeys - Additional context keys to copy.\n * @returns A new context with baggage but no parent span.\n */\nexport function cloneContextWithoutSpan(activeCtx: Context, configKeys: symbol[] = []): Context {\n // Start from root to ensure no span is propagated\n let newCtx = ROOT_CONTEXT\n\n // Copy baggage\n const baggage = propagation.getBaggage(activeCtx)\n if (baggage) {\n newCtx = propagation.setBaggage(newCtx, baggage)\n }\n\n // Copy custom config keys\n for (const key of configKeys) {\n const value = activeCtx.getValue(key)\n if (value !== undefined) {\n newCtx = newCtx.setValue(key, value)\n }\n }\n\n return newCtx\n}\n\n/**\n * Executes a synchronous function within an OpenTelemetry span, recording status and exceptions.\n * @param name - The span name.\n * @param fn - The function to execute.\n * @param tracer - Optional tracer to use.\n * @returns The return value of `fn`.\n */\nexport function span<T>(name: string, fn: () => T, traceProvider: TracerProvider = TRACE_API): T {\n const activeTracer = traceProvider.getTracer(name)\n if (isDefined(activeTracer)) {\n const span = activeTracer.startSpan(name)\n return context.with(TRACE_API.setSpan(context.active(), span), () => {\n try {\n const result = fn()\n span.setStatus({ code: SpanStatusCode.OK })\n return result\n } catch (ex) {\n const error = ex as Error\n span.recordException(error)\n span.setStatus({ code: SpanStatusCode.ERROR, message: error.message })\n throw ex\n } finally {\n span.end()\n }\n })\n }\n return fn()\n}\n\n/**\n * Executes a synchronous function within a new root span that has no parent, even if a span is already active.\n * @param name - The span name.\n * @param fn - The function to execute.\n * @param tracer - Optional tracer to use.\n * @returns The return value of `fn`.\n */\nexport function spanRoot<T>(name: string, fn: () => T, tracer?: Tracer): T {\n const activeTracer = tracer ?? TRACE_API.getTracer(name)\n if (isDefined(activeTracer)) {\n // Get current active context for configuration\n const activeContext = context.active()\n\n // Create a new context with no active span\n const noSpanContext = cloneContextWithoutSpan(activeContext)\n\n // Create a new span in the context without an active span\n const span = activeTracer.startSpan(name, {}, noSpanContext)\n\n // Use the active context but replace its span with our new root span\n return context.with(TRACE_API.setSpan(noSpanContext, span), () => {\n try {\n const result = fn()\n span.setStatus({ code: SpanStatusCode.OK })\n return result\n } catch (ex) {\n const error = ex as Error\n span.recordException(error)\n span.setStatus({ code: SpanStatusCode.ERROR, message: error.message })\n throw ex\n } finally {\n span.end()\n }\n })\n }\n return fn()\n}\n\n/**\n * Executes an async function within an OpenTelemetry span, with optional time budget monitoring.\n * @param name - The span name.\n * @param fn - The async function to execute.\n * @param config - Optional span configuration (tracer, logger, time budget).\n * @returns The resolved value of `fn`.\n */\nexport async function spanAsync<T>(\n name: string,\n fn: () => Promise<T>,\n {\n timeBudgetLimit, logger, tracer,\n }: SpanConfig = {},\n): Promise<T> {\n const activeTracer = tracer ?? TRACE_API.getTracer(name)\n const funcToRun = isDefined(timeBudgetLimit) ? () => timeBudget(name, logger ?? console, fn, timeBudgetLimit) : fn\n if (isDefined(activeTracer)) {\n const span = activeTracer.startSpan(name)\n return await context.with(TRACE_API.setSpan(context.active(), span), async () => {\n try {\n const result = await funcToRun()\n span.setStatus({ code: SpanStatusCode.OK })\n return result\n } catch (ex) {\n const error = ex as Error\n span.recordException(error)\n span.setStatus({ code: SpanStatusCode.ERROR, message: error.message })\n throw ex\n } finally {\n span.end()\n }\n })\n }\n return await funcToRun()\n}\n\n/**\n * Executes an async function within a new root span (no parent), with optional time budget monitoring.\n * @param name - The span name.\n * @param fn - The async function to execute.\n * @param config - Optional span configuration (tracer, logger, time budget).\n * @returns The resolved value of `fn`.\n */\nexport async function spanRootAsync<T>(\n name: string,\n fn: () => Promise<T>,\n {\n timeBudgetLimit, logger, tracer,\n }: SpanConfig = {},\n): Promise<T> {\n const funcToRun = isDefined(timeBudgetLimit) ? () => timeBudget(name, logger ?? console, fn, timeBudgetLimit) : fn\n const activeTracer = tracer ?? TRACE_API.getTracer(name)\n if (isDefined(activeTracer)) {\n const activeContext = context.active()\n\n const noSpanContext = cloneContextWithoutSpan(activeContext)\n\n // Create a new span in the context without an active span\n const span = activeTracer.startSpan(name, {}, noSpanContext)\n\n // Use the active context but replace its span with our new root span\n return await context.with(TRACE_API.setSpan(noSpanContext, span), async () => {\n try {\n const result = await funcToRun()\n span.setStatus({ code: SpanStatusCode.OK })\n return result\n } catch (ex) {\n const error = ex as Error\n span.recordException(error)\n span.setStatus({ code: SpanStatusCode.ERROR, message: error.message })\n throw ex\n } finally {\n span.end()\n }\n })\n }\n return await funcToRun()\n}\n", "import type { Logger } from '#logger'\n\ndeclare function setInterval(handler: () => void, timeout?: number): unknown\ndeclare function clearInterval(intervalId: ReturnType<typeof setInterval>): void\n\n/**\n * Executes an async function and logs a warning if it exceeds the given time budget.\n * @param name - A label for the function, used in warning messages.\n * @param logger - The logger to use for budget-exceeded warnings.\n * @param func - The async function to execute.\n * @param budget - The time budget in milliseconds.\n * @param status - If true, logs periodic warnings while the function is still running.\n * @returns The result of the executed function.\n */\nexport async function timeBudget<TResult>(\n name: string,\n logger: Logger | undefined,\n func: () => Promise<TResult>,\n budget: number,\n status = false,\n): Promise<TResult> {\n const start = Date.now()\n const timer = status\n ? setInterval(() => {\n const duration = Date.now() - start\n if ((budget > 0) && (duration > budget)) {\n logger?.warn(`Function [${name}] execution is exceeding budget: ${duration}ms > ${budget}ms`)\n }\n }, Math.max(100, budget))\n : undefined\n\n const result = await func()\n const duration = Date.now() - start\n\n if (timer === undefined && (budget > 0) && (duration > budget)) {\n logger?.warn(`Function [${name}] execution exceeded budget: ${duration}ms > ${budget}ms`)\n }\n if (timer !== undefined) {\n clearInterval(timer)\n }\n return result\n}\n", "import type { Logger } from '#logger'\nimport type { Promisable } from '#promise'\n\nimport type { AbstractCreatable } from './AbstractCreatable.ts'\nimport type {\n CreatableInstance, CreatableParams, Labels,\n RequiredCreatableParams,\n} from './model/index.ts'\n\n/**\n * A factory interface for creating instances of a Creatable with pre-configured parameters.\n * Unlike the full Creatable, this only exposes the `create` method.\n */\nexport interface CreatableFactory<T extends CreatableInstance = CreatableInstance>\n extends Omit<Creatable<T>, 'create' | 'createHandler' | 'paramsHandler' | 'defaultLogger' | 'factory'> {\n\n /** Creates a new instance, merging the provided params with the factory's defaults. */\n create(\n this: CreatableFactory<T>,\n params?: Partial<T['params']>): Promise<T>\n}\n\n/**\n * Static interface for classes that support asynchronous creation.\n * Provides the `create`, `createHandler`, and `paramsHandler` static methods\n * used to construct instances through the creatable lifecycle.\n */\nexport interface Creatable<T extends CreatableInstance = CreatableInstance> {\n\n /** Optional default logger shared across instances created by this class. */\n defaultLogger?: Logger\n\n /** Constructs a new raw instance. Should not be called directly; use `create` instead. */\n new(key: unknown, params: Partial<CreatableParams>): T & AbstractCreatable<T['params']>\n\n /** Asynchronously creates and initializes a new instance with the given params. */\n create<T extends CreatableInstance>(\n this: Creatable<T>,\n params?: Partial<T['params']>): Promise<T>\n\n /** Hook called after construction to perform additional initialization on the instance. */\n createHandler<T extends CreatableInstance>(\n this: Creatable<T>,\n instance: T\n ): Promisable<T>\n\n /** Hook called to validate and transform params before instance construction. */\n paramsHandler<T extends CreatableInstance>(\n this: Creatable<T>, params?: Partial<T['params']>): Promisable<T['params'] & RequiredCreatableParams>\n}\n\n/** Extends Creatable with a `factory` method that produces pre-configured CreatableFactory instances. */\nexport interface CreatableWithFactory<T extends CreatableInstance = CreatableInstance> extends Creatable<T> {\n /** Creates a factory with the given default params and labels. */\n factory<T extends CreatableInstance>(\n this: Creatable<T>,\n params?: Partial<T['params']>,\n labels?: Labels): CreatableFactory<T>\n}\n\n/**\n * Class annotation to be used to decorate Modules which support\n * an asynchronous creation pattern\n * @returns The decorated Module requiring it implement the members\n * of the CreatableModule as statics properties/methods\n */\nexport function creatable<T extends CreatableInstance>() {\n return <U extends Creatable<T>>(constructor: U) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n constructor\n }\n}\n\n/**\n * Class annotation to be used to decorate Modules which support\n * an asynchronous creation factory pattern\n * @returns The decorated Module requiring it implement the members\n * of the CreatableModule as statics properties/methods\n */\n\nexport function creatableFactory() {\n return <U extends CreatableFactory>(constructor: U) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n constructor\n }\n}\n", "import { type Creatable, type CreatableFactory } from './Creatable.ts'\nimport type {\n CreatableInstance, Labels, WithOptionalLabels,\n} from './model/index.ts'\n\n/**\n * A concrete factory that wraps a Creatable class with default parameters and labels.\n * Instances are created by merging caller-provided params over the factory defaults.\n */\nexport class Factory<T extends CreatableInstance = CreatableInstance> implements CreatableFactory<T> {\n /** The Creatable class this factory delegates creation to. */\n creatable: Creatable<T>\n\n /** Default parameters merged into every `create` call. */\n defaultParams?: Partial<T['params']>\n\n /** Labels identifying resources created by this factory. */\n labels?: Labels\n\n constructor(\n creatable: Creatable<T>,\n params?: Partial<T['params']>,\n labels: Labels = {},\n ) {\n this.creatable = creatable\n this.defaultParams = params\n this.labels = Object.assign({}, (creatable as WithOptionalLabels).labels ?? {}, labels ?? {})\n }\n\n /**\n * Creates a new Factory instance with the given default params and labels.\n * @param creatableModule - The Creatable class to wrap\n * @param params - Default parameters for new instances\n * @param labels - Labels to assign to created instances\n */\n static withParams<T extends CreatableInstance>(\n creatableModule: Creatable<T>,\n params?: Partial<T['params']>,\n labels: Labels = {},\n ) {\n return new Factory<T>(creatableModule, params, labels)\n }\n\n /**\n * Creates a new instance, merging the provided params over the factory defaults.\n * @param params - Optional parameters to override the factory defaults\n */\n create(params?: Partial<T['params']>): Promise<T> {\n const mergedParams: T['params'] = {\n ...this.defaultParams,\n ...params,\n }\n return this.creatable.create<T>(mergedParams)\n }\n}\n", "import { isNumber } from '#typeof'\n\n/**\n * Extracts the function name from the call stack at the given depth.\n * @param depth - The stack frame depth to inspect (default: 2)\n * @returns The function name, or '\\<unknown\\>' if it cannot be determined\n */\nexport function getFunctionName(depth = 2) {\n const error = new Error('Stack')\n let newIndex: number | undefined\n const stackParts = error.stack?.split('\\n')[depth]?.split(' ')\n const funcName\n = stackParts?.find((item, index) => {\n if (!(item.length > 0 && item !== 'at')) {\n return\n }\n\n // check if constructor\n if (item === 'new') {\n newIndex = index\n }\n return true\n }) ?? '<unknown>'\n return isNumber(newIndex) ? `${funcName} ${stackParts?.[newIndex + 1]}` : funcName\n}\n", "const getPrototype = (value: object): object | null => {\n const prototype: unknown = Object.getPrototypeOf(value)\n return typeof prototype === 'object' ? prototype : null\n}\n\n/**\n * Walks the prototype chain to find the root (base-most) definition of a named function.\n * @param obj - The object to start searching from\n * @param funcName - The name of the function to locate\n * @returns The function from the highest prototype in the chain that defines it\n */\nexport function getRootFunction(obj: unknown, funcName: string): unknown {\n if (obj === null || typeof obj !== 'object') return undefined\n\n let current = obj\n let prototype = getPrototype(current)\n while (prototype !== null && (prototype as Record<string, unknown>)[funcName] !== undefined) {\n current = prototype\n prototype = getPrototype(current)\n }\n return (current as Record<string, unknown>)[funcName]\n}\n", "/**\n * Object used to represent labels identifying a resource.\n */\nexport type Labels = Record<string, string | undefined>\n\n/**\n * Interface for objects that have labels.\n */\nexport interface WithLabels<T extends Labels = Labels> {\n labels: T\n}\n\n/**\n * Interface for objects that have labels.\n */\nexport interface WithOptionalLabels<T extends Labels = Labels> {\n labels?: T\n}\n\n/**\n * Returns true if the source object has all the labels from the required set\n * @param source Source object to check against\n * @param required Set of labels to check for in source\n * @returns True of the source object has all the labels from the required set\n */\nexport const hasAllLabels = (source?: Labels, required?: Labels): boolean => {\n if (!required) return true\n return Object.entries(required).every(([key, value]) => {\n return Object.hasOwn(source ?? {}, key) && source?.[key] === value\n })\n}\n", "/**\n * Converts a fixed-point bigint back to a whole-number bigint by dividing out the decimal places.\n * @param value - The fixed-point bigint value to convert\n * @param places - Number of decimal places (default 18)\n * @returns The whole-number bigint result\n */\nexport const fromFixedPoint = (value: bigint, places = 18): bigint => {\n if (!Number.isSafeInteger(places)) throw new Error(`places (${places}) must be an Integer`)\n return value / (10n ** BigInt(places))\n}\n", "/**\n * Formats a number to the specified number of significant digits, returning a string with minimal trailing zeros.\n * @param value - The number to format\n * @param digits - The number of significant digits\n * @returns A string representation of the number with the specified precision\n */\nexport const toDecimalPrecision = (value: number, digits: number) => {\n let fixed = 0\n const result = Number(value.toPrecision(digits))\n while (Number(result.toFixed(fixed)) !== result && fixed < 20) {\n fixed++\n }\n return result.toFixed(fixed)\n}\n", "/**\n * Converts a bigint or decimal string to a fixed-point bigint representation.\n * @param value - The value to convert (bigint or string with optional decimal point)\n * @param places - Number of decimal places (default 18)\n * @returns A bigint representing the value scaled by 10^places\n */\nexport const toFixedPoint = (value: bigint | string, places = 18): bigint => {\n if (!Number.isSafeInteger(places)) throw new Error(`places (${places}) must be an Integer`)\n if (typeof value === 'string') {\n const parts = value.split('.')\n if (parts.length > 2) {\n throw new Error('Too many decimals in value')\n }\n if (parts.length === 1) {\n return BigInt(value) * (10n ** BigInt(places))\n }\n const [whole, fraction] = parts\n const trimmed = fraction.slice(0, places)\n return BigInt(whole + trimmed.padEnd(Number(places), '0'))\n }\n return value * (10n ** BigInt(places))\n}\n", "/**\n * Truncates a string to show the first and last `length` characters separated by an ellipsis.\n * @param value - The string to ellipsize\n * @param length - Number of characters to keep at each end (default 2)\n * @returns The ellipsized string\n */\nexport const ellipsize = (value: string, length = 2): string => {\n const part1 = value.slice(0, length)\n const part2 = value.slice(value.length - length)\n return `${part1}...${part2}`\n}\n", "import { handleError } from '#error'\nimport { isNumber } from '#typeof'\n\n/**\n * Returns the name of the calling function by inspecting the stack trace.\n * @param depth - The stack frame depth to read the function name from (default: 2).\n * @returns The function name, or '<unknown>' if it cannot be determined.\n */\nexport const functionName = (depth = 2) => {\n try {\n throw new Error('Getting function name')\n } catch (ex) {\n return handleError(ex, (error) => {\n let newIndex: number | undefined\n const stackParts = error.stack?.split('\\n')[depth].split(' ')\n const funcName\n = stackParts?.find((item, index) => {\n if (!(item.length > 0 && item !== 'at')) {\n return\n }\n\n // check if constructor\n if (item === 'new') {\n newIndex = index\n }\n return true\n }) ?? '<unknown>'\n return isNumber(newIndex) ? `${funcName} ${stackParts?.[newIndex + 1]}` : funcName\n })\n }\n}\n", "/** A log function that silently discards all arguments. */\nexport const NoOpLogFunction = (..._data: unknown[]) => void {}\n", "import type { EnumKey, EnumValue } from '#enum'\nimport { Enum } from '#enum'\n\nimport { NoOpLogFunction } from './NoOpLogFunction.ts'\n\n/** A generic logging function that accepts any number of arguments. */\nexport type LogFunction = (...data: unknown[]) => void\n\n/**\n * Interface to handle overlap between Winston &\n * `console` with as much congruency as possible.\n */\nexport interface Logger {\n debug: LogFunction\n error: LogFunction\n info: LogFunction\n log: LogFunction\n trace: LogFunction\n warn: LogFunction\n}\n\n/** Numeric log level values, from least verbose (error=1) to most verbose (trace=6). */\nexport const LogLevel = Enum({\n error: 1,\n warn: 2,\n info: 3,\n log: 4,\n debug: 5,\n trace: 6,\n})\n\n/** String key for a log level (e.g. 'error', 'warn', 'info'). */\nexport type LogLevelKey = EnumKey<typeof LogLevel>\n\n/** Alias for LogLevelKey, representing the verbosity setting as a string. */\nexport type LogVerbosity = LogLevelKey\n\n/** Numeric value of a log level (1 through 6). */\nexport type LogLevelValue = EnumValue<typeof LogLevel>\n\n/**\n * A logger that filters messages based on a configured log level.\n * Methods for levels above the configured threshold return a no-op function.\n */\nexport class LevelLogger implements Logger {\n readonly level: LogLevelValue\n readonly logger: Logger\n constructor(logger: Logger, level: LogLevelValue = LogLevel.warn) {\n this.level = level\n this.logger = logger\n }\n\n get debug() {\n return this.level >= LogLevel.debug ? this.logger.debug : NoOpLogFunction\n }\n\n get error() {\n return this.level >= LogLevel.error ? this.logger.error : NoOpLogFunction\n }\n\n get info() {\n return this.level >= LogLevel.info ? this.logger.info : NoOpLogFunction\n }\n\n get log() {\n return this.level >= LogLevel.log ? this.logger.log : NoOpLogFunction\n }\n\n get trace() {\n return this.level >= LogLevel.trace ? this.logger.trace : NoOpLogFunction\n }\n\n get warn() {\n return this.level >= LogLevel.warn ? this.logger.warn : NoOpLogFunction\n }\n}\n", "import type { Logger, LogLevelValue } from './LevelLogger.ts'\nimport { LevelLogger, LogLevel } from './LevelLogger.ts'\n\ndeclare const console: Logger\n\n/** A LevelLogger that delegates to the global `console` object. */\nexport class ConsoleLogger extends LevelLogger {\n constructor(level: LogLevelValue = LogLevel.warn) {\n super(console, level)\n }\n}\n", "import { handleError } from '#error'\nimport { isNumber } from '#typeof'\n\n/**\n * Retrieves the name of the calling function by inspecting the stack trace.\n * @param depth - The stack frame depth to inspect (default: 2, the caller's caller).\n * @returns The function name, or '<unknown>' if it cannot be determined.\n */\nexport const getFunctionName = (depth = 2) => {\n try {\n throw new Error('Getting function name')\n } catch (ex) {\n return handleError(ex, (error) => {\n let newIndex: number | undefined\n const stackParts = error.stack?.split('\\n')[depth]?.split(' ')\n const funcName\n = stackParts?.find((item, index) => {\n if (!(item.length > 0 && item !== 'at')) {\n return\n }\n\n // check if constructor\n if (item === 'new') {\n newIndex = index\n }\n return true\n }) ?? '<unknown>'\n return isNumber(newIndex) ? `${funcName} ${stackParts?.[newIndex + 1]}` : funcName\n })\n }\n}\n", "import type { Logger } from './LevelLogger.ts'\n\n/**\n * A logger wrapper that prefixes every log message with a bracketed identifier.\n * Useful for distinguishing log output from different components or instances.\n */\nexport class IdLogger implements Logger {\n private _id?: () => string\n private _logger: Logger\n\n constructor(logger: Logger, id?: () => string) {\n this._logger = logger\n this._id = id\n }\n\n set id(id: string) {\n this._id = () => id\n }\n\n debug(...data: unknown[]) {\n this._logger?.debug(this.prefix(), ...data)\n }\n\n error(...data: unknown[]) {\n this._logger?.error(this.prefix(), ...data)\n }\n\n info(...data: unknown[]) {\n this._logger?.info(this.prefix(), ...data)\n }\n\n log(...data: unknown[]) {\n this._logger?.log(this.prefix(), ...data)\n }\n\n trace(...data: unknown[]) {\n this._logger?.trace(this.prefix(), ...data)\n }\n\n warn(...data: unknown[]) {\n this._logger?.warn(this.prefix(), ...data)\n }\n\n private prefix() {\n return `[${this._id?.()}]`\n }\n}\n", "import type { Logger } from './LevelLogger.ts'\nimport { NoOpLogFunction } from './NoOpLogFunction.ts'\n\n/**\n * A logger that does not log anything.\n * This is useful when you want to disable logging\n * like when running unit tests or in silent mode.\n * It implements the `Logger` interface but all methods\n * are no-op functions.\n */\nexport class SilentLogger implements Logger {\n readonly debug = NoOpLogFunction\n readonly error = NoOpLogFunction\n readonly info = NoOpLogFunction\n readonly log = NoOpLogFunction\n readonly trace = NoOpLogFunction\n readonly warn = NoOpLogFunction\n}\n", "import { assertDefinedEx } from '#assert'\nimport type {\n AsTypeFunction,\n StringOrAlertFunction, TypeCheck, TypeCheckConfig,\n TypeCheckRequiredConfig,\n} from '#object-model'\nimport type { AnyNonPromise } from '#promise'\nimport { isPromise, isTruthy } from '#typeof'\n\n/**\n * Factory for creating type-narrowing 'as' functions that cast a value to T or return undefined.\n * Supports optional assertion messages and configuration for required/optional behavior.\n */\nexport const AsTypeFactory = {\n create: <T extends AnyNonPromise>(typeCheck: TypeCheck<T>): AsTypeFunction<T> => {\n const func = (\n value: AnyNonPromise,\n assertOrConfig?: StringOrAlertFunction<T> | TypeCheckConfig,\n config?: TypeCheckConfig,\n ): T | undefined => {\n // when used as a predicate, it seems that the index is passed as the second parameter (filter,map)\n const isPredicate = typeof assertOrConfig === 'number'\n const resolvedAssert = isPredicate || (typeof assertOrConfig === 'object') ? undefined : assertOrConfig\n const resolvedConfig = isPredicate ? undefined : typeof assertOrConfig === 'object' ? assertOrConfig : config\n\n // only return undefined if not required\n const isRequired = isTruthy((resolvedConfig as (TypeCheckRequiredConfig | undefined))?.required)\n if (!isRequired && (value === undefined || value === null)) {\n return undefined\n }\n\n if (isPromise(value)) {\n throw new TypeError('un-awaited promises may not be sent to \"as\" functions')\n }\n\n const result = typeCheck(value, resolvedConfig) ? (value) : undefined\n\n if (resolvedAssert !== undefined) {\n const message = typeof resolvedAssert === 'function' ? resolvedAssert : () => resolvedAssert\n return assertDefinedEx<T>(result, message)\n }\n return result\n }\n return func\n },\n createOptional: <T extends AnyNonPromise>(typeCheck: TypeCheck<T>) => {\n const func = (value: AnyNonPromise): T | undefined => {\n if (value === undefined || value === null) return undefined\n if (isPromise(value)) {\n throw new TypeError('un-awaited promises may not be sent to \"as\" functions')\n }\n return typeCheck(value) ? (value) : undefined\n }\n return func\n },\n}\n", "import type { TypeCheck } from '#object-model'\nimport type { TypedObject } from '#typeof'\n\nimport { AsTypeFactory } from './AsTypeFactory.ts'\n\n/** Factory for creating type-narrowing functions for TypedObject types. */\nexport const AsObjectFactory = {\n create: <T extends TypedObject>(typeCheck: TypeCheck<T>) => {\n return AsTypeFactory.create<T>(typeCheck)\n },\n createOptional: <T extends TypedObject>(typeCheck: TypeCheck<T>) => {\n return AsTypeFactory.createOptional<T>(typeCheck)\n },\n}\n", "import type { AnyObject } from '#object-model'\nimport { isObject } from '#typeof'\n\nimport { AsObjectFactory } from './AsObjectFactory.ts'\n\n/** Type-narrowing function that casts a value to AnyObject if it is a plain object, or returns undefined. */\nexport const asAnyObject = (() => AsObjectFactory.create<AnyObject>(<T extends AnyObject>(obj: unknown): obj is T => isObject(obj)))()\n", "import type { AnyObject } from '#object-model'\n\n/**\n * Deeply merges two types into a new type.\n */\ntype DeepMerge<A, B> = {\n [K in keyof A | keyof B]:\n K extends keyof B\n ? K extends keyof A\n ? A[K] extends object\n ? B[K] extends object\n ? DeepMerge<A[K], B[K]>\n : B[K]\n : B[K]\n : B[K]\n : K extends keyof A\n ? A[K]\n : never;\n}\n\n/**\n * Merges multiple types into a new type.\n */\ntype MergeAll<T extends object[], R = {}>\n = T extends [infer First extends object, ...infer Rest extends object[]]\n ? MergeAll<Rest, DeepMerge<R, First>>\n : R\n\n/**\n * Options for merging objects in the deep merge function.\n */\ninterface MergeOptions {\n /**\n * Strategy for merging arrays.\n * - 'overwrite': Overwrites the array with the last object's value.\n * - 'concat': Concatenates arrays from all objects.\n * @default 'overwrite'\n */\n arrayStrategy?: 'overwrite' | 'concat'\n /**\n * Mutate the first object in the list instead of creating a new one.\n * @default false\n */\n mutate?: boolean\n}\n\nconst isUnsafeKey = (key: string | symbol): boolean =>\n typeof key === 'string' && ['__proto__', 'constructor', 'prototype'].includes(key)\n\nconst isPlainObject = (value: object): boolean => {\n const prototype: object | null = Object.getPrototypeOf(value) as object | null\n return prototype === Object.prototype || prototype === null\n}\n\nfunction merge<T extends AnyObject>(target: AnyObject, source?: AnyObject, options?: MergeOptions): T {\n if (!source || typeof source !== 'object') return target as T\n\n for (const key of Reflect.ownKeys(source)) {\n if (isUnsafeKey(key)) {\n continue\n }\n const value = source[key]\n if (Array.isArray(value)) {\n const targetValue = target[key]\n target[key]\n // If the value is an array, handle it based on the configured array strategy\n = options?.arrayStrategy === 'concat' && Array.isArray(targetValue)\n ? [...targetValue as unknown[], ...value as unknown[]]\n : value\n } else if (value !== null && typeof value === 'object' && isPlainObject(value)) {\n const targetValue = target[key]\n if (targetValue === undefined || targetValue === null || typeof targetValue !== 'object' || !isPlainObject(targetValue)) {\n target[key] = {}\n }\n merge(target[key] as AnyObject, value as AnyObject, options)\n } else {\n // Overwrite with non-plain-object or primitive values\n target[key] = value\n }\n }\n\n return target as T\n}\n\n/**\n * Creates a deep merge function with the specified options.\n * @param options Options for merging.\n * @returns A deep merge function configured for the specified options.\n */\nexport function createDeepMerge(options: MergeOptions) {\n return function deepMerge<T extends AnyObject[]>(...objects: T): MergeAll<T> {\n const result = (options.mutate === true ? objects[0] ?? {} : {}) as MergeAll<T>\n for (const obj of objects) {\n merge(result, obj, options)\n }\n return result\n }\n}\n\n/**\n * Deeply merges multiple objects into a new object.\n * @param objects Multiple objects to merge deeply.\n * The function merges properties from all objects into a new object.\n * If a property exists in multiple objects, the last object's value will be used.\n * If a property is an object, it will be merged recursively.\n * If a property is an array, it will be overwritten by the last object's value.\n * If a property is a primitive value, it will be overwritten by the last object's value.\n * If a property is undefined in the source, it will be skipped.\n * If a property is a symbol, it will be merged as well.\n * @returns A new object with the merged properties.\n */\nexport const deepMerge = createDeepMerge({ arrayStrategy: 'overwrite', mutate: false })\n", "import type { TypeCheck, TypeCheckConfig } from '#object-model'\nimport {\n isObject, isTruthy,\n type ObjectTypeShape, type TypedObject,\n} from '#typeof'\nimport { isType } from '#typeof'\n\ninterface ConsoleLogger {\n warn: (...data: unknown[]) => void\n}\n\ndeclare const console: ConsoleLogger\n\n/** Configuration options for object type checking. */\nexport interface ObjectTypeConfig extends TypeCheckConfig {}\n\n/** Factory class for creating type-guard functions that validate objects against a given shape and optional additional checks. */\nexport class IsObjectFactory<T extends TypedObject> {\n /**\n * Creates a type-guard function that validates an object matches the given shape and passes additional checks.\n * @param shape - An optional map of property names to expected types.\n * @param additionalChecks - Optional extra type-check functions to run after shape validation.\n * @returns A type-guard function for type T.\n */\n create(shape?: ObjectTypeShape, additionalChecks?: TypeCheck<TypedObject>[]): TypeCheck<T> {\n return (obj: unknown, config?: TypeCheckConfig | number): obj is T => {\n if (!isObject(obj)) {\n return false\n }\n const log = (typeof config === 'object') ? config.log : undefined\n return (\n // do primary check\n Object.entries(shape ?? {}).filter(([key, type]) => {\n const isResult = isType((obj as Record<string, unknown>)[key], type)\n if (!isResult && isTruthy(log)) {\n const logger = typeof log === 'object' ? log : console\n logger.warn(`isType Failed: ${key}: ${type}`)\n }\n return !isResult\n }).length === 0\n // perform additional checks\n // eslint-disable-next-line unicorn/no-array-reduce\n && (additionalChecks?.reduce((prev, check) => prev && check(obj, { log }), true) ?? true)\n )\n }\n }\n}\n", "import * as z from 'zod/mini'\n\nimport {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '#zod'\n\nconst JsonArrayZod = z.array(z.lazy(() => JsonValueZod))\n\n// Define recursive JSON value schema\nconst JsonValueZod: z.ZodMiniType<unknown> = z.lazy(() =>\n z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.null(),\n z.array(JsonValueZod),\n z.record(z.string(), JsonValueZod), // object with string keys and JSON values\n ]))\n\n// JSON object schema \u2014 top-level must be an object\n/** Zod schema for a JSON object with string keys and recursive JSON values. */\nexport const JsonObjectZod = z.record(z.string(), JsonValueZod)\n\n// TypeScript type for reference\n/** A recursive JSON value: string, number, boolean, null, array, or object. */\nexport type JsonValue = z.infer<typeof JsonValueZod>\n/** A JSON object with string keys and JSON values. */\nexport type JsonObject = z.infer<typeof JsonObjectZod>\n/** A JSON array containing JSON values. */\nexport type JsonArray = z.infer<typeof JsonArrayZod>\n\n/** Type guard that checks if a value is a valid JSON value. */\nexport const isJsonValue = zodIsFactory(JsonValueZod)\n/** Casts a value to JsonValue or returns undefined if it does not conform. */\nexport const asJsonValue = zodAsFactory(JsonValueZod, 'asJsonValue')\n/** Parses a value into a JsonValue, throwing if it does not conform. */\nexport const toJsonValue = zodToFactory(JsonValueZod, 'toJsonValue')\n\n/** Type guard that checks if a value is a valid JSON array. */\nexport const isJsonArray = zodIsFactory(JsonArrayZod)\n/** Casts a value to JsonArray or returns undefined if it does not conform. */\nexport const asJsonArray = zodAsFactory(JsonArrayZod, 'asJsonArray')\n/** Parses a value into a JsonArray, throwing if it does not conform. */\nexport const toJsonArray = zodToFactory(JsonArrayZod, 'toJsonArray')\n\n/** Type guard that checks if a value is a valid JSON object. */\nexport const isJsonObject = zodIsFactory(JsonObjectZod)\n/** Casts a value to JsonObject or returns undefined if it does not conform. */\nexport const asJsonObject = zodAsFactory(JsonObjectZod, 'asJsonObject')\n/** Parses a value into a JsonObject, throwing if it does not conform. */\nexport const toJsonObject = zodToFactory(JsonObjectZod, 'toJsonObject')\n", "import * as z from 'zod/v4/core'\n\nimport type { AssertConfig } from '#error'\nimport { assertError } from '#error'\n\nimport type { ZodFactoryConfig } from './Config.ts'\n\nconst formatZodValue = (value: unknown): string => {\n const json = JSON.stringify(value)\n return json ?? String(value)\n}\n\n/**\n * Creates a function that validates a value against a zod schema and returns it with a narrowed type.\n * When called without an assert config, returns undefined on failure. When called with an assert config, throws on failure.\n * @param zod - The zod schema to validate against\n * @param name - A name used in error messages for identification\n * @returns A function that validates and narrows the type of a value\n */\nexport function zodAsFactory<TZod>(zod: z.$ZodType<TZod>, name: string) {\n function asFunc<T>(value: T): (T & TZod) | undefined\n function asFunc<T>(value: T, assert: ZodFactoryConfig): (T & TZod)\n function asFunc<T>(value: T, assert?: ZodFactoryConfig): (T & TZod) | undefined {\n const result = z.safeParse(zod, value)\n if (result.success) {\n return value as (T & TZod)\n }\n if (assert !== undefined) {\n let assertConfig: AssertConfig\n switch (typeof assert) {\n case 'string': {\n assertConfig = `[${name}][${formatZodValue(value)}] ${assert}`\n break\n }\n case 'object': {\n assertConfig = `[${name}][${assert.name}][${formatZodValue(value)}] ${result.error.message}`\n break\n }\n case 'boolean': {\n assertConfig = `[${name}][${formatZodValue(value)}] ${result.error.message}`\n break\n }\n case 'function': {\n assertConfig = assert(value, result.error.message) as AssertConfig\n break\n }\n }\n return assertError(value, assertConfig, result.error.message)\n }\n }\n\n return asFunc\n}\n", "import * as z from 'zod/v4/core'\n\n/**\n * Creates a type guard function that checks if a value matches a zod schema.\n * @param zod - The zod schema to validate against\n * @returns A type guard function that returns true if the value passes validation\n */\nexport function zodIsFactory<TZod>(zod: z.$ZodType<TZod>) {\n return <T>(value: T): value is T & TZod => z.safeParse(zod, value).success\n}\n", "import type * as z from 'zod/v4/core'\n\nimport { isDefined } from '#typeof'\n\nimport type { ZodFactoryConfig } from './Config.ts'\nimport { zodAsFactory } from './zodAsFactory.ts'\n\n/**\n * Creates a function that converts a value to the zod schema type, delegating to `zodAsFactory` internally.\n * Provides overloads for optional assertion: without assert config returns undefined on failure, with assert config throws on failure.\n * @param zod - The zod schema to validate against\n * @param name - A name used in error messages for identification\n * @returns A function that validates and converts a value to the schema type\n */\nexport function zodToFactory<TZod>(zod: z.$ZodType<TZod>, name: string) {\n const as = zodAsFactory<TZod>(zod, name)\n function toFunc<T>(value: T): (T & TZod) | undefined\n function toFunc<T>(value: T, assert: ZodFactoryConfig): (T & TZod)\n function toFunc<T>(value: T, assert?: ZodFactoryConfig): (T & TZod) | undefined {\n if (isDefined(assert)) {\n return as(value, assert)\n }\n return as(value)\n }\n return toFunc\n}\n", "import type * as z from 'zod/v4/core'\n\nimport { zodAsFactory } from './zodAsFactory.ts'\nimport { zodIsFactory } from './zodIsFactory.ts'\nimport { zodToFactory } from './zodToFactory.ts'\n\n/** @alpha */\nexport type AllZodFactories<TType, TName extends string>\n = Record<`is${TName}`, ReturnType<typeof zodIsFactory<TType>>>\n & Record<`as${TName}`, ReturnType<typeof zodAsFactory<TType>>>\n & Record<`to${TName}`, ReturnType<typeof zodToFactory<TType>>>\n\n/**\n * Creates a bundle of `is`, `as`, and `to` factory functions for a given zod schema.\n * @alpha\n * @param zod - The zod schema to validate against\n * @param name - The name used to suffix the generated function names (e.g. 'Address' produces `isAddress`, `asAddress`, `toAddress`)\n * @returns An object containing `is<Name>`, `as<Name>`, and `to<Name>` functions\n */\nexport function zodAllFactory<T, TName extends string>(zod: z.$ZodType<T>, name: TName) {\n return {\n [`is${name}`]: zodIsFactory<T>(zod),\n [`as${name}`]: zodAsFactory<T>(zod, `as${name}`),\n [`to${name}`]: zodToFactory<T>(zod, `to${name}`),\n }\n}\n", "import * as z from 'zod/v4/core'\n\nimport type { AssertConfig } from '#error'\nimport { assertError } from '#error'\n\nimport type { ZodFactoryConfig } from './Config.ts'\n\nconst formatZodValue = (value: unknown): string => {\n const json = JSON.stringify(value)\n return json ?? String(value)\n}\n\n/**\n * Creates an async function that validates a value against a zod schema and returns it with a narrowed type.\n * Uses `safeParseAsync` for schemas with async refinements. When called without an assert config, returns undefined on failure.\n * @param zod - The zod schema to validate against\n * @param name - A name used in error messages for identification\n * @returns An async function that validates and narrows the type of a value\n */\nexport function zodAsAsyncFactory<TZod>(zod: z.$ZodType<TZod>, name: string) {\n function asFunc<T>(value: T): Promise<(T & TZod) | undefined>\n function asFunc<T>(value: T, assert: ZodFactoryConfig): Promise<(T & TZod)>\n async function asFunc<T>(value: T, assert?: ZodFactoryConfig): Promise<(T & TZod) | undefined> {\n const result = await z.safeParseAsync(zod, value)\n if (result.success) {\n return value as (T & TZod)\n }\n if (assert !== undefined) {\n let assertConfig: AssertConfig\n switch (typeof assert) {\n case 'string': {\n assertConfig = `[${name}][${formatZodValue(value)}] ${assert}`\n break\n }\n case 'object': {\n assertConfig = `[${name}][${assert.name}][${formatZodValue(value)}] ${result.error.message}`\n break\n }\n case 'boolean': {\n assertConfig = `[${name}][${formatZodValue(value)}] ${result.error.message}`\n break\n }\n case 'function': {\n assertConfig = assert(value, result.error.message) as AssertConfig\n break\n }\n }\n return assertError(value, assertConfig, result.error.message)\n }\n }\n\n return asFunc\n}\n", "import type * as z from 'zod/v4/core'\n\nimport { isDefined } from '#typeof'\n\nimport type { ZodFactoryConfig } from './Config.ts'\nimport { zodAsAsyncFactory } from './zodAsAsyncFactory.ts'\n\n/**\n * Creates an async function that converts a value to the zod schema type, delegating to `zodAsAsyncFactory` internally.\n * Provides overloads for optional assertion: without assert config resolves to undefined on failure, with assert config throws on failure.\n * @param zod - The zod schema to validate against\n * @param name - A name used in error messages for identification\n * @returns An async function that validates and converts a value to the schema type\n */\nexport function zodToAsyncFactory<TZod>(zod: z.$ZodType<TZod>, name: string) {\n const as = zodAsAsyncFactory<TZod>(zod, name)\n function toFunc<T>(value: T): Promise<(T & TZod) | undefined>\n function toFunc<T>(value: T, assert: ZodFactoryConfig): Promise<(T & TZod)>\n async function toFunc<T>(value: T, assert?: ZodFactoryConfig): Promise<(T & TZod) | undefined> {\n if (isDefined(assert)) {\n return await as(value, assert)\n }\n return await as(value)\n }\n return toFunc\n}\n", "import type { EmptyObject } from './EmptyObject.ts'\nimport type { StringKeyObject } from './StringKeyObject.ts'\n\n/** Abstract base class that wraps an object and provides typed access to it. */\nexport abstract class ObjectWrapper<T extends EmptyObject = EmptyObject> {\n readonly obj: T\n constructor(obj: T) {\n this.obj = obj\n }\n\n protected get stringKeyObj() {\n return this.obj as StringKeyObject\n }\n}\n", "import { assertEx } from '#assert'\n\nimport type { EmptyObject } from './EmptyObject.ts'\nimport type { JsonObject } from './JsonObject.ts'\nimport type { DeepOmitStartsWith } from './OmitStartsWith.ts'\n\n/** A predicate function used to determine which properties to omit from an object. */\nexport type OmitByPredicate<T extends EmptyObject = Record<string, unknown>> = (value: T[keyof T], key: keyof T) => boolean\n\nconst omitByArray = <T>(\n obj: T[],\n predicate: OmitByPredicate,\n maxDepth: number,\n): T[] => {\n return obj.map((value) => {\n return (value !== null && typeof value === 'object') ? omitBy(value, predicate, maxDepth) : value\n }) as T[]\n}\n\nconst omitByObject = <T extends EmptyObject>(\n obj: T,\n predicate: OmitByPredicate,\n maxDepth: number,\n): Partial<T> => {\n const result: JsonObject = {}\n\n for (const key of Object.keys(obj)) {\n const value = obj[key as keyof T]\n if (!predicate(value, key)) {\n result[key] = ((value !== null && typeof value === 'object') ? omitBy(value, predicate, maxDepth - 1) : value)\n }\n }\n\n return result as T\n}\n\n/**\n * Creates a new object excluding properties that satisfy the predicate, with optional recursive depth.\n * @param obj - The source object to omit properties from.\n * @param predicate - A function that returns true for properties to exclude.\n * @param maxDepth - Maximum recursion depth for nested objects.\n * @returns A partial copy of the object without matching properties.\n */\nexport const omitBy = <T extends EmptyObject>(\n obj: T,\n predicate: OmitByPredicate,\n maxDepth = 1,\n): Partial<T> => {\n if (maxDepth <= 0) {\n return obj\n }\n\n return Array.isArray(obj) ? omitByArray(obj, predicate, maxDepth - 1) as T : omitByObject(obj, predicate, maxDepth - 1)\n}\n\nconst omitByPrefixPredicate = (prefix: string) => (_: unknown, key: string) => {\n assertEx(typeof key === 'string', () => `Invalid key type [${key}, ${typeof key}]`)\n return key.startsWith(prefix)\n}\n\n/**\n * Omits all properties whose keys start with the given prefix, recursively through nested objects.\n * @param payload - The source object.\n * @param prefix - The string prefix to match keys against.\n * @param maxDepth - Maximum recursion depth.\n * @returns A new object without properties that have matching prefixed keys.\n */\nexport const omitByPrefix = <T extends EmptyObject, P extends string>(payload: T, prefix: P, maxDepth = 100): DeepOmitStartsWith<T, P> => {\n return omitBy(payload, omitByPrefixPredicate(prefix), maxDepth) as unknown as DeepOmitStartsWith<T, P>\n}\n", "import { assertEx } from '#assert'\n\nimport type { EmptyObject } from './EmptyObject.ts'\nimport type { JsonObject } from './JsonObject.ts'\nimport type { DeepPickStartsWith } from './PickStartsWith.ts'\n\n/** A predicate function used to determine which properties to pick from an object. */\nexport type PickByPredicate<T extends EmptyObject = Record<string, unknown>> = (value: T[keyof T], key: keyof T) => boolean\n\nconst pickByArray = <T>(\n obj: T[],\n predicate: PickByPredicate,\n maxDepth: number,\n): T[] => {\n return obj.map((value) => {\n return (value !== null && typeof value === 'object') ? pickBy(value, predicate, maxDepth) : value\n }) as T[]\n}\n\nconst pickByObject = <T extends EmptyObject>(\n obj: T,\n predicate: PickByPredicate,\n maxDepth: number,\n): Partial<T> => {\n const result: JsonObject = {}\n\n for (const key of Object.keys(obj)) {\n const value = obj[key as keyof T]\n if (predicate(value, key)) {\n result[key] = ((value !== null && typeof value === 'object') ? pickBy(value, predicate, maxDepth - 1) : value)\n }\n }\n\n return result as T\n}\n\n/**\n * Creates a new object containing only the properties that satisfy the predicate, with optional recursive depth.\n * @param obj - The source object to pick properties from.\n * @param predicate - A function that returns true for properties to include.\n * @param maxDepth - Maximum recursion depth for nested objects.\n * @returns A partial copy of the object with only matching properties.\n */\nexport const pickBy = <T extends EmptyObject>(\n obj: T,\n predicate: PickByPredicate,\n maxDepth = 1,\n): Partial<T> => {\n if (maxDepth <= 0) {\n return obj\n }\n\n return Array.isArray(obj) ? pickByArray(obj, predicate, maxDepth - 1) as T : pickByObject(obj, predicate, maxDepth - 1)\n}\n\nconst pickByPrefixPredicate = (prefix: string) => (_: unknown, key: string) => {\n assertEx(typeof key === 'string', () => `Invalid key type [${key}, ${typeof key}]`)\n return key.startsWith(prefix)\n}\n\n/**\n * Picks all properties whose keys start with the given prefix, recursively through nested objects.\n * @param payload - The source object.\n * @param prefix - The string prefix to match keys against.\n * @param maxDepth - Maximum recursion depth.\n * @returns A new object containing only properties with matching prefixed keys.\n */\nexport const pickByPrefix = <T extends EmptyObject, P extends string>(payload: T, prefix: P, maxDepth = 100): DeepPickStartsWith<T, P> => {\n return pickBy(payload, pickByPrefixPredicate(prefix), maxDepth) as unknown as DeepPickStartsWith<T, P>\n}\n", "import type { EmptyObject } from './EmptyObject.ts'\n\n/**\n * Returns a shallow copy of the object with the specified fields removed.\n * @param obj - The source object.\n * @param fields - An array of keys to remove.\n * @returns A new object without the specified fields.\n */\nexport const removeFields = <T extends EmptyObject, K extends keyof T>(obj: T, fields: K[]): Omit<T, K> => {\n const clone = { ...obj }\n for (const field of fields) {\n delete clone[field]\n }\n return clone\n}\n", "import type {\n JsonArray, JsonObject, JsonValue,\n} from './JsonObject.ts'\n\n/**\n * Converts an array to a JSON-safe array, handling circular references and depth limits.\n * @param value - The array to convert.\n * @param cycleList - Tracks visited objects to detect circular references.\n * @param maxDepth - Maximum recursion depth before truncating.\n * @returns A JSON-safe array representation.\n */\nexport const toSafeJsonArray = (value: unknown[], cycleList?: unknown[], maxDepth = 3): JsonArray => {\n return value.map(item => toSafeJsonValue(item, cycleList, maxDepth))\n}\n\n/**\n * Converts an object to a JSON-safe object, handling circular references and depth limits.\n * @param value - The object to convert.\n * @param cycleList - Tracks visited objects to detect circular references.\n * @param maxDepth - Maximum recursion depth before truncating.\n * @returns A JSON-safe object representation.\n */\nexport const toSafeJsonObject = (value: object, cycleList?: unknown[], maxDepth = 3): JsonObject => {\n const result: JsonObject = {}\n for (const [key, entry] of Object.entries(value)) {\n result[key] = entry === undefined ? '[Undefined]' : toSafeJsonValue(entry, cycleList, maxDepth)\n }\n return result\n}\n\n/**\n * Converts an unknown value to a JSON-safe value, replacing circular references with '[Circular]' and\n * non-JSON types with descriptive placeholder strings.\n * @param value - The value to convert.\n * @param cycleList - Tracks visited objects to detect circular references.\n * @param maxDepth - Maximum recursion depth before truncating with '[MaxDepth]'.\n * @returns A JSON-safe representation of the value.\n */\nexport const toSafeJsonValue = (value: unknown, cycleList?: unknown[], maxDepth = 3): JsonValue => {\n if (maxDepth <= 0 && typeof value === 'object') {\n return '[MaxDepth]'\n }\n if (cycleList?.includes(value) === true) {\n return '[Circular]'\n }\n switch (typeof value) {\n case 'string':\n case 'boolean':\n case 'number': {\n return value\n }\n case 'object': {\n if (value === null) {\n return null\n }\n const newCycleList = cycleList ?? []\n newCycleList.push(value)\n if (Array.isArray(value)) {\n return toSafeJsonArray(value, newCycleList, maxDepth - 1)\n }\n return toSafeJsonObject(value, newCycleList, maxDepth - 1)\n }\n default: {\n return `[${typeof value}]`\n }\n }\n}\n\n/**\n * Converts a value to a pretty-printed JSON string, safely handling circular references and non-JSON types.\n * @param value - The value to serialize.\n * @param maxDepth - Maximum recursion depth.\n * @returns A formatted JSON string.\n */\nexport const toSafeJsonString = (value: unknown, maxDepth = 3) => {\n return JSON.stringify(toSafeJson(value, maxDepth), null, 2)\n}\n\n/**\n * Converts a value to a JSON-safe representation, handling circular references and non-serializable types.\n * @param value - The value to convert.\n * @param maxDepth - Maximum recursion depth.\n * @returns A JSON-safe value.\n */\nexport const toSafeJson = (value: unknown, maxDepth = 3): JsonValue => {\n return toSafeJsonValue(value, undefined, maxDepth)\n}\n", "import type { AnyObject } from '#object-model'\nimport type { Promisable } from '#promise'\n\nimport type { EmptyObject } from './EmptyObject.ts'\nimport { ObjectWrapper } from './ObjectWrapper.ts'\n\n/** Interface for validating objects and returning any errors found. */\nexport interface Validator<T extends EmptyObject = AnyObject> {\n validate(payload: T): Promisable<Error[]>\n}\n\n/** Abstract base class for validators that wraps a partial object and provides a validation method. */\nexport abstract class ValidatorBase<T extends EmptyObject = AnyObject> extends ObjectWrapper<Partial<T>> implements Validator<T> {\n abstract validate(payload: T): Promisable<Error[]>\n}\n", "/** A record of named timing entries, where each key maps to an array of timestamps. */\nexport type Profiler = Record<string, number[]>\n\n/** Creates a new empty profiler instance. */\nexport const createProfiler = (): Profiler => {\n return {}\n}\n\n/**\n * Records a timestamp for the given profile name.\n * @param profiler - The profiler instance to record into.\n * @param name - The name of the timing entry.\n */\nexport const profile = (profiler: Profiler, name: string) => {\n const timeData = profiler[name] ?? []\n timeData.push(Date.now())\n profiler[name] = timeData\n}\n\n/**\n * Generates a report of elapsed times for each profiled entry.\n * @param profiler - The profiler instance to report on.\n * @returns A record mapping each profile name to its elapsed time in milliseconds, plus a '-all-' total.\n */\nexport const profileReport = (profiler: Profiler) => {\n let lowest = Date.now()\n let highest = 0\n // eslint-disable-next-line unicorn/no-array-reduce\n const results = Object.entries(profiler).reduce<Record<string, number>>((prev, [name, readings]) => {\n const start = readings.at(0)\n if (start !== undefined) {\n if (start < lowest) {\n lowest = start\n }\n const end = readings.at(-1) ?? Date.now()\n if (end > highest) {\n highest = end\n }\n prev[name] = end - start\n }\n return prev\n }, {})\n if (highest > 0) {\n results['-all-'] = highest - lowest\n }\n return results\n}\n", "/**\n * For use with Promise.allSettled to filter only successful results\n * @param val\n * @returns\n */\nexport const fulfilled = <T>(val: PromiseSettledResult<T>): val is PromiseFulfilledResult<T> => {\n return val.status === 'fulfilled'\n}\n", "/**\n * For use with Promise.allSettled to reduce to only successful result values\n * @example <caption>Casting the initialValue provided to reduce</caption>\n * const resolved = Promise.resolve('resolved')\n * const rejected = Promise.reject('rejected')\n * const settled = await Promise.allSettled([resolved, rejected])\n * const results = settled.reduce(fulfilledValues, [] as string[])\n * // results === [ 'resolved' ]\n * @example <caption>Providing type parameter to reduce and initialValue type can be inferred</caption>\n * const resolved = Promise.resolve('resolved')\n * const rejected = Promise.reject('rejected')\n * const settled = await Promise.allSettled([resolved, rejected])\n * const results = settled.reduce<string[]>(fulfilledValues, [])\n * // results === [ 'resolved' ]\n * @param previousValue\n * @param currentValue\n * @returns\n */\nexport const fulfilledValues = <T>(previousValue: T[], currentValue: PromiseSettledResult<T>): T[] => {\n if (currentValue.status === 'fulfilled') previousValue.push(currentValue.value)\n return previousValue\n}\n", "/** A resolve/reject callback used within PromiseEx. */\nexport type PromiseExSubFunc<T, TResult = T> = (value: T) => TResult\n\n/** The executor function passed to the PromiseEx constructor. */\nexport type PromiseExFunc<T> = (resolve?: PromiseExSubFunc<T, void>, reject?: PromiseExSubFunc<T, void>) => void\n\n/** A callback that inspects the attached value and returns whether to cancel the promise. */\nexport type PromiseExValueFunc<V> = (value?: V) => boolean\n\n/**\n * An extended Promise that carries an optional attached value and supports cancellation.\n * The value can be inspected via the `then` or `value` methods to conditionally cancel.\n */\nexport class PromiseEx<T, V = void> extends Promise<T> {\n /** Whether the promise has been cancelled via a value callback. */\n cancelled?: boolean\n private _value?: V\n\n constructor(func: PromiseExFunc<T>, value?: V) {\n super(func)\n this._value = value\n }\n\n // eslint-disable-next-line unicorn/no-thenable\n override then<TResult1 = T, TResult2 = never>(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,\n onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null,\n onvalue?: (value?: V) => boolean,\n ): Promise<TResult1 | TResult2> {\n if (onvalue?.(this._value) === true) {\n this.cancelled = true\n }\n // eslint-disable-next-line unicorn/prefer-await -- Promise subclass must delegate to super.then()\n return super.then(onfulfilled, onrejected)\n }\n\n /**\n * Inspects the attached value via the callback; if it returns true, marks the promise as cancelled.\n * @param onvalue - A callback that receives the attached value and returns whether to cancel.\n * @returns This instance for chaining.\n */\n value(onvalue?: (value?: V) => boolean) {\n if (onvalue?.(this._value) === true) {\n this.cancelled = true\n }\n return this\n }\n}\n", "/**\n * For use with Promise.allSettled to filter only rejected results\n * @param val\n * @returns\n */\nexport const rejected = <T>(val: PromiseSettledResult<T>): val is PromiseRejectedResult => {\n return val.status === 'rejected'\n}\n", "import type { Promisable } from './types.ts'\n\n/**\n * Wraps a value in a Promise if it is not already one.\n * @param value - A value that may or may not be a Promise.\n * @returns A Promise resolving to the value.\n */\nexport function toPromise<T>(value: Promisable<T>): Promise<T> {\n return value instanceof Promise ? value : Promise.resolve(value)\n}\n", "import { delay } from '#delay'\nimport type { Promisable } from '#promise'\n\n/** Configuration for retry behavior. */\nexport interface RetryConfig {\n /** Multiplier applied to the interval after each retry. Defaults to 2. */\n backoff?: number\n /** Initial delay in milliseconds between retries. Defaults to 100. */\n interval?: number\n /** Maximum number of retry attempts. Defaults to 0 (no retries). */\n retries?: number\n}\n\n/** Retry configuration extended with a custom completion check. */\nexport interface RetryConfigWithComplete<T = unknown> extends RetryConfig {\n /** Determines whether the result is considered complete. Defaults to checking for a defined value. */\n complete?: (result?: T) => boolean\n}\n\n/**\n * Retries an async function with exponential backoff until it completes or retries are exhausted.\n * @param func - The function to retry.\n * @param config - Optional retry configuration including backoff, interval, retries, and completion check.\n * @returns The result of the function, or undefined if all retries were exhausted.\n */\nexport const retry = async <T = unknown>(func: () => Promisable<T | undefined>, config?: RetryConfigWithComplete<T>): Promise<T | undefined> => {\n const {\n complete = (value: T | undefined) => value !== undefined, retries = 0, interval = 100, backoff = 2,\n } = config ?? {}\n const result = await func()\n if (complete(result)) {\n return result\n }\n if (retries <= 0) {\n return undefined\n }\n await delay(interval)\n return retry(func, {\n backoff, complete, interval: interval * backoff, retries: retries - 1,\n })\n}\n", "/**\n * Returns a new set containing elements in `a` that are not in `b`.\n * @param a - The source set\n * @param b - The set of elements to exclude\n * @returns A new set representing the difference of `a` and `b`\n */\nexport const difference = <TKey>(a: Set<TKey>, b: Set<TKey>): Set<TKey> => {\n return a.difference(b)\n}\n", "/**\n * Returns a new set containing only elements present in both `a` and `b`.\n * @param a - The first set\n * @param b - The second set\n * @returns A new set representing the intersection of `a` and `b`\n */\nexport const intersection = <TKey>(a: Set<TKey>, b: Set<TKey>): Set<TKey> => {\n return a.intersection(b)\n}\n", "/**\n * Returns a new set containing all elements from both `a` and `b`.\n * @param a - The first set\n * @param b - The second set\n * @returns A new set representing the union of `a` and `b`\n */\nexport const union = <TKey>(a: Set<TKey>, b: Set<TKey>): Set<TKey> => {\n return a.union(b)\n}\n", "/**\n * Annotation to decorate classes which implement static methods\n * @returns The decorated class requiring it to implement\n * the members of the the type as static properties/methods\n */\nexport function staticImplements<T>() {\n return <U extends T>(constructor: U) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n constructor\n }\n}\n", "import type { ReadableSpan } from '@opentelemetry/sdk-trace-base'\nimport { ConsoleSpanExporter } from '@opentelemetry/sdk-trace-base'\n\nimport type { Logger } from '#logger'\n\ndeclare const console: Logger\n\ntype LogColor = (value: string) => string\n\nconst color = (open: number, close = 39): LogColor => {\n return (value: string) => `\\u{1B}[${open}m${value}\\u{1B}[${close}m`\n}\n\nconst logColors = {\n green: color(32),\n grey: color(90),\n magenta: color(35),\n red: color(31),\n white: color(37),\n yellow: color(33),\n}\n\n/**\n * Calculates the duration of a span in milliseconds from its high-resolution time tuple.\n * @param span - The span to measure.\n * @returns The span duration in milliseconds.\n */\nexport function spanDurationInMillis(span: ReadableSpan) {\n return span.duration[0] * 1000 + span.duration[1] / 1e6\n}\n\n/**\n * A console span exporter that formats spans with color-coded durations using chalk.\n * Spans are filtered by a configurable log level based on their duration.\n */\nexport class XyConsoleSpanExporter extends ConsoleSpanExporter {\n /** Duration thresholds (in ms) that map to increasing log levels. */\n static readonly durationToLogLevel = [\n 0,\n 1,\n 10,\n 100,\n 1000,\n ]\n\n /** Chalk color functions corresponding to each log level. */\n static readonly logLevelToChalkColor = [\n logColors.grey,\n logColors.white,\n logColors.green,\n logColors.yellow,\n logColors.red,\n ]\n\n logger: Logger\n private _logLevel: number\n\n constructor(logLevel = 0, logger: Logger = console) {\n super()\n this._logLevel = logLevel\n this.logger = logger\n }\n\n /** The minimum log level required for a span to be exported. */\n get logLevel() {\n return this._logLevel\n }\n\n override export(spans: ReadableSpan[]): void {\n for (const span of spans) {\n const spanLevel = this.spanLevel(span)\n if (spanLevel < this.logLevel) {\n continue\n }\n const duration = spanDurationInMillis(span)\n this.logger.log(logColors.grey([\n `Span [${span.name}]`,\n this.logColor(spanLevel)(`${duration}ms`),\n `TraceId: ${span.spanContext().traceId}`,\n ].join(', ')))\n }\n }\n\n /**\n * Returns the chalk color function for the given log level.\n * @param level - The log level index.\n * @returns A chalk color function.\n */\n logColor(level: number) {\n return XyConsoleSpanExporter.logLevelToChalkColor[level] ?? logColors.magenta\n }\n\n /**\n * Determines the log level of a span based on its duration.\n * @param span - The span to evaluate.\n * @returns The numeric log level (index into durationToLogLevel).\n */\n spanLevel(span: ReadableSpan) {\n let logLevel = 0\n const duration = spanDurationInMillis(span)\n for (let x = XyConsoleSpanExporter.durationToLogLevel.length - 1; x >= 0; x--) {\n if (duration > XyConsoleSpanExporter.durationToLogLevel[x]) {\n logLevel = x\n break\n }\n }\n return logLevel\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["context", "context", "buildHeaders", "array", "array", "z", "z", "regex", "z", "z", "z", "z", "z", "delay", "resolvedPromise", "eventName", "duration", "span", "creatable", "functionName", "getFunctionName", "deepMerge", "z", "z", "z", "z", "formatZodValue", "union", "span"]
|
|
7
|
+
}
|