@outfoxx/sunday 1.1.0-beta.2 → 1.1.0-beta.21
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 +1 -1
- package/build/esm/any-type.js.map +1 -0
- package/build/esm/class-type.js.map +1 -0
- package/build/esm/date-time-types.js.map +1 -0
- package/{dist → build/esm}/event-parser.js +3 -4
- package/build/esm/event-parser.js.map +1 -0
- package/{dist → build/esm}/fetch-event-source.d.ts +0 -2
- package/{dist → build/esm}/fetch-event-source.js +59 -50
- package/build/esm/fetch-event-source.js.map +1 -0
- package/{dist → build/esm}/fetch-request-factory.js +11 -14
- package/build/esm/fetch-request-factory.js.map +1 -0
- package/{dist → build/esm}/fetch.js +5 -7
- package/build/esm/fetch.js.map +1 -0
- package/build/esm/header-parameters.js.map +1 -0
- package/{dist → build/esm}/index.d.ts +1 -0
- package/{dist → build/esm}/index.js +1 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/logger.js.map +1 -0
- package/build/esm/media-type-codecs/any-text-decoder.js.map +1 -0
- package/build/esm/media-type-codecs/any-text-encoder.js.map +1 -0
- package/build/esm/media-type-codecs/binary-decoder.js.map +1 -0
- package/build/esm/media-type-codecs/binary-encoder.js.map +1 -0
- package/{dist → build/esm}/media-type-codecs/cbor-decoder.js +11 -7
- package/build/esm/media-type-codecs/cbor-decoder.js.map +1 -0
- package/{dist → build/esm}/media-type-codecs/cbor-encoder.d.ts +2 -1
- package/{dist → build/esm}/media-type-codecs/cbor-encoder.js +53 -50
- package/build/esm/media-type-codecs/cbor-encoder.js.map +1 -0
- package/build/esm/media-type-codecs/cbor-tags.js.map +1 -0
- package/build/esm/media-type-codecs/json-decoder.js.map +1 -0
- package/{dist → build/esm}/media-type-codecs/json-encoder.js +46 -51
- package/build/esm/media-type-codecs/json-encoder.js.map +1 -0
- package/{dist → build/esm}/media-type-codecs/media-type-decoder.js +1 -2
- package/build/esm/media-type-codecs/media-type-decoder.js.map +1 -0
- package/build/esm/media-type-codecs/media-type-decoders.js.map +1 -0
- package/{dist → build/esm}/media-type-codecs/media-type-encoder.js +2 -4
- package/build/esm/media-type-codecs/media-type-encoder.js.map +1 -0
- package/build/esm/media-type-codecs/media-type-encoders.js.map +1 -0
- package/{dist → build/esm}/media-type-codecs/www-form-url-encoder.js +12 -6
- package/build/esm/media-type-codecs/www-form-url-encoder.js.map +1 -0
- package/{dist → build/esm}/media-type.js +14 -17
- package/build/esm/media-type.js.map +1 -0
- package/{dist → build/esm}/problem.js +5 -7
- package/build/esm/problem.js.map +1 -0
- package/build/esm/request-adapters.d.ts +23 -0
- package/build/esm/request-adapters.js +52 -0
- package/build/esm/request-adapters.js.map +1 -0
- package/{dist → build/esm}/request-factory.d.ts +3 -1
- package/build/esm/request-factory.js.map +1 -0
- package/build/esm/result-response.js.map +1 -0
- package/build/esm/sunday-error.js.map +1 -0
- package/{dist → build/esm}/url-template.js +2 -2
- package/build/esm/url-template.js.map +1 -0
- package/{dist → build/esm}/util/any.js +1 -2
- package/build/esm/util/any.js.map +1 -0
- package/build/esm/util/base64.js.map +1 -0
- package/{dist → build/esm}/util/error.js +1 -1
- package/build/esm/util/error.js.map +1 -0
- package/build/esm/util/hex.js.map +1 -0
- package/build/esm/util/rxjs.d.ts +27 -0
- package/build/esm/util/rxjs.js +79 -0
- package/build/esm/util/rxjs.js.map +1 -0
- package/build/esm/util/temporal.js.map +1 -0
- package/build/esnext/any-type.d.ts +4 -0
- package/build/esnext/any-type.js +15 -0
- package/build/esnext/any-type.js.map +1 -0
- package/build/esnext/class-type.d.ts +2 -0
- package/build/esnext/class-type.js +15 -0
- package/build/esnext/class-type.js.map +1 -0
- package/build/esnext/date-time-types.d.ts +2 -0
- package/build/esnext/date-time-types.js +16 -0
- package/build/esnext/date-time-types.js.map +1 -0
- package/build/esnext/event-parser.d.ts +17 -0
- package/build/esnext/event-parser.js +152 -0
- package/build/esnext/event-parser.js.map +1 -0
- package/build/esnext/fetch-event-source.d.ts +56 -0
- package/build/esnext/fetch-event-source.js +296 -0
- package/build/esnext/fetch-event-source.js.map +1 -0
- package/build/esnext/fetch-request-factory.d.ts +34 -0
- package/build/esnext/fetch-request-factory.js +178 -0
- package/build/esnext/fetch-request-factory.js.map +1 -0
- package/build/esnext/fetch.d.ts +7 -0
- package/build/esnext/fetch.js +88 -0
- package/build/esnext/fetch.js.map +1 -0
- package/build/esnext/header-parameters.d.ts +3 -0
- package/build/esnext/header-parameters.js +53 -0
- package/build/esnext/header-parameters.js.map +1 -0
- package/build/esnext/index.d.ts +27 -0
- package/build/esnext/index.js +41 -0
- package/build/esnext/index.js.map +1 -0
- package/build/esnext/logger.d.ts +8 -0
- package/build/esnext/logger.js +15 -0
- package/build/esnext/logger.js.map +1 -0
- package/build/esnext/media-type-codecs/any-text-decoder.d.ts +7 -0
- package/build/esnext/media-type-codecs/any-text-decoder.js +29 -0
- package/build/esnext/media-type-codecs/any-text-decoder.js.map +1 -0
- package/build/esnext/media-type-codecs/any-text-encoder.d.ts +5 -0
- package/build/esnext/media-type-codecs/any-text-encoder.js +23 -0
- package/build/esnext/media-type-codecs/any-text-encoder.js.map +1 -0
- package/build/esnext/media-type-codecs/binary-decoder.d.ts +6 -0
- package/build/esnext/media-type-codecs/binary-decoder.js +29 -0
- package/build/esnext/media-type-codecs/binary-decoder.js.map +1 -0
- package/build/esnext/media-type-codecs/binary-encoder.d.ts +5 -0
- package/build/esnext/media-type-codecs/binary-encoder.js +26 -0
- package/build/esnext/media-type-codecs/binary-encoder.js.map +1 -0
- package/build/esnext/media-type-codecs/cbor-decoder.d.ts +39 -0
- package/build/esnext/media-type-codecs/cbor-decoder.js +430 -0
- package/build/esnext/media-type-codecs/cbor-decoder.js.map +1 -0
- package/build/esnext/media-type-codecs/cbor-encoder.d.ts +44 -0
- package/build/esnext/media-type-codecs/cbor-encoder.js +242 -0
- package/build/esnext/media-type-codecs/cbor-encoder.js.map +1 -0
- package/build/esnext/media-type-codecs/cbor-tags.d.ts +4 -0
- package/build/esnext/media-type-codecs/cbor-tags.js +18 -0
- package/build/esnext/media-type-codecs/cbor-tags.js.map +1 -0
- package/build/esnext/media-type-codecs/json-decoder.d.ts +39 -0
- package/build/esnext/media-type-codecs/json-decoder.js +380 -0
- package/build/esnext/media-type-codecs/json-decoder.js.map +1 -0
- package/build/esnext/media-type-codecs/json-encoder.d.ts +44 -0
- package/build/esnext/media-type-codecs/json-encoder.js +271 -0
- package/build/esnext/media-type-codecs/json-encoder.js.map +1 -0
- package/build/esnext/media-type-codecs/media-type-decoder.d.ts +11 -0
- package/build/esnext/media-type-codecs/media-type-decoder.js +18 -0
- package/build/esnext/media-type-codecs/media-type-decoder.js.map +1 -0
- package/build/esnext/media-type-codecs/media-type-decoders.d.ts +18 -0
- package/build/esnext/media-type-codecs/media-type-decoders.js +58 -0
- package/build/esnext/media-type-codecs/media-type-decoders.js.map +1 -0
- package/build/esnext/media-type-codecs/media-type-encoder.d.ts +12 -0
- package/build/esnext/media-type-codecs/media-type-encoder.js +22 -0
- package/build/esnext/media-type-codecs/media-type-encoder.js.map +1 -0
- package/build/esnext/media-type-codecs/media-type-encoders.d.ts +18 -0
- package/build/esnext/media-type-codecs/media-type-encoders.js +60 -0
- package/build/esnext/media-type-codecs/media-type-encoders.js.map +1 -0
- package/build/esnext/media-type-codecs/www-form-url-encoder.d.ts +59 -0
- package/build/esnext/media-type-codecs/www-form-url-encoder.js +198 -0
- package/build/esnext/media-type-codecs/www-form-url-encoder.js.map +1 -0
- package/build/esnext/media-type.d.ts +94 -0
- package/build/esnext/media-type.js +302 -0
- package/build/esnext/media-type.js.map +1 -0
- package/build/esnext/problem.d.ts +31 -0
- package/build/esnext/problem.js +156 -0
- package/build/esnext/problem.js.map +1 -0
- package/build/esnext/request-adapters.d.ts +23 -0
- package/build/esnext/request-adapters.js +52 -0
- package/build/esnext/request-adapters.js.map +1 -0
- package/build/esnext/request-factory.d.ts +46 -0
- package/build/esnext/request-factory.js +15 -0
- package/build/esnext/request-factory.js.map +1 -0
- package/build/esnext/result-response.d.ts +4 -0
- package/build/esnext/result-response.js +15 -0
- package/build/esnext/result-response.js.map +1 -0
- package/build/esnext/sunday-error.d.ts +11 -0
- package/build/esnext/sunday-error.js +31 -0
- package/build/esnext/sunday-error.js.map +1 -0
- package/build/esnext/url-template.d.ts +6 -0
- package/build/esnext/url-template.js +31 -0
- package/build/esnext/url-template.js.map +1 -0
- package/build/esnext/util/any.d.ts +2 -0
- package/build/esnext/util/any.js +23 -0
- package/build/esnext/util/any.js.map +1 -0
- package/build/esnext/util/base64.d.ts +5 -0
- package/build/esnext/util/base64.js +77 -0
- package/build/esnext/util/base64.js.map +1 -0
- package/build/esnext/util/error.d.ts +2 -0
- package/build/esnext/util/error.js +26 -0
- package/build/esnext/util/error.js.map +1 -0
- package/build/esnext/util/hex.d.ts +4 -0
- package/build/esnext/util/hex.js +32 -0
- package/build/esnext/util/hex.js.map +1 -0
- package/build/esnext/util/rxjs.d.ts +27 -0
- package/build/esnext/util/rxjs.js +79 -0
- package/build/esnext/util/rxjs.js.map +1 -0
- package/build/esnext/util/temporal.d.ts +2 -0
- package/build/esnext/util/temporal.js +31 -0
- package/build/esnext/util/temporal.js.map +1 -0
- package/build/main/any-type.d.ts +4 -0
- package/build/main/any-type.js +16 -0
- package/build/main/any-type.js.map +1 -0
- package/build/main/class-type.d.ts +2 -0
- package/build/main/class-type.js +16 -0
- package/build/main/class-type.js.map +1 -0
- package/build/main/date-time-types.d.ts +2 -0
- package/build/main/date-time-types.js +27 -0
- package/build/main/date-time-types.js.map +1 -0
- package/build/main/event-parser.d.ts +17 -0
- package/build/main/event-parser.js +156 -0
- package/build/main/event-parser.js.map +1 -0
- package/build/main/fetch-event-source.d.ts +56 -0
- package/build/main/fetch-event-source.js +300 -0
- package/build/main/fetch-event-source.js.map +1 -0
- package/build/main/fetch-request-factory.d.ts +34 -0
- package/build/main/fetch-request-factory.js +182 -0
- package/build/main/fetch-request-factory.js.map +1 -0
- package/build/main/fetch.d.ts +7 -0
- package/build/main/fetch.js +92 -0
- package/build/main/fetch.js.map +1 -0
- package/build/main/header-parameters.d.ts +3 -0
- package/build/main/header-parameters.js +56 -0
- package/build/main/header-parameters.js.map +1 -0
- package/build/main/index.d.ts +27 -0
- package/build/main/index.js +53 -0
- package/build/main/index.js.map +1 -0
- package/build/main/logger.d.ts +8 -0
- package/build/main/logger.js +16 -0
- package/build/main/logger.js.map +1 -0
- package/build/main/media-type-codecs/any-text-decoder.d.ts +7 -0
- package/build/main/media-type-codecs/any-text-decoder.js +33 -0
- package/build/main/media-type-codecs/any-text-decoder.js.map +1 -0
- package/build/main/media-type-codecs/any-text-encoder.d.ts +5 -0
- package/build/main/media-type-codecs/any-text-encoder.js +27 -0
- package/build/main/media-type-codecs/any-text-encoder.js.map +1 -0
- package/build/main/media-type-codecs/binary-decoder.d.ts +6 -0
- package/build/main/media-type-codecs/binary-decoder.js +33 -0
- package/build/main/media-type-codecs/binary-decoder.js.map +1 -0
- package/build/main/media-type-codecs/binary-encoder.d.ts +5 -0
- package/build/main/media-type-codecs/binary-encoder.js +30 -0
- package/build/main/media-type-codecs/binary-encoder.js.map +1 -0
- package/build/main/media-type-codecs/cbor-decoder.d.ts +39 -0
- package/build/main/media-type-codecs/cbor-decoder.js +434 -0
- package/build/main/media-type-codecs/cbor-decoder.js.map +1 -0
- package/build/main/media-type-codecs/cbor-encoder.d.ts +44 -0
- package/build/main/media-type-codecs/cbor-encoder.js +246 -0
- package/build/main/media-type-codecs/cbor-encoder.js.map +1 -0
- package/build/main/media-type-codecs/cbor-tags.d.ts +4 -0
- package/build/main/media-type-codecs/cbor-tags.js +21 -0
- package/build/main/media-type-codecs/cbor-tags.js.map +1 -0
- package/build/main/media-type-codecs/json-decoder.d.ts +39 -0
- package/build/main/media-type-codecs/json-decoder.js +384 -0
- package/build/main/media-type-codecs/json-decoder.js.map +1 -0
- package/build/main/media-type-codecs/json-encoder.d.ts +44 -0
- package/build/main/media-type-codecs/json-encoder.js +275 -0
- package/build/main/media-type-codecs/json-encoder.js.map +1 -0
- package/build/main/media-type-codecs/media-type-decoder.d.ts +11 -0
- package/build/main/media-type-codecs/media-type-decoder.js +22 -0
- package/build/main/media-type-codecs/media-type-decoder.js.map +1 -0
- package/build/main/media-type-codecs/media-type-decoders.d.ts +18 -0
- package/build/main/media-type-codecs/media-type-decoders.js +62 -0
- package/build/main/media-type-codecs/media-type-decoders.js.map +1 -0
- package/build/main/media-type-codecs/media-type-encoder.d.ts +12 -0
- package/build/main/media-type-codecs/media-type-encoder.js +27 -0
- package/build/main/media-type-codecs/media-type-encoder.js.map +1 -0
- package/build/main/media-type-codecs/media-type-encoders.d.ts +18 -0
- package/build/main/media-type-codecs/media-type-encoders.js +64 -0
- package/build/main/media-type-codecs/media-type-encoders.js.map +1 -0
- package/build/main/media-type-codecs/www-form-url-encoder.d.ts +59 -0
- package/build/main/media-type-codecs/www-form-url-encoder.js +202 -0
- package/build/main/media-type-codecs/www-form-url-encoder.js.map +1 -0
- package/build/main/media-type.d.ts +94 -0
- package/build/main/media-type.js +306 -0
- package/build/main/media-type.js.map +1 -0
- package/build/main/problem.d.ts +31 -0
- package/build/main/problem.js +159 -0
- package/build/main/problem.js.map +1 -0
- package/build/main/request-adapters.d.ts +23 -0
- package/build/main/request-adapters.js +58 -0
- package/build/main/request-adapters.js.map +1 -0
- package/build/main/request-factory.d.ts +46 -0
- package/build/main/request-factory.js +16 -0
- package/build/main/request-factory.js.map +1 -0
- package/build/main/result-response.d.ts +4 -0
- package/build/main/result-response.js +16 -0
- package/build/main/result-response.js.map +1 -0
- package/build/main/sunday-error.d.ts +11 -0
- package/build/main/sunday-error.js +35 -0
- package/build/main/sunday-error.js.map +1 -0
- package/build/main/url-template.d.ts +6 -0
- package/build/main/url-template.js +35 -0
- package/build/main/url-template.js.map +1 -0
- package/build/main/util/any.d.ts +2 -0
- package/build/main/util/any.js +28 -0
- package/build/main/util/any.js.map +1 -0
- package/build/main/util/base64.d.ts +5 -0
- package/build/main/util/base64.js +80 -0
- package/build/main/util/base64.js.map +1 -0
- package/build/main/util/error.d.ts +2 -0
- package/build/main/util/error.js +31 -0
- package/build/main/util/error.js.map +1 -0
- package/build/main/util/hex.d.ts +4 -0
- package/build/main/util/hex.js +35 -0
- package/build/main/util/hex.js.map +1 -0
- package/build/main/util/rxjs.d.ts +27 -0
- package/build/main/util/rxjs.js +86 -0
- package/build/main/util/rxjs.js.map +1 -0
- package/build/main/util/temporal.d.ts +2 -0
- package/build/main/util/temporal.js +36 -0
- package/build/main/util/temporal.js.map +1 -0
- package/package.json +48 -34
- package/src/fetch-event-source.ts +68 -42
- package/src/fetch-request-factory.ts +8 -5
- package/src/index.ts +1 -0
- package/src/media-type-codecs/cbor-decoder.ts +19 -10
- package/src/media-type-codecs/cbor-encoder.ts +57 -56
- package/src/media-type-codecs/json-encoder.ts +47 -54
- package/src/media-type-codecs/www-form-url-encoder.ts +14 -5
- package/src/problem.ts +1 -0
- package/src/request-adapters.ts +81 -0
- package/src/request-factory.ts +3 -1
- package/src/url-template.ts +2 -3
- package/src/util/rxjs.ts +84 -2
- package/dist/any-type.js.map +0 -1
- package/dist/class-type.js.map +0 -1
- package/dist/date-time-types.js.map +0 -1
- package/dist/event-parser.js.map +0 -1
- package/dist/fetch-event-source.js.map +0 -1
- package/dist/fetch-request-factory.js.map +0 -1
- package/dist/fetch.js.map +0 -1
- package/dist/header-parameters.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/logger.js.map +0 -1
- package/dist/media-type-codecs/any-text-decoder.js.map +0 -1
- package/dist/media-type-codecs/any-text-encoder.js.map +0 -1
- package/dist/media-type-codecs/binary-decoder.js.map +0 -1
- package/dist/media-type-codecs/binary-encoder.js.map +0 -1
- package/dist/media-type-codecs/cbor-decoder.js.map +0 -1
- package/dist/media-type-codecs/cbor-encoder.js.map +0 -1
- package/dist/media-type-codecs/cbor-tags.js.map +0 -1
- package/dist/media-type-codecs/json-decoder.js.map +0 -1
- package/dist/media-type-codecs/json-encoder.js.map +0 -1
- package/dist/media-type-codecs/media-type-decoder.js.map +0 -1
- package/dist/media-type-codecs/media-type-decoders.js.map +0 -1
- package/dist/media-type-codecs/media-type-encoder.js.map +0 -1
- package/dist/media-type-codecs/media-type-encoders.js.map +0 -1
- package/dist/media-type-codecs/www-form-url-encoder.js.map +0 -1
- package/dist/media-type.js.map +0 -1
- package/dist/problem.js.map +0 -1
- package/dist/request-factory.js.map +0 -1
- package/dist/result-response.js.map +0 -1
- package/dist/sunday-error.js.map +0 -1
- package/dist/url-template.js.map +0 -1
- package/dist/util/any.js.map +0 -1
- package/dist/util/base64.js.map +0 -1
- package/dist/util/error.js.map +0 -1
- package/dist/util/hex.js.map +0 -1
- package/dist/util/rxjs.d.ts +0 -5
- package/dist/util/rxjs.js +0 -31
- package/dist/util/rxjs.js.map +0 -1
- package/dist/util/stream-rxjs.d.ts +0 -2
- package/dist/util/stream-rxjs.js +0 -39
- package/dist/util/stream-rxjs.js.map +0 -1
- package/dist/util/temporal.js.map +0 -1
- package/src/util/stream-rxjs.ts +0 -42
- /package/{dist → build/esm}/any-type.d.ts +0 -0
- /package/{dist → build/esm}/any-type.js +0 -0
- /package/{dist → build/esm}/class-type.d.ts +0 -0
- /package/{dist → build/esm}/class-type.js +0 -0
- /package/{dist → build/esm}/date-time-types.d.ts +0 -0
- /package/{dist → build/esm}/date-time-types.js +0 -0
- /package/{dist → build/esm}/event-parser.d.ts +0 -0
- /package/{dist → build/esm}/fetch-request-factory.d.ts +0 -0
- /package/{dist → build/esm}/fetch.d.ts +0 -0
- /package/{dist → build/esm}/header-parameters.d.ts +0 -0
- /package/{dist → build/esm}/header-parameters.js +0 -0
- /package/{dist → build/esm}/logger.d.ts +0 -0
- /package/{dist → build/esm}/logger.js +0 -0
- /package/{dist → build/esm}/media-type-codecs/any-text-decoder.d.ts +0 -0
- /package/{dist → build/esm}/media-type-codecs/any-text-decoder.js +0 -0
- /package/{dist → build/esm}/media-type-codecs/any-text-encoder.d.ts +0 -0
- /package/{dist → build/esm}/media-type-codecs/any-text-encoder.js +0 -0
- /package/{dist → build/esm}/media-type-codecs/binary-decoder.d.ts +0 -0
- /package/{dist → build/esm}/media-type-codecs/binary-decoder.js +0 -0
- /package/{dist → build/esm}/media-type-codecs/binary-encoder.d.ts +0 -0
- /package/{dist → build/esm}/media-type-codecs/binary-encoder.js +0 -0
- /package/{dist → build/esm}/media-type-codecs/cbor-decoder.d.ts +0 -0
- /package/{dist → build/esm}/media-type-codecs/cbor-tags.d.ts +0 -0
- /package/{dist → build/esm}/media-type-codecs/cbor-tags.js +0 -0
- /package/{dist → build/esm}/media-type-codecs/json-decoder.d.ts +0 -0
- /package/{dist → build/esm}/media-type-codecs/json-decoder.js +0 -0
- /package/{dist → build/esm}/media-type-codecs/json-encoder.d.ts +0 -0
- /package/{dist → build/esm}/media-type-codecs/media-type-decoder.d.ts +0 -0
- /package/{dist → build/esm}/media-type-codecs/media-type-decoders.d.ts +0 -0
- /package/{dist → build/esm}/media-type-codecs/media-type-decoders.js +0 -0
- /package/{dist → build/esm}/media-type-codecs/media-type-encoder.d.ts +0 -0
- /package/{dist → build/esm}/media-type-codecs/media-type-encoders.d.ts +0 -0
- /package/{dist → build/esm}/media-type-codecs/media-type-encoders.js +0 -0
- /package/{dist → build/esm}/media-type-codecs/www-form-url-encoder.d.ts +0 -0
- /package/{dist → build/esm}/media-type.d.ts +0 -0
- /package/{dist → build/esm}/problem.d.ts +0 -0
- /package/{dist → build/esm}/request-factory.js +0 -0
- /package/{dist → build/esm}/result-response.d.ts +0 -0
- /package/{dist → build/esm}/result-response.js +0 -0
- /package/{dist → build/esm}/sunday-error.d.ts +0 -0
- /package/{dist → build/esm}/sunday-error.js +0 -0
- /package/{dist → build/esm}/url-template.d.ts +0 -0
- /package/{dist → build/esm}/util/any.d.ts +0 -0
- /package/{dist → build/esm}/util/base64.d.ts +0 -0
- /package/{dist → build/esm}/util/base64.js +0 -0
- /package/{dist → build/esm}/util/error.d.ts +0 -0
- /package/{dist → build/esm}/util/hex.d.ts +0 -0
- /package/{dist → build/esm}/util/hex.js +0 -0
- /package/{dist → build/esm}/util/temporal.d.ts +0 -0
- /package/{dist → build/esm}/util/temporal.js +0 -0
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2020 Outfox, Inc.
|
|
3
|
+
//
|
|
4
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
// you may not use this file except in compliance with the License.
|
|
6
|
+
// You may obtain a copy of the License at
|
|
7
|
+
//
|
|
8
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//
|
|
10
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
// See the License for the specific language governing permissions and
|
|
14
|
+
// limitations under the License.
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.JSONEncoder = void 0;
|
|
17
|
+
const core_1 = require("@js-joda/core");
|
|
18
|
+
const jackson_js_1 = require("@outfoxx/jackson-js");
|
|
19
|
+
require("reflect-metadata");
|
|
20
|
+
const base64_1 = require("../util/base64");
|
|
21
|
+
const temporal_1 = require("../util/temporal");
|
|
22
|
+
class JSONEncoder {
|
|
23
|
+
constructor(dateEncoding) {
|
|
24
|
+
this.dateEncoding = dateEncoding;
|
|
25
|
+
this.stringifier = new jackson_js_1.JsonStringifier();
|
|
26
|
+
this.instantSerializer = (_, value) => {
|
|
27
|
+
if (value == null) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
switch (this.dateEncoding) {
|
|
31
|
+
case JSONEncoder.DateEncoding.ISO8601:
|
|
32
|
+
return core_1.DateTimeFormatter.ISO_INSTANT.format(value);
|
|
33
|
+
case JSONEncoder.DateEncoding.MILLISECONDS_SINCE_EPOCH:
|
|
34
|
+
return value.toEpochMilli();
|
|
35
|
+
case JSONEncoder.DateEncoding.DECIMAL_SECONDS_SINCE_EPOCH:
|
|
36
|
+
return (0, temporal_1.secondsToNumber)(value.epochSecond(), value.nano());
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
this.zonedDateTimeSerializer = (_, value) => {
|
|
40
|
+
if (value == null) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
switch (this.dateEncoding) {
|
|
44
|
+
case JSONEncoder.DateEncoding.ISO8601:
|
|
45
|
+
return core_1.DateTimeFormatter.ISO_ZONED_DATE_TIME.format(value);
|
|
46
|
+
case JSONEncoder.DateEncoding.MILLISECONDS_SINCE_EPOCH:
|
|
47
|
+
return value.toInstant().toEpochMilli();
|
|
48
|
+
case JSONEncoder.DateEncoding.DECIMAL_SECONDS_SINCE_EPOCH:
|
|
49
|
+
const instant = value.toInstant();
|
|
50
|
+
return (0, temporal_1.secondsToNumber)(instant.epochSecond(), instant.nano());
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
this.offsetDateTimeSerializer = (_, value) => {
|
|
54
|
+
if (value == null) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
switch (this.dateEncoding) {
|
|
58
|
+
case JSONEncoder.DateEncoding.ISO8601:
|
|
59
|
+
return core_1.DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(value);
|
|
60
|
+
case JSONEncoder.DateEncoding.MILLISECONDS_SINCE_EPOCH:
|
|
61
|
+
return value.toInstant().toEpochMilli();
|
|
62
|
+
case JSONEncoder.DateEncoding.DECIMAL_SECONDS_SINCE_EPOCH:
|
|
63
|
+
const instant = value.toInstant();
|
|
64
|
+
return (0, temporal_1.secondsToNumber)(instant.epochSecond(), instant.nano());
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
this.offsetTimeFormatter = new core_1.DateTimeFormatterBuilder()
|
|
68
|
+
.parseCaseInsensitive()
|
|
69
|
+
.append(core_1.DateTimeFormatter.ISO_LOCAL_TIME)
|
|
70
|
+
.appendOffsetId()
|
|
71
|
+
.toFormatter(core_1.ResolverStyle.STRICT);
|
|
72
|
+
this.offsetTimeSerializer = (_, value) => {
|
|
73
|
+
if (value == null) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
if (this.dateEncoding == JSONEncoder.DateEncoding.ISO8601) {
|
|
77
|
+
return this.offsetTimeFormatter.format(value);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
return [
|
|
81
|
+
value.hour(),
|
|
82
|
+
value.minute(),
|
|
83
|
+
...(0, temporal_1.encodeSeconds)(value.second(), this.dateEncoding == JSONEncoder.DateEncoding.MILLISECONDS_SINCE_EPOCH
|
|
84
|
+
? value.get(core_1.ChronoField.MILLI_OF_SECOND)
|
|
85
|
+
: value.nano()),
|
|
86
|
+
value.offset().toString(),
|
|
87
|
+
];
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
this.localDateTimeSerializer = (_, value) => {
|
|
91
|
+
if (value == null) {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
if (this.dateEncoding == JSONEncoder.DateEncoding.ISO8601) {
|
|
95
|
+
return core_1.DateTimeFormatter.ISO_LOCAL_DATE_TIME.format(value);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
return [
|
|
99
|
+
value.year(),
|
|
100
|
+
value.monthValue(),
|
|
101
|
+
value.dayOfMonth(),
|
|
102
|
+
value.hour(),
|
|
103
|
+
value.minute(),
|
|
104
|
+
...(0, temporal_1.encodeSeconds)(value.second(), this.dateEncoding == JSONEncoder.DateEncoding.MILLISECONDS_SINCE_EPOCH
|
|
105
|
+
? value.get(core_1.ChronoField.MILLI_OF_SECOND)
|
|
106
|
+
: value.nano()),
|
|
107
|
+
];
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
this.localDateSerializer = (_, value) => {
|
|
111
|
+
if (value == null) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
if (this.dateEncoding == JSONEncoder.DateEncoding.ISO8601) {
|
|
115
|
+
return core_1.DateTimeFormatter.ISO_LOCAL_DATE.format(value);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
return [value.year(), value.monthValue(), value.dayOfMonth()];
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
this.localTimeSerializer = (_, value) => {
|
|
122
|
+
if (value == null) {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
if (this.dateEncoding == JSONEncoder.DateEncoding.ISO8601) {
|
|
126
|
+
return core_1.DateTimeFormatter.ISO_LOCAL_TIME.format(value);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
return [
|
|
130
|
+
value.hour(),
|
|
131
|
+
value.minute(),
|
|
132
|
+
...(0, temporal_1.encodeSeconds)(value.second(), this.dateEncoding == JSONEncoder.DateEncoding.MILLISECONDS_SINCE_EPOCH
|
|
133
|
+
? value.get(core_1.ChronoField.MILLI_OF_SECOND)
|
|
134
|
+
: value.nano()),
|
|
135
|
+
];
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
this.dateSerializer = (_, value) => {
|
|
139
|
+
if (value == null) {
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
switch (this.dateEncoding) {
|
|
143
|
+
case JSONEncoder.DateEncoding.ISO8601:
|
|
144
|
+
return value.toISOString();
|
|
145
|
+
case JSONEncoder.DateEncoding.MILLISECONDS_SINCE_EPOCH:
|
|
146
|
+
return value.getTime();
|
|
147
|
+
case JSONEncoder.DateEncoding.DECIMAL_SECONDS_SINCE_EPOCH:
|
|
148
|
+
return value.getTime() / 1000.0;
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
this.urlSerializer = (_, value) => {
|
|
152
|
+
if (value == null) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
return value.toString();
|
|
156
|
+
};
|
|
157
|
+
this.arrayBufferSerializer = (_, value) => {
|
|
158
|
+
if (value == null) {
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
return base64_1.Base64.encode(value);
|
|
162
|
+
};
|
|
163
|
+
this.customSerializers = [
|
|
164
|
+
{
|
|
165
|
+
type: () => Date,
|
|
166
|
+
mapper: this.dateSerializer,
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
type: () => core_1.Instant,
|
|
170
|
+
mapper: this.instantSerializer,
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
type: () => core_1.ZonedDateTime,
|
|
174
|
+
mapper: this.zonedDateTimeSerializer,
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
type: () => core_1.OffsetDateTime,
|
|
178
|
+
mapper: this.offsetDateTimeSerializer,
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
type: () => core_1.OffsetTime,
|
|
182
|
+
mapper: this.offsetTimeSerializer,
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
type: () => core_1.LocalDateTime,
|
|
186
|
+
mapper: this.localDateTimeSerializer,
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: () => core_1.LocalDate,
|
|
190
|
+
mapper: this.localDateSerializer,
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
type: () => core_1.LocalTime,
|
|
194
|
+
mapper: this.localTimeSerializer,
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
type: () => URL,
|
|
198
|
+
mapper: this.urlSerializer,
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
type: () => ArrayBuffer,
|
|
202
|
+
mapper: this.arrayBufferSerializer,
|
|
203
|
+
},
|
|
204
|
+
];
|
|
205
|
+
}
|
|
206
|
+
static get default() {
|
|
207
|
+
return new JSONEncoder(JSONEncoder.DateEncoding.DECIMAL_SECONDS_SINCE_EPOCH);
|
|
208
|
+
}
|
|
209
|
+
encode(value, type, includeNulls = false) {
|
|
210
|
+
// Use natural type when subtypes exist
|
|
211
|
+
if (Reflect.hasMetadata('jackson:defaultContextGroup:JsonSubTypes',
|
|
212
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
213
|
+
value.constructor ?? {})) {
|
|
214
|
+
type = [Object];
|
|
215
|
+
}
|
|
216
|
+
return this.stringifier.stringify(value, {
|
|
217
|
+
serializers: this.customSerializers,
|
|
218
|
+
features: {
|
|
219
|
+
serialization: {
|
|
220
|
+
DEFAULT_PROPERTY_INCLUSION: {
|
|
221
|
+
value: includeNulls
|
|
222
|
+
? jackson_js_1.JsonIncludeType.ALWAYS
|
|
223
|
+
: jackson_js_1.JsonIncludeType.NON_NULL,
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
mainCreator: () => type ?? [Object],
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
encodeObject(value, type, includeNulls = false) {
|
|
231
|
+
// Use natural type when subtypes exist
|
|
232
|
+
if (Reflect.hasMetadata('jackson:defaultContextGroup:JsonSubTypes',
|
|
233
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
234
|
+
value.constructor ?? {})) {
|
|
235
|
+
type = [Object];
|
|
236
|
+
}
|
|
237
|
+
return this.stringifier.transform(value, {
|
|
238
|
+
serializers: this.customSerializers,
|
|
239
|
+
features: {
|
|
240
|
+
serialization: {
|
|
241
|
+
DEFAULT_PROPERTY_INCLUSION: {
|
|
242
|
+
value: includeNulls
|
|
243
|
+
? jackson_js_1.JsonIncludeType.ALWAYS
|
|
244
|
+
: jackson_js_1.JsonIncludeType.NON_NULL,
|
|
245
|
+
},
|
|
246
|
+
},
|
|
247
|
+
},
|
|
248
|
+
mainCreator: () => type ?? [Object],
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
exports.JSONEncoder = JSONEncoder;
|
|
253
|
+
(function (JSONEncoder) {
|
|
254
|
+
/**
|
|
255
|
+
* Configures how temporal values are encoded.
|
|
256
|
+
*/
|
|
257
|
+
let DateEncoding;
|
|
258
|
+
(function (DateEncoding) {
|
|
259
|
+
/**
|
|
260
|
+
* Encode temporal values numerically using seconds with decimal
|
|
261
|
+
* sub-second precision.
|
|
262
|
+
*/
|
|
263
|
+
DateEncoding[DateEncoding["DECIMAL_SECONDS_SINCE_EPOCH"] = 0] = "DECIMAL_SECONDS_SINCE_EPOCH";
|
|
264
|
+
/**
|
|
265
|
+
* Encode temporal values numerically using integer milliseconds.
|
|
266
|
+
*/
|
|
267
|
+
DateEncoding[DateEncoding["MILLISECONDS_SINCE_EPOCH"] = 1] = "MILLISECONDS_SINCE_EPOCH";
|
|
268
|
+
/**
|
|
269
|
+
* Encode temporal values values as an ISO-8601-formatted string (in
|
|
270
|
+
* RFC 3339 format). This is the default behavior.
|
|
271
|
+
*/
|
|
272
|
+
DateEncoding[DateEncoding["ISO8601"] = 2] = "ISO8601";
|
|
273
|
+
})(DateEncoding = JSONEncoder.DateEncoding || (JSONEncoder.DateEncoding = {}));
|
|
274
|
+
})(JSONEncoder = exports.JSONEncoder || (exports.JSONEncoder = {}));
|
|
275
|
+
//# sourceMappingURL=json-encoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-encoder.js","sourceRoot":"","sources":["../../../src/media-type-codecs/json-encoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AnyType } from '../any-type';
|
|
2
|
+
export interface MediaTypeDecoder {
|
|
3
|
+
decode<T>(response: Response, type: AnyType): Promise<T>;
|
|
4
|
+
}
|
|
5
|
+
export interface TextMediaTypeDecoder extends MediaTypeDecoder {
|
|
6
|
+
decodeText<T>(text: string, type: AnyType): T;
|
|
7
|
+
}
|
|
8
|
+
export interface StructuredMediaTypeDecoder extends MediaTypeDecoder {
|
|
9
|
+
decodeObject<T>(data: unknown, type: AnyType): T;
|
|
10
|
+
}
|
|
11
|
+
export declare function isStructuredMediaTypeDecoder(decoder: MediaTypeDecoder | StructuredMediaTypeDecoder | undefined): decoder is StructuredMediaTypeDecoder;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2020 Outfox, Inc.
|
|
3
|
+
//
|
|
4
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
// you may not use this file except in compliance with the License.
|
|
6
|
+
// You may obtain a copy of the License at
|
|
7
|
+
//
|
|
8
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//
|
|
10
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
// See the License for the specific language governing permissions and
|
|
14
|
+
// limitations under the License.
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.isStructuredMediaTypeDecoder = void 0;
|
|
17
|
+
function isStructuredMediaTypeDecoder(decoder) {
|
|
18
|
+
const rec = decoder;
|
|
19
|
+
return !!rec.decodeObject ?? false;
|
|
20
|
+
}
|
|
21
|
+
exports.isStructuredMediaTypeDecoder = isStructuredMediaTypeDecoder;
|
|
22
|
+
//# sourceMappingURL=media-type-decoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-type-decoder.js","sourceRoot":"","sources":["../../../src/media-type-codecs/media-type-decoder.ts"],"names":[],"mappings":";AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;AAgBjC,SAAgB,4BAA4B,CAC1C,OAAkE;IAElE,MAAM,GAAG,GAAG,OAA6C,CAAC;IAC1D,OAAO,CAAC,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK,CAAC;AACrC,CAAC;AALD,oEAKC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { MediaType } from '../media-type';
|
|
2
|
+
import { MediaTypeDecoder } from './media-type-decoder';
|
|
3
|
+
export interface MediaTypeDecodersBuilder {
|
|
4
|
+
addDefaults(): MediaTypeDecodersBuilder;
|
|
5
|
+
add(mediaType: MediaType, decoder: MediaTypeDecoder): MediaTypeDecodersBuilder;
|
|
6
|
+
build(): MediaTypeDecoders;
|
|
7
|
+
}
|
|
8
|
+
export interface MediaTypeDecodersBuilderConstructor {
|
|
9
|
+
new (): MediaTypeDecodersBuilder;
|
|
10
|
+
}
|
|
11
|
+
export declare class MediaTypeDecoders {
|
|
12
|
+
private decoders;
|
|
13
|
+
static Builder: MediaTypeDecodersBuilderConstructor;
|
|
14
|
+
static DEFAULT: MediaTypeDecoders;
|
|
15
|
+
constructor(decoders: Map<MediaType, MediaTypeDecoder>);
|
|
16
|
+
supports(mediaType: MediaType): boolean;
|
|
17
|
+
find(mediaType: MediaType): MediaTypeDecoder;
|
|
18
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2020 Outfox, Inc.
|
|
3
|
+
//
|
|
4
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
// you may not use this file except in compliance with the License.
|
|
6
|
+
// You may obtain a copy of the License at
|
|
7
|
+
//
|
|
8
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//
|
|
10
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
// See the License for the specific language governing permissions and
|
|
14
|
+
// limitations under the License.
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.MediaTypeDecoders = void 0;
|
|
17
|
+
const any_text_decoder_1 = require("./any-text-decoder");
|
|
18
|
+
const binary_decoder_1 = require("./binary-decoder");
|
|
19
|
+
const cbor_decoder_1 = require("./cbor-decoder");
|
|
20
|
+
const json_decoder_1 = require("./json-decoder");
|
|
21
|
+
const media_type_1 = require("../media-type");
|
|
22
|
+
class MediaTypeDecoders {
|
|
23
|
+
constructor(decoders) {
|
|
24
|
+
this.decoders = decoders;
|
|
25
|
+
}
|
|
26
|
+
supports(mediaType) {
|
|
27
|
+
return Array.from(this.decoders.keys()).some((key) => key.compatible(mediaType));
|
|
28
|
+
}
|
|
29
|
+
find(mediaType) {
|
|
30
|
+
const found = Array.from(this.decoders.entries()).find(([type]) => type.compatible(mediaType));
|
|
31
|
+
if (!found) {
|
|
32
|
+
throw Error(`Unsupported media type - ${mediaType}`);
|
|
33
|
+
}
|
|
34
|
+
return found[1];
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.MediaTypeDecoders = MediaTypeDecoders;
|
|
38
|
+
MediaTypeDecoders.Builder = class Builder {
|
|
39
|
+
constructor() {
|
|
40
|
+
this.decoders = new Map();
|
|
41
|
+
}
|
|
42
|
+
add(mediaType, decoder) {
|
|
43
|
+
this.decoders.set(mediaType, decoder);
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
addDefaults() {
|
|
47
|
+
return this.add(media_type_1.MediaType.OctetStream, binary_decoder_1.BinaryDecoder.default)
|
|
48
|
+
.add(media_type_1.MediaType.JSON, json_decoder_1.JSONDecoder.default)
|
|
49
|
+
.add(media_type_1.MediaType.CBOR, cbor_decoder_1.CBORDecoder.default)
|
|
50
|
+
.add(media_type_1.MediaType.EventStream, binary_decoder_1.BinaryDecoder.default)
|
|
51
|
+
.add(media_type_1.MediaType.AnyText, any_text_decoder_1.AnyTextDecoder.default)
|
|
52
|
+
.add(media_type_1.MediaType.X509CACert, binary_decoder_1.BinaryDecoder.default)
|
|
53
|
+
.add(media_type_1.MediaType.X509UserCert, binary_decoder_1.BinaryDecoder.default);
|
|
54
|
+
}
|
|
55
|
+
build() {
|
|
56
|
+
return new MediaTypeDecoders(this.decoders);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
MediaTypeDecoders.DEFAULT = new MediaTypeDecoders.Builder()
|
|
60
|
+
.addDefaults()
|
|
61
|
+
.build();
|
|
62
|
+
//# sourceMappingURL=media-type-decoders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-type-decoders.js","sourceRoot":"","sources":["../../../src/media-type-codecs/media-type-decoders.ts"],"names":[],"mappings":";AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;AAEjC,yDAAoD;AACpD,qDAAiD;AACjD,iDAA6C;AAC7C,iDAA6C;AAC7C,8CAA0C;AAiB1C,MAAa,iBAAiB;IAiC5B,YAAoB,QAA0C;QAA1C,aAAQ,GAAR,QAAQ,CAAkC;IAAG,CAAC;IAElE,QAAQ,CAAC,SAAoB;QAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACnD,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAC1B,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,SAAoB;QACvB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAChE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAC3B,CAAC;QACF,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,KAAK,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;SACtD;QACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;;AAjDH,8CAkDC;AAjDQ,yBAAO,GAAwC,MAAM,OAAO;IAAb;QAGpD,aAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;IAuBpD,CAAC;IArBC,GAAG,CACD,SAAoB,EACpB,OAAyB;QAEzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,sBAAS,CAAC,WAAW,EAAE,8BAAa,CAAC,OAAO,CAAC;aAC1D,GAAG,CAAC,sBAAS,CAAC,IAAI,EAAE,0BAAW,CAAC,OAAO,CAAC;aACxC,GAAG,CAAC,sBAAS,CAAC,IAAI,EAAE,0BAAW,CAAC,OAAO,CAAC;aACxC,GAAG,CAAC,sBAAS,CAAC,WAAW,EAAE,8BAAa,CAAC,OAAO,CAAC;aACjD,GAAG,CAAC,sBAAS,CAAC,OAAO,EAAE,iCAAc,CAAC,OAAO,CAAC;aAC9C,GAAG,CAAC,sBAAS,CAAC,UAAU,EAAE,8BAAa,CAAC,OAAO,CAAC;aAChD,GAAG,CAAC,sBAAS,CAAC,YAAY,EAAE,8BAAa,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,KAAK;QACH,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;CACF,CAAC;AAEK,yBAAO,GAAsB,IAAI,iBAAiB,CAAC,OAAO,EAAE;KAChE,WAAW,EAAE;KACb,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AnyType } from '../any-type';
|
|
2
|
+
export interface MediaTypeEncoder {
|
|
3
|
+
encode<T = unknown>(value: T, type: AnyType | undefined): BodyInit;
|
|
4
|
+
}
|
|
5
|
+
export interface URLQueryParamsEncoder extends MediaTypeEncoder {
|
|
6
|
+
encodeQueryString(value: Record<string, unknown>): string;
|
|
7
|
+
}
|
|
8
|
+
export declare function isURLQueryParamsEncoder(encoder: MediaTypeEncoder | URLQueryParamsEncoder | undefined): encoder is URLQueryParamsEncoder;
|
|
9
|
+
export interface StructuredMediaTypeEncoder extends MediaTypeEncoder {
|
|
10
|
+
encodeObject<T = unknown>(value: T, type?: AnyType, includeNulls?: boolean): Record<string, unknown>;
|
|
11
|
+
}
|
|
12
|
+
export declare function isStructuredMediaTypeEncoder(encoder: MediaTypeEncoder | StructuredMediaTypeEncoder | undefined): encoder is StructuredMediaTypeEncoder;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2020 Outfox, Inc.
|
|
3
|
+
//
|
|
4
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
// you may not use this file except in compliance with the License.
|
|
6
|
+
// You may obtain a copy of the License at
|
|
7
|
+
//
|
|
8
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//
|
|
10
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
// See the License for the specific language governing permissions and
|
|
14
|
+
// limitations under the License.
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.isStructuredMediaTypeEncoder = exports.isURLQueryParamsEncoder = void 0;
|
|
17
|
+
function isURLQueryParamsEncoder(encoder) {
|
|
18
|
+
const rec = encoder;
|
|
19
|
+
return !!rec.encodeQueryString ?? false;
|
|
20
|
+
}
|
|
21
|
+
exports.isURLQueryParamsEncoder = isURLQueryParamsEncoder;
|
|
22
|
+
function isStructuredMediaTypeEncoder(encoder) {
|
|
23
|
+
const rec = encoder;
|
|
24
|
+
return !!rec.encodeObject ?? false;
|
|
25
|
+
}
|
|
26
|
+
exports.isStructuredMediaTypeEncoder = isStructuredMediaTypeEncoder;
|
|
27
|
+
//# sourceMappingURL=media-type-encoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-type-encoder.js","sourceRoot":"","sources":["../../../src/media-type-codecs/media-type-encoder.ts"],"names":[],"mappings":";AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;AAYjC,SAAgB,uBAAuB,CACrC,OAA6D;IAE7D,MAAM,GAAG,GAAG,OAA6C,CAAC;IAC1D,OAAO,CAAC,CAAC,GAAG,CAAC,iBAAiB,IAAI,KAAK,CAAC;AAC1C,CAAC;AALD,0DAKC;AAUD,SAAgB,4BAA4B,CAC1C,OAAkE;IAElE,MAAM,GAAG,GAAG,OAA6C,CAAC;IAC1D,OAAO,CAAC,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK,CAAC;AACrC,CAAC;AALD,oEAKC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { MediaType } from '../media-type';
|
|
2
|
+
import { MediaTypeEncoder } from './media-type-encoder';
|
|
3
|
+
export interface MediaTypeEncodersBuilder {
|
|
4
|
+
addDefaults(): MediaTypeEncodersBuilder;
|
|
5
|
+
add(mediaType: MediaType, encoder: MediaTypeEncoder): MediaTypeEncodersBuilder;
|
|
6
|
+
build(): MediaTypeEncoders;
|
|
7
|
+
}
|
|
8
|
+
export interface MediaTypeEncodersBuilderConstructor {
|
|
9
|
+
new (): MediaTypeEncodersBuilder;
|
|
10
|
+
}
|
|
11
|
+
export declare class MediaTypeEncoders {
|
|
12
|
+
private encoders;
|
|
13
|
+
static Builder: MediaTypeEncodersBuilderConstructor;
|
|
14
|
+
static DEFAULT: MediaTypeEncoders;
|
|
15
|
+
constructor(encoders: Map<MediaType, MediaTypeEncoder>);
|
|
16
|
+
supports(mediaType: MediaType): boolean;
|
|
17
|
+
find(mediaType: MediaType): MediaTypeEncoder;
|
|
18
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2020 Outfox, Inc.
|
|
3
|
+
//
|
|
4
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
// you may not use this file except in compliance with the License.
|
|
6
|
+
// You may obtain a copy of the License at
|
|
7
|
+
//
|
|
8
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//
|
|
10
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
// See the License for the specific language governing permissions and
|
|
14
|
+
// limitations under the License.
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.MediaTypeEncoders = void 0;
|
|
17
|
+
const media_type_1 = require("../media-type");
|
|
18
|
+
const any_text_encoder_1 = require("./any-text-encoder");
|
|
19
|
+
const binary_encoder_1 = require("./binary-encoder");
|
|
20
|
+
const cbor_encoder_1 = require("./cbor-encoder");
|
|
21
|
+
const json_encoder_1 = require("./json-encoder");
|
|
22
|
+
const www_form_url_encoder_1 = require("./www-form-url-encoder");
|
|
23
|
+
class MediaTypeEncoders {
|
|
24
|
+
constructor(encoders) {
|
|
25
|
+
this.encoders = encoders;
|
|
26
|
+
}
|
|
27
|
+
supports(mediaType) {
|
|
28
|
+
return Array.from(this.encoders.keys()).some((key) => key.compatible(mediaType));
|
|
29
|
+
}
|
|
30
|
+
find(mediaType) {
|
|
31
|
+
const found = Array.from(this.encoders.entries()).find(([type]) => type.compatible(mediaType));
|
|
32
|
+
if (!found) {
|
|
33
|
+
throw Error(`Unsupported media type - ${mediaType}`);
|
|
34
|
+
}
|
|
35
|
+
return found[1];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.MediaTypeEncoders = MediaTypeEncoders;
|
|
39
|
+
MediaTypeEncoders.Builder = class Builder {
|
|
40
|
+
constructor() {
|
|
41
|
+
this.encoders = new Map();
|
|
42
|
+
}
|
|
43
|
+
add(mediaType, encoder) {
|
|
44
|
+
this.encoders.set(mediaType, encoder);
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
addDefaults() {
|
|
48
|
+
return this.add(media_type_1.MediaType.OctetStream, binary_encoder_1.BinaryEncoder.default)
|
|
49
|
+
.add(media_type_1.MediaType.WWWFormUrlEncoded, www_form_url_encoder_1.WWWFormUrlEncoder.default)
|
|
50
|
+
.add(media_type_1.MediaType.JSON, json_encoder_1.JSONEncoder.default)
|
|
51
|
+
.add(media_type_1.MediaType.JSONStructured, json_encoder_1.JSONEncoder.default)
|
|
52
|
+
.add(media_type_1.MediaType.CBOR, cbor_encoder_1.CBOREncoder.default)
|
|
53
|
+
.add(media_type_1.MediaType.AnyText, any_text_encoder_1.AnyTextEncoder.default)
|
|
54
|
+
.add(media_type_1.MediaType.X509CACert, binary_encoder_1.BinaryEncoder.default)
|
|
55
|
+
.add(media_type_1.MediaType.X509UserCert, binary_encoder_1.BinaryEncoder.default);
|
|
56
|
+
}
|
|
57
|
+
build() {
|
|
58
|
+
return new MediaTypeEncoders(this.encoders);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
MediaTypeEncoders.DEFAULT = new MediaTypeEncoders.Builder()
|
|
62
|
+
.addDefaults()
|
|
63
|
+
.build();
|
|
64
|
+
//# sourceMappingURL=media-type-encoders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-type-encoders.js","sourceRoot":"","sources":["../../../src/media-type-codecs/media-type-encoders.ts"],"names":[],"mappings":";AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;AAEjC,8CAA0C;AAC1C,yDAAoD;AACpD,qDAAiD;AACjD,iDAA6C;AAC7C,iDAA6C;AAE7C,iEAA2D;AAgB3D,MAAa,iBAAiB;IAkC5B,YAAoB,QAA0C;QAA1C,aAAQ,GAAR,QAAQ,CAAkC;IAAG,CAAC;IAElE,QAAQ,CAAC,SAAoB;QAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACnD,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAC1B,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,SAAoB;QACvB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAChE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAC3B,CAAC;QACF,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,KAAK,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;SACtD;QACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;;AAlDH,8CAmDC;AAlDQ,yBAAO,GAAwC,MAAM,OAAO;IAAb;QAGpD,aAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;IAwBpD,CAAC;IAtBC,GAAG,CACD,SAAoB,EACpB,OAAyB;QAEzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,sBAAS,CAAC,WAAW,EAAE,8BAAa,CAAC,OAAO,CAAC;aAC1D,GAAG,CAAC,sBAAS,CAAC,iBAAiB,EAAE,wCAAiB,CAAC,OAAO,CAAC;aAC3D,GAAG,CAAC,sBAAS,CAAC,IAAI,EAAE,0BAAW,CAAC,OAAO,CAAC;aACxC,GAAG,CAAC,sBAAS,CAAC,cAAc,EAAE,0BAAW,CAAC,OAAO,CAAC;aAClD,GAAG,CAAC,sBAAS,CAAC,IAAI,EAAE,0BAAW,CAAC,OAAO,CAAC;aACxC,GAAG,CAAC,sBAAS,CAAC,OAAO,EAAE,iCAAc,CAAC,OAAO,CAAC;aAC9C,GAAG,CAAC,sBAAS,CAAC,UAAU,EAAE,8BAAa,CAAC,OAAO,CAAC;aAChD,GAAG,CAAC,sBAAS,CAAC,YAAY,EAAE,8BAAa,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,KAAK;QACH,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;CACF,CAAC;AAEK,yBAAO,GAAsB,IAAI,iBAAiB,CAAC,OAAO,EAAE;KAChE,WAAW,EAAE;KACb,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { JsonStringifier } from '@outfoxx/jackson-js';
|
|
2
|
+
import { URLQueryParamsEncoder } from './media-type-encoder';
|
|
3
|
+
export declare class WWWFormUrlEncoder implements URLQueryParamsEncoder {
|
|
4
|
+
private arrayEncoding;
|
|
5
|
+
private boolEncoding;
|
|
6
|
+
private dateEncoding;
|
|
7
|
+
private json;
|
|
8
|
+
private encoder;
|
|
9
|
+
static get default(): WWWFormUrlEncoder;
|
|
10
|
+
constructor(arrayEncoding: WWWFormUrlEncoder.ArrayEncoding, boolEncoding: WWWFormUrlEncoder.BoolEncoding, dateEncoding: WWWFormUrlEncoder.DateEncoding, json?: JsonStringifier<unknown>, encoder?: TextEncoder);
|
|
11
|
+
encode<T = unknown>(value: T): ArrayBuffer | SharedArrayBuffer;
|
|
12
|
+
encodeQueryString(parameters: Record<string, unknown>): string;
|
|
13
|
+
encodeQueryComponent(key: string, value: unknown): string[];
|
|
14
|
+
}
|
|
15
|
+
export declare namespace WWWFormUrlEncoder {
|
|
16
|
+
/**
|
|
17
|
+
* Configures how `Array` parameters are encoded.
|
|
18
|
+
*/
|
|
19
|
+
enum ArrayEncoding {
|
|
20
|
+
/**
|
|
21
|
+
* An empty set of square brackets is appended to the key for every value. This is the default behavior.
|
|
22
|
+
*/
|
|
23
|
+
BRACKETED = 0,
|
|
24
|
+
/**
|
|
25
|
+
* No brackets are appended. The key is encoded as is.
|
|
26
|
+
*/
|
|
27
|
+
UNBRACKETED = 1
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Configures how `Bool` parameters are encoded.
|
|
31
|
+
*/
|
|
32
|
+
enum BoolEncoding {
|
|
33
|
+
/**
|
|
34
|
+
* Encode `true` as `1` and `false` as `0`. This is the default behavior.
|
|
35
|
+
*/
|
|
36
|
+
NUMERIC = 0,
|
|
37
|
+
/**
|
|
38
|
+
* Encode `true` and `false` as string literals.
|
|
39
|
+
*/
|
|
40
|
+
LITERAL = 1
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Configures how `Date` parameters are encoded.
|
|
44
|
+
*/
|
|
45
|
+
enum DateEncoding {
|
|
46
|
+
/**
|
|
47
|
+
* Encode the `Date` as a UNIX timestamp (decimal seconds since epoch).
|
|
48
|
+
*/
|
|
49
|
+
DECIMAL_SECONDS_SINCE_EPOCH = 0,
|
|
50
|
+
/**
|
|
51
|
+
* Encode the `Date` as UNIX millisecond timestamp (integer milliseconds since epoch).
|
|
52
|
+
*/
|
|
53
|
+
MILLISECONDS_SINCE_EPOCH = 1,
|
|
54
|
+
/**
|
|
55
|
+
* Encode the `Date` as an ISO-8601-formatted string (in RFC 3339 format). This is the default behavior.
|
|
56
|
+
*/
|
|
57
|
+
ISO8601 = 2
|
|
58
|
+
}
|
|
59
|
+
}
|