@adviser/cement 0.4.62 → 0.4.64-dev
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/cjs/app-context.cjs.map +1 -1
- package/cjs/app-context.d.ts.map +1 -1
- package/cjs/base-sys-abstraction.cjs.map +1 -1
- package/cjs/base-sys-abstraction.d.ts.map +1 -1
- package/cjs/bin2text.cjs.map +1 -1
- package/cjs/bin2text.d.ts.map +1 -1
- package/cjs/coerce-binary.cjs.map +1 -1
- package/cjs/coerce-binary.d.ts.map +1 -1
- package/cjs/crypto.cjs.map +1 -1
- package/cjs/crypto.d.ts.map +1 -1
- package/cjs/future.cjs.map +1 -1
- package/cjs/future.d.ts.map +1 -1
- package/cjs/http_header.cjs.map +1 -1
- package/cjs/http_header.d.ts.map +1 -1
- package/cjs/index.cjs +1 -0
- package/cjs/index.cjs.map +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.d.ts.map +1 -1
- package/cjs/is-json.cjs.map +1 -1
- package/cjs/is-json.d.ts.map +1 -1
- package/cjs/is-promise.cjs.map +1 -1
- package/cjs/is-promise.d.ts.map +1 -1
- package/cjs/keyed-ng.cjs +93 -0
- package/cjs/keyed-ng.cjs.map +1 -0
- package/cjs/keyed-ng.d.ts +51 -0
- package/cjs/keyed-ng.d.ts.map +1 -0
- package/cjs/keyed-ng.test.cjs +151 -0
- package/cjs/keyed-ng.test.cjs.map +1 -0
- package/cjs/keyed-ng.test.d.ts +2 -0
- package/cjs/keyed-ng.test.d.ts.map +1 -0
- package/cjs/lru-map-set.cjs +2 -1
- package/cjs/lru-map-set.cjs.map +1 -1
- package/cjs/lru-map-set.d.ts +4 -1
- package/cjs/lru-map-set.d.ts.map +1 -1
- package/cjs/on-func.cjs.map +1 -1
- package/cjs/on-func.d.ts.map +1 -1
- package/cjs/option.cjs.map +1 -1
- package/cjs/option.d.ts.map +1 -1
- package/cjs/poller.cjs +8 -3
- package/cjs/poller.cjs.map +1 -1
- package/cjs/poller.d.ts +9 -2
- package/cjs/poller.d.ts.map +1 -1
- package/cjs/promise-sleep.cjs.map +1 -1
- package/cjs/promise-sleep.d.ts.map +1 -1
- package/cjs/resolve-once.cjs +84 -43
- package/cjs/resolve-once.cjs.map +1 -1
- package/cjs/resolve-once.d.ts +31 -34
- package/cjs/resolve-once.d.ts.map +1 -1
- package/cjs/resolve-once.test.cjs +119 -31
- package/cjs/resolve-once.test.cjs.map +1 -1
- package/cjs/result.cjs.map +1 -1
- package/cjs/result.d.ts.map +1 -1
- package/cjs/runtime.cjs.map +1 -1
- package/cjs/runtime.d.ts.map +1 -1
- package/cjs/sys-env.cjs.map +1 -1
- package/cjs/sys-env.d.ts.map +1 -1
- package/cjs/timeouted.cjs.map +1 -1
- package/cjs/timeouted.d.ts.map +1 -1
- package/cjs/tracer.cjs.map +1 -1
- package/cjs/tracer.d.ts.map +1 -1
- package/cjs/txt-en-decoder.cjs +2 -5
- package/cjs/txt-en-decoder.cjs.map +1 -1
- package/cjs/txt-en-decoder.d.ts +1 -1
- package/cjs/txt-en-decoder.d.ts.map +1 -1
- package/cjs/uri.cjs.map +1 -1
- package/cjs/uri.d.ts.map +1 -1
- package/cjs/utils/coerce-uint8.cjs.map +1 -1
- package/cjs/utils/coerce-uint8.d.ts.map +1 -1
- package/cjs/utils/console-write-stream.cjs.map +1 -1
- package/cjs/utils/console-write-stream.d.ts.map +1 -1
- package/cjs/utils/consume.cjs.map +1 -1
- package/cjs/utils/consume.d.ts.map +1 -1
- package/cjs/utils/fanout-write-stream.cjs.map +1 -1
- package/cjs/utils/fanout-write-stream.d.ts.map +1 -1
- package/cjs/utils/get-params-result.cjs.map +1 -1
- package/cjs/utils/get-params-result.d.ts.map +1 -1
- package/cjs/utils/rebuffer.cjs.map +1 -1
- package/cjs/utils/rebuffer.d.ts.map +1 -1
- package/cjs/utils/relative-path.cjs.map +1 -1
- package/cjs/utils/relative-path.d.ts.map +1 -1
- package/cjs/utils/sorted-object.cjs.map +1 -1
- package/cjs/utils/sorted-object.d.ts.map +1 -1
- package/cjs/utils/stream-map.cjs.map +1 -1
- package/cjs/utils/stream-map.d.ts.map +1 -1
- package/cjs/utils/stream2string.cjs.map +1 -1
- package/cjs/utils/stream2string.d.ts.map +1 -1
- package/cjs/utils/string2stream.cjs.map +1 -1
- package/cjs/utils/string2stream.d.ts.map +1 -1
- package/cjs/utils/stripper.cjs.map +1 -1
- package/cjs/utils/stripper.d.ts.map +1 -1
- package/cjs/utils/to-sorted.cjs.map +1 -1
- package/cjs/utils/to-sorted.d.ts.map +1 -1
- package/cjs/utils/uint8array-equal.cjs.map +1 -1
- package/cjs/utils/uint8array-equal.d.ts.map +1 -1
- package/cjs/version.cjs +1 -1
- package/cjs/version.cjs.map +1 -1
- package/cjs/version.d.ts.map +1 -1
- package/deno.json +1 -1
- package/esm/app-context.d.ts.map +1 -1
- package/esm/app-context.js.map +1 -1
- package/esm/base-sys-abstraction.d.ts.map +1 -1
- package/esm/base-sys-abstraction.js.map +1 -1
- package/esm/bin2text.d.ts.map +1 -1
- package/esm/bin2text.js.map +1 -1
- package/esm/coerce-binary.d.ts.map +1 -1
- package/esm/coerce-binary.js.map +1 -1
- package/esm/crypto.d.ts.map +1 -1
- package/esm/crypto.js.map +1 -1
- package/esm/future.d.ts.map +1 -1
- package/esm/future.js.map +1 -1
- package/esm/http_header.d.ts.map +1 -1
- package/esm/http_header.js.map +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/is-json.d.ts.map +1 -1
- package/esm/is-json.js.map +1 -1
- package/esm/is-promise.d.ts.map +1 -1
- package/esm/is-promise.js.map +1 -1
- package/esm/keyed-ng.d.ts +51 -0
- package/esm/keyed-ng.d.ts.map +1 -0
- package/esm/keyed-ng.js +89 -0
- package/esm/keyed-ng.js.map +1 -0
- package/esm/keyed-ng.test.d.ts +2 -0
- package/esm/keyed-ng.test.d.ts.map +1 -0
- package/esm/keyed-ng.test.js +149 -0
- package/esm/keyed-ng.test.js.map +1 -0
- package/esm/lru-map-set.d.ts +4 -1
- package/esm/lru-map-set.d.ts.map +1 -1
- package/esm/lru-map-set.js +2 -1
- package/esm/lru-map-set.js.map +1 -1
- package/esm/on-func.d.ts.map +1 -1
- package/esm/on-func.js.map +1 -1
- package/esm/option.d.ts.map +1 -1
- package/esm/option.js.map +1 -1
- package/esm/poller.d.ts +9 -2
- package/esm/poller.d.ts.map +1 -1
- package/esm/poller.js +8 -3
- package/esm/poller.js.map +1 -1
- package/esm/promise-sleep.d.ts.map +1 -1
- package/esm/promise-sleep.js.map +1 -1
- package/esm/resolve-once.d.ts +31 -34
- package/esm/resolve-once.d.ts.map +1 -1
- package/esm/resolve-once.js +83 -41
- package/esm/resolve-once.js.map +1 -1
- package/esm/resolve-once.test.js +119 -31
- package/esm/resolve-once.test.js.map +1 -1
- package/esm/result.d.ts.map +1 -1
- package/esm/result.js.map +1 -1
- package/esm/runtime.d.ts.map +1 -1
- package/esm/runtime.js.map +1 -1
- package/esm/sys-env.d.ts.map +1 -1
- package/esm/sys-env.js.map +1 -1
- package/esm/timeouted.d.ts.map +1 -1
- package/esm/timeouted.js.map +1 -1
- package/esm/tracer.d.ts.map +1 -1
- package/esm/tracer.js.map +1 -1
- package/esm/txt-en-decoder.d.ts +1 -1
- package/esm/txt-en-decoder.d.ts.map +1 -1
- package/esm/txt-en-decoder.js +2 -5
- package/esm/txt-en-decoder.js.map +1 -1
- package/esm/uri.d.ts.map +1 -1
- package/esm/uri.js.map +1 -1
- package/esm/utils/coerce-uint8.d.ts.map +1 -1
- package/esm/utils/coerce-uint8.js.map +1 -1
- package/esm/utils/console-write-stream.d.ts.map +1 -1
- package/esm/utils/console-write-stream.js.map +1 -1
- package/esm/utils/consume.d.ts.map +1 -1
- package/esm/utils/consume.js.map +1 -1
- package/esm/utils/fanout-write-stream.d.ts.map +1 -1
- package/esm/utils/fanout-write-stream.js.map +1 -1
- package/esm/utils/get-params-result.d.ts.map +1 -1
- package/esm/utils/get-params-result.js.map +1 -1
- package/esm/utils/rebuffer.d.ts.map +1 -1
- package/esm/utils/rebuffer.js.map +1 -1
- package/esm/utils/relative-path.d.ts.map +1 -1
- package/esm/utils/relative-path.js.map +1 -1
- package/esm/utils/sorted-object.d.ts.map +1 -1
- package/esm/utils/sorted-object.js.map +1 -1
- package/esm/utils/stream-map.d.ts.map +1 -1
- package/esm/utils/stream-map.js.map +1 -1
- package/esm/utils/stream2string.d.ts.map +1 -1
- package/esm/utils/stream2string.js.map +1 -1
- package/esm/utils/string2stream.d.ts.map +1 -1
- package/esm/utils/string2stream.js.map +1 -1
- package/esm/utils/stripper.d.ts.map +1 -1
- package/esm/utils/stripper.js.map +1 -1
- package/esm/utils/to-sorted.d.ts.map +1 -1
- package/esm/utils/to-sorted.js.map +1 -1
- package/esm/utils/uint8array-equal.d.ts.map +1 -1
- package/esm/utils/uint8array-equal.js.map +1 -1
- package/esm/version.d.ts.map +1 -1
- package/esm/version.js +1 -1
- package/esm/version.js.map +1 -1
- package/package.json +7 -4
- package/src/app-context.ts +111 -5
- package/src/base-sys-abstraction.ts +244 -0
- package/src/bin2text.ts +37 -0
- package/src/coerce-binary.ts +41 -0
- package/src/crypto.ts +35 -0
- package/src/future.ts +45 -1
- package/src/http_header.ts +277 -1
- package/src/index.ts +1 -0
- package/src/is-json.ts +21 -0
- package/src/is-promise.ts +26 -0
- package/src/keyed-ng.ts +628 -0
- package/src/lru-map-set.ts +52 -2
- package/src/on-func.ts +38 -0
- package/src/option.ts +27 -0
- package/src/poller.ts +65 -17
- package/src/promise-sleep.ts +32 -4
- package/src/resolve-once.ts +596 -93
- package/src/result.ts +50 -0
- package/src/runtime.ts +75 -2
- package/src/sys-env.ts +57 -0
- package/src/timeouted.ts +92 -0
- package/src/tracer.ts +41 -0
- package/src/txt-en-decoder.ts +2 -5
- package/src/uri.ts +76 -4
- package/src/utils/coerce-uint8.ts +60 -0
- package/src/utils/console-write-stream.ts +34 -0
- package/src/utils/consume.ts +106 -0
- package/src/utils/fanout-write-stream.ts +45 -0
- package/src/utils/get-params-result.ts +37 -0
- package/src/utils/rebuffer.ts +42 -0
- package/src/utils/relative-path.ts +108 -0
- package/src/utils/sorted-object.ts +50 -0
- package/src/utils/stream-map.ts +90 -0
- package/src/utils/stream2string.ts +35 -0
- package/src/utils/string2stream.ts +30 -0
- package/src/utils/stripper.ts +34 -0
- package/src/utils/to-sorted.ts +34 -0
- package/src/utils/uint8array-equal.ts +20 -0
- package/ts/cjs/app-context.d.ts.map +1 -1
- package/ts/cjs/app-context.js.map +1 -1
- package/ts/cjs/base-sys-abstraction.d.ts.map +1 -1
- package/ts/cjs/base-sys-abstraction.js.map +1 -1
- package/ts/cjs/bin2text.d.ts.map +1 -1
- package/ts/cjs/bin2text.js.map +1 -1
- package/ts/cjs/coerce-binary.d.ts.map +1 -1
- package/ts/cjs/coerce-binary.js.map +1 -1
- package/ts/cjs/crypto.d.ts.map +1 -1
- package/ts/cjs/crypto.js.map +1 -1
- package/ts/cjs/future.d.ts.map +1 -1
- package/ts/cjs/future.js.map +1 -1
- package/ts/cjs/http_header.d.ts.map +1 -1
- package/ts/cjs/http_header.js.map +1 -1
- package/ts/cjs/index.d.ts +1 -0
- package/ts/cjs/index.d.ts.map +1 -1
- package/ts/cjs/index.js +1 -0
- package/ts/cjs/index.js.map +1 -1
- package/ts/cjs/is-json.d.ts.map +1 -1
- package/ts/cjs/is-json.js.map +1 -1
- package/ts/cjs/is-promise.d.ts.map +1 -1
- package/ts/cjs/is-promise.js.map +1 -1
- package/ts/cjs/keyed-ng.d.ts +51 -0
- package/ts/cjs/keyed-ng.d.ts.map +1 -0
- package/ts/cjs/keyed-ng.js +93 -0
- package/ts/cjs/keyed-ng.js.map +1 -0
- package/ts/cjs/keyed-ng.test.d.ts +2 -0
- package/ts/cjs/keyed-ng.test.d.ts.map +1 -0
- package/ts/cjs/keyed-ng.test.js +151 -0
- package/ts/cjs/keyed-ng.test.js.map +1 -0
- package/ts/cjs/lru-map-set.d.ts +4 -1
- package/ts/cjs/lru-map-set.d.ts.map +1 -1
- package/ts/cjs/lru-map-set.js +2 -1
- package/ts/cjs/lru-map-set.js.map +1 -1
- package/ts/cjs/on-func.d.ts.map +1 -1
- package/ts/cjs/on-func.js.map +1 -1
- package/ts/cjs/option.d.ts.map +1 -1
- package/ts/cjs/option.js.map +1 -1
- package/ts/cjs/poller.d.ts +9 -2
- package/ts/cjs/poller.d.ts.map +1 -1
- package/ts/cjs/poller.js +8 -3
- package/ts/cjs/poller.js.map +1 -1
- package/ts/cjs/promise-sleep.d.ts.map +1 -1
- package/ts/cjs/promise-sleep.js.map +1 -1
- package/ts/cjs/resolve-once.d.ts +31 -34
- package/ts/cjs/resolve-once.d.ts.map +1 -1
- package/ts/cjs/resolve-once.js +84 -43
- package/ts/cjs/resolve-once.js.map +1 -1
- package/ts/cjs/resolve-once.test.js +119 -31
- package/ts/cjs/resolve-once.test.js.map +1 -1
- package/ts/cjs/result.d.ts.map +1 -1
- package/ts/cjs/result.js.map +1 -1
- package/ts/cjs/runtime.d.ts.map +1 -1
- package/ts/cjs/runtime.js.map +1 -1
- package/ts/cjs/sys-env.d.ts.map +1 -1
- package/ts/cjs/sys-env.js.map +1 -1
- package/ts/cjs/timeouted.d.ts.map +1 -1
- package/ts/cjs/timeouted.js.map +1 -1
- package/ts/cjs/tracer.d.ts.map +1 -1
- package/ts/cjs/tracer.js.map +1 -1
- package/ts/cjs/txt-en-decoder.d.ts +1 -1
- package/ts/cjs/txt-en-decoder.d.ts.map +1 -1
- package/ts/cjs/txt-en-decoder.js +2 -5
- package/ts/cjs/txt-en-decoder.js.map +1 -1
- package/ts/cjs/uri.d.ts.map +1 -1
- package/ts/cjs/uri.js.map +1 -1
- package/ts/cjs/utils/coerce-uint8.d.ts.map +1 -1
- package/ts/cjs/utils/coerce-uint8.js.map +1 -1
- package/ts/cjs/utils/console-write-stream.d.ts.map +1 -1
- package/ts/cjs/utils/console-write-stream.js.map +1 -1
- package/ts/cjs/utils/consume.d.ts.map +1 -1
- package/ts/cjs/utils/consume.js.map +1 -1
- package/ts/cjs/utils/fanout-write-stream.d.ts.map +1 -1
- package/ts/cjs/utils/fanout-write-stream.js.map +1 -1
- package/ts/cjs/utils/get-params-result.d.ts.map +1 -1
- package/ts/cjs/utils/get-params-result.js.map +1 -1
- package/ts/cjs/utils/rebuffer.d.ts.map +1 -1
- package/ts/cjs/utils/rebuffer.js.map +1 -1
- package/ts/cjs/utils/relative-path.d.ts.map +1 -1
- package/ts/cjs/utils/relative-path.js.map +1 -1
- package/ts/cjs/utils/sorted-object.d.ts.map +1 -1
- package/ts/cjs/utils/sorted-object.js.map +1 -1
- package/ts/cjs/utils/stream-map.d.ts.map +1 -1
- package/ts/cjs/utils/stream-map.js.map +1 -1
- package/ts/cjs/utils/stream2string.d.ts.map +1 -1
- package/ts/cjs/utils/stream2string.js.map +1 -1
- package/ts/cjs/utils/string2stream.d.ts.map +1 -1
- package/ts/cjs/utils/string2stream.js.map +1 -1
- package/ts/cjs/utils/stripper.d.ts.map +1 -1
- package/ts/cjs/utils/stripper.js.map +1 -1
- package/ts/cjs/utils/to-sorted.d.ts.map +1 -1
- package/ts/cjs/utils/to-sorted.js.map +1 -1
- package/ts/cjs/utils/uint8array-equal.d.ts.map +1 -1
- package/ts/cjs/utils/uint8array-equal.js.map +1 -1
- package/ts/cjs/version.d.ts.map +1 -1
- package/ts/cjs/version.js +1 -1
- package/ts/cjs/version.js.map +1 -1
- package/ts/esm/app-context.d.ts.map +1 -1
- package/ts/esm/app-context.js.map +1 -1
- package/ts/esm/base-sys-abstraction.d.ts.map +1 -1
- package/ts/esm/base-sys-abstraction.js.map +1 -1
- package/ts/esm/bin2text.d.ts.map +1 -1
- package/ts/esm/bin2text.js.map +1 -1
- package/ts/esm/coerce-binary.d.ts.map +1 -1
- package/ts/esm/coerce-binary.js.map +1 -1
- package/ts/esm/crypto.d.ts.map +1 -1
- package/ts/esm/crypto.js.map +1 -1
- package/ts/esm/future.d.ts.map +1 -1
- package/ts/esm/future.js.map +1 -1
- package/ts/esm/http_header.d.ts.map +1 -1
- package/ts/esm/http_header.js.map +1 -1
- package/ts/esm/index.d.ts +1 -0
- package/ts/esm/index.d.ts.map +1 -1
- package/ts/esm/index.js +1 -0
- package/ts/esm/index.js.map +1 -1
- package/ts/esm/is-json.d.ts.map +1 -1
- package/ts/esm/is-json.js.map +1 -1
- package/ts/esm/is-promise.d.ts.map +1 -1
- package/ts/esm/is-promise.js.map +1 -1
- package/ts/esm/keyed-ng.d.ts +51 -0
- package/ts/esm/keyed-ng.d.ts.map +1 -0
- package/ts/esm/keyed-ng.js +89 -0
- package/ts/esm/keyed-ng.js.map +1 -0
- package/ts/esm/keyed-ng.test.d.ts +2 -0
- package/ts/esm/keyed-ng.test.d.ts.map +1 -0
- package/ts/esm/keyed-ng.test.js +149 -0
- package/ts/esm/keyed-ng.test.js.map +1 -0
- package/ts/esm/lru-map-set.d.ts +4 -1
- package/ts/esm/lru-map-set.d.ts.map +1 -1
- package/ts/esm/lru-map-set.js +2 -1
- package/ts/esm/lru-map-set.js.map +1 -1
- package/ts/esm/on-func.d.ts.map +1 -1
- package/ts/esm/on-func.js.map +1 -1
- package/ts/esm/option.d.ts.map +1 -1
- package/ts/esm/option.js.map +1 -1
- package/ts/esm/poller.d.ts +9 -2
- package/ts/esm/poller.d.ts.map +1 -1
- package/ts/esm/poller.js +8 -3
- package/ts/esm/poller.js.map +1 -1
- package/ts/esm/promise-sleep.d.ts.map +1 -1
- package/ts/esm/promise-sleep.js.map +1 -1
- package/ts/esm/resolve-once.d.ts +31 -34
- package/ts/esm/resolve-once.d.ts.map +1 -1
- package/ts/esm/resolve-once.js +83 -41
- package/ts/esm/resolve-once.js.map +1 -1
- package/ts/esm/resolve-once.test.js +119 -31
- package/ts/esm/resolve-once.test.js.map +1 -1
- package/ts/esm/result.d.ts.map +1 -1
- package/ts/esm/result.js.map +1 -1
- package/ts/esm/runtime.d.ts.map +1 -1
- package/ts/esm/runtime.js.map +1 -1
- package/ts/esm/sys-env.d.ts.map +1 -1
- package/ts/esm/sys-env.js.map +1 -1
- package/ts/esm/timeouted.d.ts.map +1 -1
- package/ts/esm/timeouted.js.map +1 -1
- package/ts/esm/tracer.d.ts.map +1 -1
- package/ts/esm/tracer.js.map +1 -1
- package/ts/esm/txt-en-decoder.d.ts +1 -1
- package/ts/esm/txt-en-decoder.d.ts.map +1 -1
- package/ts/esm/txt-en-decoder.js +2 -5
- package/ts/esm/txt-en-decoder.js.map +1 -1
- package/ts/esm/uri.d.ts.map +1 -1
- package/ts/esm/uri.js.map +1 -1
- package/ts/esm/utils/coerce-uint8.d.ts.map +1 -1
- package/ts/esm/utils/coerce-uint8.js.map +1 -1
- package/ts/esm/utils/console-write-stream.d.ts.map +1 -1
- package/ts/esm/utils/console-write-stream.js.map +1 -1
- package/ts/esm/utils/consume.d.ts.map +1 -1
- package/ts/esm/utils/consume.js.map +1 -1
- package/ts/esm/utils/fanout-write-stream.d.ts.map +1 -1
- package/ts/esm/utils/fanout-write-stream.js.map +1 -1
- package/ts/esm/utils/get-params-result.d.ts.map +1 -1
- package/ts/esm/utils/get-params-result.js.map +1 -1
- package/ts/esm/utils/rebuffer.d.ts.map +1 -1
- package/ts/esm/utils/rebuffer.js.map +1 -1
- package/ts/esm/utils/relative-path.d.ts.map +1 -1
- package/ts/esm/utils/relative-path.js.map +1 -1
- package/ts/esm/utils/sorted-object.d.ts.map +1 -1
- package/ts/esm/utils/sorted-object.js.map +1 -1
- package/ts/esm/utils/stream-map.d.ts.map +1 -1
- package/ts/esm/utils/stream-map.js.map +1 -1
- package/ts/esm/utils/stream2string.d.ts.map +1 -1
- package/ts/esm/utils/stream2string.js.map +1 -1
- package/ts/esm/utils/string2stream.d.ts.map +1 -1
- package/ts/esm/utils/string2stream.js.map +1 -1
- package/ts/esm/utils/stripper.d.ts.map +1 -1
- package/ts/esm/utils/stripper.js.map +1 -1
- package/ts/esm/utils/to-sorted.d.ts.map +1 -1
- package/ts/esm/utils/to-sorted.js.map +1 -1
- package/ts/esm/utils/uint8array-equal.d.ts.map +1 -1
- package/ts/esm/utils/uint8array-equal.js.map +1 -1
- package/ts/esm/version.d.ts.map +1 -1
- package/ts/esm/version.js +1 -1
- package/ts/esm/version.js.map +1 -1
package/src/http_header.ts
CHANGED
|
@@ -84,9 +84,42 @@ function hasForEach(unk: unknown): unk is HeaderForeach {
|
|
|
84
84
|
return typeof (unk as Headers).forEach == "function";
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
+
/**
|
|
88
|
+
* HTTP header container with multi-value support and type-safe operations.
|
|
89
|
+
*
|
|
90
|
+
* HttpHeader provides a comprehensive API for managing HTTP headers with
|
|
91
|
+
* support for multiple values per header name. All header names are normalized
|
|
92
|
+
* to lowercase for case-insensitive comparison. Supports conversion to/from
|
|
93
|
+
* various formats including native Headers, plain objects, and arrays.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* const headers = new HttpHeader();
|
|
98
|
+
* headers.Add('Content-Type', 'application/json');
|
|
99
|
+
* headers.Add('Accept', ['application/json', 'text/html']);
|
|
100
|
+
*
|
|
101
|
+
* const value = headers.Get('content-type'); // Case-insensitive
|
|
102
|
+
* const allAccept = headers.Values('accept'); // ['application/json', 'text/html']
|
|
103
|
+
*
|
|
104
|
+
* // Merge multiple header sources
|
|
105
|
+
* const merged = HttpHeader.from(
|
|
106
|
+
* { 'User-Agent': 'MyApp/1.0' },
|
|
107
|
+
* new Headers({ 'Authorization': 'Bearer token' })
|
|
108
|
+
* );
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
87
111
|
export class HttpHeader {
|
|
88
112
|
readonly _headers: Map<string, Set<string>> = new Map<string, Set<string>>();
|
|
89
113
|
|
|
114
|
+
/**
|
|
115
|
+
* Converts various header formats to HttpHeader instance.
|
|
116
|
+
*
|
|
117
|
+
* Accepts Headers, arrays, objects, or existing HttpHeader instances.
|
|
118
|
+
* Automatically handles comma-separated values and normalizes header names.
|
|
119
|
+
*
|
|
120
|
+
* @param headers - Headers in any supported format
|
|
121
|
+
* @returns HttpHeader instance
|
|
122
|
+
*/
|
|
90
123
|
static coerce(headers: CoercedHeadersInit): HttpHeader {
|
|
91
124
|
if (headers instanceof HttpHeader) {
|
|
92
125
|
return headers;
|
|
@@ -123,6 +156,22 @@ export class HttpHeader {
|
|
|
123
156
|
}
|
|
124
157
|
return h;
|
|
125
158
|
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Creates HttpHeader by merging multiple header sources.
|
|
162
|
+
*
|
|
163
|
+
* @param headersArgs - One or more header sources to merge
|
|
164
|
+
* @returns New HttpHeader with all headers merged
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```typescript
|
|
168
|
+
* const headers = HttpHeader.from(
|
|
169
|
+
* { 'Content-Type': 'application/json' },
|
|
170
|
+
* new Headers({ 'Authorization': 'Bearer token' }),
|
|
171
|
+
* [['X-Custom', 'value']]
|
|
172
|
+
* );
|
|
173
|
+
* ```
|
|
174
|
+
*/
|
|
126
175
|
static from(...headersArgs: CoercedHeadersInit[]): HttpHeader {
|
|
127
176
|
return headersArgs.map((headers) => HttpHeader.coerce(headers)).reduce((acc, cur) => acc.MergeInplace(cur), new HttpHeader());
|
|
128
177
|
}
|
|
@@ -138,10 +187,24 @@ export class HttpHeader {
|
|
|
138
187
|
_key(key: string): string {
|
|
139
188
|
return key.toLowerCase();
|
|
140
189
|
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Gets all values for a header (case-insensitive).
|
|
193
|
+
*
|
|
194
|
+
* @param key - Header name
|
|
195
|
+
* @returns Array of all values for the header
|
|
196
|
+
*/
|
|
141
197
|
Values(key: string): string[] {
|
|
142
198
|
const values = this._headers.get(this._key(key));
|
|
143
199
|
return values ? Array.from(values) : [];
|
|
144
200
|
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Gets the first value for a header (case-insensitive).
|
|
204
|
+
*
|
|
205
|
+
* @param key - Header name
|
|
206
|
+
* @returns First value or undefined if not present
|
|
207
|
+
*/
|
|
145
208
|
Get(key: string): string | undefined {
|
|
146
209
|
const values = this._headers.get(this._key(key));
|
|
147
210
|
if (values === undefined || values.size === 0) {
|
|
@@ -149,6 +212,14 @@ export class HttpHeader {
|
|
|
149
212
|
}
|
|
150
213
|
return values.values().next().value as string;
|
|
151
214
|
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Sets a header, replacing any existing values.
|
|
218
|
+
*
|
|
219
|
+
* @param key - Header name
|
|
220
|
+
* @param valueOr - Single value or array of values
|
|
221
|
+
* @returns This HttpHeader instance for chaining
|
|
222
|
+
*/
|
|
152
223
|
Set(key: string, valueOr: string | string[]): HttpHeader {
|
|
153
224
|
const value = new Set((Array.isArray(valueOr) ? valueOr : [valueOr]).map((v) => v.trim()).filter((v) => v !== ""));
|
|
154
225
|
if (value.size > 0) {
|
|
@@ -158,6 +229,14 @@ export class HttpHeader {
|
|
|
158
229
|
}
|
|
159
230
|
return this;
|
|
160
231
|
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Adds value(s) to a header, preserving existing values.
|
|
235
|
+
*
|
|
236
|
+
* @param key - Header name
|
|
237
|
+
* @param value - Single value, array of values, or undefined
|
|
238
|
+
* @returns This HttpHeader instance for chaining
|
|
239
|
+
*/
|
|
161
240
|
Add(key: string, value: string | string[] | undefined): HttpHeader {
|
|
162
241
|
if (typeof value === "undefined") {
|
|
163
242
|
return this;
|
|
@@ -176,18 +255,88 @@ export class HttpHeader {
|
|
|
176
255
|
}, values);
|
|
177
256
|
return this;
|
|
178
257
|
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Deletes a header.
|
|
261
|
+
*
|
|
262
|
+
* @param ey - Header name to delete
|
|
263
|
+
* @returns This HttpHeader instance for chaining
|
|
264
|
+
*/
|
|
179
265
|
Del(ey: string): HttpHeader {
|
|
180
266
|
this._headers.delete(this._key(ey));
|
|
181
267
|
return this;
|
|
182
268
|
}
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Returns all headers as key-value array pairs.
|
|
272
|
+
*
|
|
273
|
+
* Each entry is a tuple of [headerName, values[]] where headerName is
|
|
274
|
+
* lowercase and values is an array of all values for that header.
|
|
275
|
+
* Headers with no values are excluded.
|
|
276
|
+
*
|
|
277
|
+
* @returns Array of [name, values] tuples
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
280
|
+
* ```typescript
|
|
281
|
+
* const headers = new HttpHeader();
|
|
282
|
+
* headers.Add('Accept', ['application/json', 'text/html']);
|
|
283
|
+
* headers.Add('Content-Type', 'application/json');
|
|
284
|
+
*
|
|
285
|
+
* const items = headers.Items();
|
|
286
|
+
* // [
|
|
287
|
+
* // ['accept', ['application/json', 'text/html']],
|
|
288
|
+
* // ['content-type', ['application/json']]
|
|
289
|
+
* // ]
|
|
290
|
+
* ```
|
|
291
|
+
*/
|
|
183
292
|
Items(): [string, string[]][] {
|
|
184
293
|
return Array.from(this._headers)
|
|
185
294
|
.filter(([_, vs]) => vs.size > 0)
|
|
186
295
|
.map(([k, vs]) => [k, Array.from(vs)]);
|
|
187
296
|
}
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* Returns all headers as sorted key-value array pairs.
|
|
300
|
+
*
|
|
301
|
+
* Same as Items() but sorted alphabetically by header name.
|
|
302
|
+
*
|
|
303
|
+
* @returns Array of [name, values] tuples sorted by name
|
|
304
|
+
*
|
|
305
|
+
* @example
|
|
306
|
+
* ```typescript
|
|
307
|
+
* const headers = new HttpHeader();
|
|
308
|
+
* headers.Add('Content-Type', 'application/json');
|
|
309
|
+
* headers.Add('Accept', 'text/html');
|
|
310
|
+
*
|
|
311
|
+
* const sorted = headers.SortItems();
|
|
312
|
+
* // [
|
|
313
|
+
* // ['accept', ['text/html']],
|
|
314
|
+
* // ['content-type', ['application/json']]
|
|
315
|
+
* // ]
|
|
316
|
+
* ```
|
|
317
|
+
*/
|
|
188
318
|
SortItems(): [string, string[]][] {
|
|
189
319
|
return this.Items().sort(([[a]], [[b]]) => a.localeCompare(b));
|
|
190
320
|
}
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* Creates a deep copy of the HttpHeader instance.
|
|
324
|
+
*
|
|
325
|
+
* @returns New HttpHeader with the same headers
|
|
326
|
+
*
|
|
327
|
+
* @example
|
|
328
|
+
* ```typescript
|
|
329
|
+
* const original = new HttpHeader();
|
|
330
|
+
* original.Add('Content-Type', 'application/json');
|
|
331
|
+
*
|
|
332
|
+
* const copy = original.Clone();
|
|
333
|
+
* copy.Add('Accept', 'text/html');
|
|
334
|
+
*
|
|
335
|
+
* // original is unchanged
|
|
336
|
+
* original.Get('Accept'); // undefined
|
|
337
|
+
* copy.Get('Accept'); // 'text/html'
|
|
338
|
+
* ```
|
|
339
|
+
*/
|
|
191
340
|
Clone(): HttpHeader {
|
|
192
341
|
const clone = new HttpHeader();
|
|
193
342
|
for (const [key, values] of this._headers.entries()) {
|
|
@@ -195,6 +344,27 @@ export class HttpHeader {
|
|
|
195
344
|
}
|
|
196
345
|
return clone;
|
|
197
346
|
}
|
|
347
|
+
/**
|
|
348
|
+
* Converts headers to a plain object with string array values.
|
|
349
|
+
*
|
|
350
|
+
* Each header name maps to an array of all its values. Useful for
|
|
351
|
+
* serialization or when working with APIs that expect this format.
|
|
352
|
+
*
|
|
353
|
+
* @returns Object with header names as keys and string arrays as values
|
|
354
|
+
*
|
|
355
|
+
* @example
|
|
356
|
+
* ```typescript
|
|
357
|
+
* const headers = new HttpHeader();
|
|
358
|
+
* headers.Add('Accept', ['application/json', 'text/html']);
|
|
359
|
+
* headers.Add('Content-Type', 'application/json');
|
|
360
|
+
*
|
|
361
|
+
* const obj = headers.AsRecordStringStringArray();
|
|
362
|
+
* // {
|
|
363
|
+
* // 'accept': ['application/json', 'text/html'],
|
|
364
|
+
* // 'content-type': ['application/json']
|
|
365
|
+
* // }
|
|
366
|
+
* ```
|
|
367
|
+
*/
|
|
198
368
|
AsRecordStringStringArray(): Record<string, string[]> {
|
|
199
369
|
const obj: Record<string, string[]> = {};
|
|
200
370
|
for (const [key, values] of this._headers.entries()) {
|
|
@@ -202,6 +372,28 @@ export class HttpHeader {
|
|
|
202
372
|
}
|
|
203
373
|
return obj;
|
|
204
374
|
}
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* Converts headers to a plain object with comma-separated string values.
|
|
378
|
+
*
|
|
379
|
+
* Multiple values for the same header are joined with ", ". Useful for
|
|
380
|
+
* compatibility with APIs that expect single string values per header.
|
|
381
|
+
*
|
|
382
|
+
* @returns Object with header names as keys and comma-separated strings as values
|
|
383
|
+
*
|
|
384
|
+
* @example
|
|
385
|
+
* ```typescript
|
|
386
|
+
* const headers = new HttpHeader();
|
|
387
|
+
* headers.Add('Accept', ['application/json', 'text/html']);
|
|
388
|
+
* headers.Add('Content-Type', 'application/json');
|
|
389
|
+
*
|
|
390
|
+
* const obj = headers.AsRecordStringString();
|
|
391
|
+
* // {
|
|
392
|
+
* // 'accept': 'application/json, text/html',
|
|
393
|
+
* // 'content-type': 'application/json'
|
|
394
|
+
* // }
|
|
395
|
+
* ```
|
|
396
|
+
*/
|
|
205
397
|
AsRecordStringString(): Record<string, string> {
|
|
206
398
|
const obj: Record<string, string> = {};
|
|
207
399
|
for (const [key, values] of this._headers.entries()) {
|
|
@@ -209,7 +401,29 @@ export class HttpHeader {
|
|
|
209
401
|
}
|
|
210
402
|
return obj;
|
|
211
403
|
}
|
|
212
|
-
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Converts headers to HeadersInit format with only first value per header.
|
|
407
|
+
*
|
|
408
|
+
* Only the first value is used when multiple values exist for a header.
|
|
409
|
+
* Needed for Cloudflare Workers' HeadersInit type compatibility.
|
|
410
|
+
*
|
|
411
|
+
* @template H - HeadersInit type (for type compatibility)
|
|
412
|
+
* @returns Object compatible with HeadersInit
|
|
413
|
+
*
|
|
414
|
+
* @example
|
|
415
|
+
* ```typescript
|
|
416
|
+
* const headers = new HttpHeader();
|
|
417
|
+
* headers.Add('Accept', ['application/json', 'text/html']);
|
|
418
|
+
* headers.Add('Content-Type', 'application/json');
|
|
419
|
+
*
|
|
420
|
+
* const init = headers.AsHeaderInit();
|
|
421
|
+
* // {
|
|
422
|
+
* // 'accept': 'application/json', // only first value
|
|
423
|
+
* // 'content-type': 'application/json'
|
|
424
|
+
* // }
|
|
425
|
+
* ```
|
|
426
|
+
*/
|
|
213
427
|
AsHeaderInit<H extends HeadersInit>(): H {
|
|
214
428
|
const obj: Record<string, string> = {};
|
|
215
429
|
for (const [key, values] of this._headers.entries()) {
|
|
@@ -220,9 +434,49 @@ export class HttpHeader {
|
|
|
220
434
|
}
|
|
221
435
|
return obj as H;
|
|
222
436
|
}
|
|
437
|
+
|
|
438
|
+
/**
|
|
439
|
+
* Converts to native Headers implementation.
|
|
440
|
+
*
|
|
441
|
+
* Multiple values are joined with ", " as per HTTP spec.
|
|
442
|
+
*
|
|
443
|
+
* @returns HeadersImpl instance compatible with standard Headers interface
|
|
444
|
+
*
|
|
445
|
+
* @example
|
|
446
|
+
* ```typescript
|
|
447
|
+
* const headers = new HttpHeader();
|
|
448
|
+
* headers.Add('Content-Type', 'application/json');
|
|
449
|
+
*
|
|
450
|
+
* const nativeHeaders = headers.AsHeaders();
|
|
451
|
+
* nativeHeaders.get('content-type'); // 'application/json'
|
|
452
|
+
* ```
|
|
453
|
+
*/
|
|
223
454
|
AsHeaders(): HeadersImpl {
|
|
224
455
|
return new HeadersImpl(this._asStringString());
|
|
225
456
|
}
|
|
457
|
+
|
|
458
|
+
/**
|
|
459
|
+
* Merges other headers into this instance (in-place mutation).
|
|
460
|
+
*
|
|
461
|
+
* Adds all headers from the provided sources to this instance.
|
|
462
|
+
* If headers already exist, values are added (not replaced).
|
|
463
|
+
*
|
|
464
|
+
* @param other - One or more header sources to merge
|
|
465
|
+
* @returns This HttpHeader instance for chaining
|
|
466
|
+
*
|
|
467
|
+
* @example
|
|
468
|
+
* ```typescript
|
|
469
|
+
* const headers = new HttpHeader();
|
|
470
|
+
* headers.Add('Content-Type', 'application/json');
|
|
471
|
+
*
|
|
472
|
+
* headers.MergeInplace(
|
|
473
|
+
* { 'Accept': 'text/html' },
|
|
474
|
+
* new Headers({ 'Authorization': 'Bearer token' })
|
|
475
|
+
* );
|
|
476
|
+
*
|
|
477
|
+
* // headers now contains all three headers
|
|
478
|
+
* ```
|
|
479
|
+
*/
|
|
226
480
|
MergeInplace(...other: CoercedHeadersInit[]): HttpHeader {
|
|
227
481
|
for (const h of other.map((h) => HttpHeader.coerce(h))) {
|
|
228
482
|
for (const [key, values] of h.Items()) {
|
|
@@ -231,6 +485,28 @@ export class HttpHeader {
|
|
|
231
485
|
}
|
|
232
486
|
return this;
|
|
233
487
|
}
|
|
488
|
+
|
|
489
|
+
/**
|
|
490
|
+
* Merges other headers, returning a new instance.
|
|
491
|
+
*
|
|
492
|
+
* Creates a clone of this instance and merges the provided headers into it.
|
|
493
|
+
* The original instance remains unchanged.
|
|
494
|
+
*
|
|
495
|
+
* @param other - One or more header sources to merge
|
|
496
|
+
* @returns New HttpHeader with merged headers
|
|
497
|
+
*
|
|
498
|
+
* @example
|
|
499
|
+
* ```typescript
|
|
500
|
+
* const headers1 = new HttpHeader();
|
|
501
|
+
* headers1.Add('Content-Type', 'application/json');
|
|
502
|
+
*
|
|
503
|
+
* const headers2 = headers1.Merge({ 'Accept': 'text/html' });
|
|
504
|
+
*
|
|
505
|
+
* // headers1 is unchanged
|
|
506
|
+
* headers1.Get('Accept'); // undefined
|
|
507
|
+
* headers2.Get('Accept'); // 'text/html'
|
|
508
|
+
* ```
|
|
509
|
+
*/
|
|
234
510
|
Merge(...other: CoercedHeadersInit[]): HttpHeader {
|
|
235
511
|
return this.Clone().MergeInplace(...other);
|
|
236
512
|
}
|
package/src/index.ts
CHANGED
|
@@ -32,6 +32,7 @@ export * from "./poller.js";
|
|
|
32
32
|
export * from "./on-func.js";
|
|
33
33
|
export * from "./timeouted.js";
|
|
34
34
|
export * from "./promise-sleep.js";
|
|
35
|
+
export * from "./keyed-ng.js";
|
|
35
36
|
|
|
36
37
|
// ugly not really esm but how could that work otherwise?
|
|
37
38
|
export * as utils from "./utils/index.js";
|
package/src/is-json.ts
CHANGED
|
@@ -7,6 +7,27 @@ export interface IsJSONResult<T> {
|
|
|
7
7
|
readonly parsed?: T;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Checks if a string contains valid JSON and optionally parses it.
|
|
12
|
+
*
|
|
13
|
+
* Uses a regex pre-check to quickly eliminate non-JSON strings before attempting
|
|
14
|
+
* to parse. Returns both a boolean flag and the parsed result if successful.
|
|
15
|
+
*
|
|
16
|
+
* @template T - The expected type of the parsed JSON (default: unknown)
|
|
17
|
+
* @param str - The string to check and parse
|
|
18
|
+
* @returns Object with isJSON boolean and optional parsed value
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const result = isJSON<{ name: string }>('{"name": "Alice"}');
|
|
23
|
+
* if (result.isJSON) {
|
|
24
|
+
* console.log(result.parsed.name); // "Alice"
|
|
25
|
+
* }
|
|
26
|
+
*
|
|
27
|
+
* const invalid = isJSON('not json');
|
|
28
|
+
* console.log(invalid.isJSON); // false
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
10
31
|
export function isJSON<T = unknown>(str: string): IsJSONResult<T> {
|
|
11
32
|
if (possibleJSONre.test(str)) {
|
|
12
33
|
try {
|
package/src/is-promise.ts
CHANGED
|
@@ -7,6 +7,25 @@ export type Promisable<T> = T | Promise<T>;
|
|
|
7
7
|
|
|
8
8
|
export type NonPromise<T> = T extends Promise<never> ? never : T;
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Type guard to check if a value is a Promise or Promise-like (thenable).
|
|
12
|
+
*
|
|
13
|
+
* Checks both for instanceof Promise and for objects with then/catch/finally methods,
|
|
14
|
+
* allowing it to work with Promise-like objects from different execution contexts.
|
|
15
|
+
*
|
|
16
|
+
* @template R - The Promise type
|
|
17
|
+
* @template T - The resolved value type
|
|
18
|
+
* @param a - The value to check
|
|
19
|
+
* @returns True if the value is a Promise or thenable
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const value: unknown = fetchData();
|
|
24
|
+
* if (isPromise(value)) {
|
|
25
|
+
* const result = await value;
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
10
29
|
export function isPromise<R extends Promise<T>, T>(a: unknown): a is R {
|
|
11
30
|
const mayBe = a as { then: () => void; catch: () => void; finally: () => void };
|
|
12
31
|
return (
|
|
@@ -21,6 +40,13 @@ export function isPromise<R extends Promise<T>, T>(a: unknown): a is R {
|
|
|
21
40
|
);
|
|
22
41
|
}
|
|
23
42
|
|
|
43
|
+
/**
|
|
44
|
+
* Type guard to check if a value is NOT a Promise.
|
|
45
|
+
*
|
|
46
|
+
* @template T - The value type
|
|
47
|
+
* @param a - The value to check
|
|
48
|
+
* @returns The value cast to type T if it's not a Promise
|
|
49
|
+
*/
|
|
24
50
|
export function isNotPromise<T>(a: T): T {
|
|
25
51
|
return !isPromise(a) as T;
|
|
26
52
|
}
|