@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,198 @@
|
|
|
1
|
+
// Copyright 2020 Outfox, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
import { DateTimeFormatter, Instant, LocalDate, LocalDateTime, LocalTime, OffsetDateTime, OffsetTime, Temporal, ZonedDateTime, } from '@js-joda/core';
|
|
15
|
+
import { JsonStringifier } from '@outfoxx/jackson-js';
|
|
16
|
+
export class WWWFormUrlEncoder {
|
|
17
|
+
constructor(arrayEncoding, boolEncoding, dateEncoding, json = new JsonStringifier(), encoder = new TextEncoder()) {
|
|
18
|
+
this.arrayEncoding = arrayEncoding;
|
|
19
|
+
this.boolEncoding = boolEncoding;
|
|
20
|
+
this.dateEncoding = dateEncoding;
|
|
21
|
+
this.json = json;
|
|
22
|
+
this.encoder = encoder;
|
|
23
|
+
}
|
|
24
|
+
static get default() {
|
|
25
|
+
return new WWWFormUrlEncoder(WWWFormUrlEncoder.ArrayEncoding.UNBRACKETED, WWWFormUrlEncoder.BoolEncoding.LITERAL, WWWFormUrlEncoder.DateEncoding.DECIMAL_SECONDS_SINCE_EPOCH);
|
|
26
|
+
}
|
|
27
|
+
encode(value) {
|
|
28
|
+
const parameters = this.json.transform(value);
|
|
29
|
+
return this.encoder.encode(this.encodeQueryString(parameters));
|
|
30
|
+
}
|
|
31
|
+
encodeQueryString(parameters) {
|
|
32
|
+
const components = [];
|
|
33
|
+
for (const [key, value] of Object.entries(parameters).sort()) {
|
|
34
|
+
components.push(...this.encodeQueryComponent(key, value));
|
|
35
|
+
}
|
|
36
|
+
return components.join('&');
|
|
37
|
+
}
|
|
38
|
+
encodeQueryComponent(key, value) {
|
|
39
|
+
const components = [];
|
|
40
|
+
if (value === undefined) {
|
|
41
|
+
return components;
|
|
42
|
+
}
|
|
43
|
+
if (value == null) {
|
|
44
|
+
//
|
|
45
|
+
components.push(encodeURIComponent(key));
|
|
46
|
+
}
|
|
47
|
+
else if (value instanceof Array || value instanceof Set) {
|
|
48
|
+
// encode key according to `arrayEncoding`
|
|
49
|
+
for (const item of value) {
|
|
50
|
+
components.push(...this.encodeQueryComponent(encodeArrayKey(key, this.arrayEncoding), item));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else if (value instanceof Map) {
|
|
54
|
+
//
|
|
55
|
+
for (const [nestedKey, nestedValue] of Array.from(value.entries()).sort()) {
|
|
56
|
+
components.push(...this.encodeQueryComponent(`${key}[${nestedKey}]`, nestedValue));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else if (value instanceof Date) {
|
|
60
|
+
//
|
|
61
|
+
components.push(encodeURIComponent(key) +
|
|
62
|
+
'=' +
|
|
63
|
+
encodeURIComponent(encodeInstant(Instant.ofEpochMilli(value.getTime()), this.dateEncoding)));
|
|
64
|
+
}
|
|
65
|
+
else if (value instanceof Temporal) {
|
|
66
|
+
//
|
|
67
|
+
components.push(encodeURIComponent(key) +
|
|
68
|
+
'=' +
|
|
69
|
+
encodeURIComponent(encodeTemporal(value, this.dateEncoding)));
|
|
70
|
+
}
|
|
71
|
+
else if (typeof value === 'boolean') {
|
|
72
|
+
//
|
|
73
|
+
components.push(encodeURIComponent(key) +
|
|
74
|
+
'=' +
|
|
75
|
+
encodeURIComponent(encodeBoolean(value, this.boolEncoding)));
|
|
76
|
+
}
|
|
77
|
+
else if (typeof value === 'object') {
|
|
78
|
+
//
|
|
79
|
+
const rec = (value ?? {});
|
|
80
|
+
for (const [nestedKey, nestedValue] of Object.entries(rec).sort()) {
|
|
81
|
+
components.push(...this.encodeQueryComponent(`${key}[${nestedKey}]`, nestedValue));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
//
|
|
86
|
+
components.push(encodeURIComponent(key) + '=' + encodeURIComponent(`${value}`));
|
|
87
|
+
}
|
|
88
|
+
return components;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function encodeArrayKey(key, encoding) {
|
|
92
|
+
return encoding === WWWFormUrlEncoder.ArrayEncoding.BRACKETED
|
|
93
|
+
? `${key}[]`
|
|
94
|
+
: key;
|
|
95
|
+
}
|
|
96
|
+
function encodeBoolean(value, encoding) {
|
|
97
|
+
switch (encoding) {
|
|
98
|
+
case WWWFormUrlEncoder.BoolEncoding.NUMERIC:
|
|
99
|
+
return value ? '1' : '0';
|
|
100
|
+
case WWWFormUrlEncoder.BoolEncoding.LITERAL:
|
|
101
|
+
return value ? 'true' : 'false';
|
|
102
|
+
default:
|
|
103
|
+
throw new Error('unknown boolean encoding');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function encodeTemporal(value, encoding) {
|
|
107
|
+
if (value instanceof Instant) {
|
|
108
|
+
return encodeInstant(value, encoding);
|
|
109
|
+
}
|
|
110
|
+
else if (value instanceof OffsetDateTime) {
|
|
111
|
+
if (encoding == WWWFormUrlEncoder.DateEncoding.ISO8601) {
|
|
112
|
+
return value.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME);
|
|
113
|
+
}
|
|
114
|
+
return encodeInstant(value.toInstant(), encoding);
|
|
115
|
+
}
|
|
116
|
+
else if (value instanceof ZonedDateTime) {
|
|
117
|
+
if (encoding == WWWFormUrlEncoder.DateEncoding.ISO8601) {
|
|
118
|
+
return value.format(DateTimeFormatter.ISO_ZONED_DATE_TIME);
|
|
119
|
+
}
|
|
120
|
+
return encodeInstant(value.toInstant(), encoding);
|
|
121
|
+
}
|
|
122
|
+
else if (value instanceof LocalDateTime) {
|
|
123
|
+
return value.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);
|
|
124
|
+
}
|
|
125
|
+
else if (value instanceof LocalDate) {
|
|
126
|
+
return value.format(DateTimeFormatter.ISO_LOCAL_DATE);
|
|
127
|
+
}
|
|
128
|
+
else if (value instanceof LocalTime) {
|
|
129
|
+
return value.format(DateTimeFormatter.ISO_LOCAL_TIME);
|
|
130
|
+
}
|
|
131
|
+
else if (value instanceof OffsetTime) {
|
|
132
|
+
return value.format(DateTimeFormatter.ISO_OFFSET_TIME);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
throw Error('unsupported temporal value for ');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function encodeInstant(value, encoding) {
|
|
139
|
+
switch (encoding) {
|
|
140
|
+
case WWWFormUrlEncoder.DateEncoding.DECIMAL_SECONDS_SINCE_EPOCH:
|
|
141
|
+
return (value.epochSecond() + value.nano() / 1000000000).toFixed(7);
|
|
142
|
+
case WWWFormUrlEncoder.DateEncoding.MILLISECONDS_SINCE_EPOCH:
|
|
143
|
+
return `${value.toEpochMilli()}`;
|
|
144
|
+
case WWWFormUrlEncoder.DateEncoding.ISO8601:
|
|
145
|
+
return DateTimeFormatter.ISO_INSTANT.format(value);
|
|
146
|
+
default:
|
|
147
|
+
throw new Error('unknown date encoding');
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
(function (WWWFormUrlEncoder) {
|
|
151
|
+
/**
|
|
152
|
+
* Configures how `Array` parameters are encoded.
|
|
153
|
+
*/
|
|
154
|
+
let ArrayEncoding;
|
|
155
|
+
(function (ArrayEncoding) {
|
|
156
|
+
/**
|
|
157
|
+
* An empty set of square brackets is appended to the key for every value. This is the default behavior.
|
|
158
|
+
*/
|
|
159
|
+
ArrayEncoding[ArrayEncoding["BRACKETED"] = 0] = "BRACKETED";
|
|
160
|
+
/**
|
|
161
|
+
* No brackets are appended. The key is encoded as is.
|
|
162
|
+
*/
|
|
163
|
+
ArrayEncoding[ArrayEncoding["UNBRACKETED"] = 1] = "UNBRACKETED";
|
|
164
|
+
})(ArrayEncoding = WWWFormUrlEncoder.ArrayEncoding || (WWWFormUrlEncoder.ArrayEncoding = {}));
|
|
165
|
+
/**
|
|
166
|
+
* Configures how `Bool` parameters are encoded.
|
|
167
|
+
*/
|
|
168
|
+
let BoolEncoding;
|
|
169
|
+
(function (BoolEncoding) {
|
|
170
|
+
/**
|
|
171
|
+
* Encode `true` as `1` and `false` as `0`. This is the default behavior.
|
|
172
|
+
*/
|
|
173
|
+
BoolEncoding[BoolEncoding["NUMERIC"] = 0] = "NUMERIC";
|
|
174
|
+
/**
|
|
175
|
+
* Encode `true` and `false` as string literals.
|
|
176
|
+
*/
|
|
177
|
+
BoolEncoding[BoolEncoding["LITERAL"] = 1] = "LITERAL";
|
|
178
|
+
})(BoolEncoding = WWWFormUrlEncoder.BoolEncoding || (WWWFormUrlEncoder.BoolEncoding = {}));
|
|
179
|
+
/**
|
|
180
|
+
* Configures how `Date` parameters are encoded.
|
|
181
|
+
*/
|
|
182
|
+
let DateEncoding;
|
|
183
|
+
(function (DateEncoding) {
|
|
184
|
+
/**
|
|
185
|
+
* Encode the `Date` as a UNIX timestamp (decimal seconds since epoch).
|
|
186
|
+
*/
|
|
187
|
+
DateEncoding[DateEncoding["DECIMAL_SECONDS_SINCE_EPOCH"] = 0] = "DECIMAL_SECONDS_SINCE_EPOCH";
|
|
188
|
+
/**
|
|
189
|
+
* Encode the `Date` as UNIX millisecond timestamp (integer milliseconds since epoch).
|
|
190
|
+
*/
|
|
191
|
+
DateEncoding[DateEncoding["MILLISECONDS_SINCE_EPOCH"] = 1] = "MILLISECONDS_SINCE_EPOCH";
|
|
192
|
+
/**
|
|
193
|
+
* Encode the `Date` as an ISO-8601-formatted string (in RFC 3339 format). This is the default behavior.
|
|
194
|
+
*/
|
|
195
|
+
DateEncoding[DateEncoding["ISO8601"] = 2] = "ISO8601";
|
|
196
|
+
})(DateEncoding = WWWFormUrlEncoder.DateEncoding || (WWWFormUrlEncoder.DateEncoding = {}));
|
|
197
|
+
})(WWWFormUrlEncoder || (WWWFormUrlEncoder = {}));
|
|
198
|
+
//# sourceMappingURL=www-form-url-encoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"www-form-url-encoder.js","sourceRoot":"","sources":["../../../src/media-type-codecs/www-form-url-encoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
export declare class MediaType {
|
|
2
|
+
type: MediaType.Type;
|
|
3
|
+
tree: MediaType.Tree;
|
|
4
|
+
subtype: string;
|
|
5
|
+
suffix?: MediaType.Suffix;
|
|
6
|
+
parameters: Record<string, string>;
|
|
7
|
+
constructor(params: {
|
|
8
|
+
type: MediaType.Type;
|
|
9
|
+
tree?: MediaType.Tree;
|
|
10
|
+
subtype: string;
|
|
11
|
+
suffix?: MediaType.Suffix;
|
|
12
|
+
parameters?: Record<string, string>;
|
|
13
|
+
});
|
|
14
|
+
parameter(name: MediaType.ParameterName | string): string | undefined;
|
|
15
|
+
with(params: {
|
|
16
|
+
type?: MediaType.Type;
|
|
17
|
+
tree?: MediaType.Tree;
|
|
18
|
+
subtype?: string;
|
|
19
|
+
suffix?: MediaType.Suffix;
|
|
20
|
+
parameters?: Record<string, string>;
|
|
21
|
+
}): MediaType;
|
|
22
|
+
withParameter(parameter: MediaType.ParameterName | string, value: string): MediaType;
|
|
23
|
+
get value(): string;
|
|
24
|
+
compatible(other: MediaType): boolean;
|
|
25
|
+
equals(other: MediaType): boolean;
|
|
26
|
+
toString(): string;
|
|
27
|
+
}
|
|
28
|
+
export declare namespace MediaType {
|
|
29
|
+
enum Type {
|
|
30
|
+
Application = "application",
|
|
31
|
+
Audio = "audio",
|
|
32
|
+
Example = "example",
|
|
33
|
+
Font = "font",
|
|
34
|
+
Image = "image",
|
|
35
|
+
Message = "message",
|
|
36
|
+
Model = "model",
|
|
37
|
+
Multipart = "multipart",
|
|
38
|
+
Text = "text",
|
|
39
|
+
Video = "video",
|
|
40
|
+
Any = "*"
|
|
41
|
+
}
|
|
42
|
+
namespace Type {
|
|
43
|
+
function from(value: string): Type | undefined;
|
|
44
|
+
}
|
|
45
|
+
enum Tree {
|
|
46
|
+
Standard = "",
|
|
47
|
+
Vendor = "vnd.",
|
|
48
|
+
Personal = "prs.",
|
|
49
|
+
Unregistered = "x.",
|
|
50
|
+
Obsolete = "x-",
|
|
51
|
+
Any = "*"
|
|
52
|
+
}
|
|
53
|
+
namespace Tree {
|
|
54
|
+
function from(value: string): Tree | undefined;
|
|
55
|
+
}
|
|
56
|
+
enum Suffix {
|
|
57
|
+
XML = "xml",
|
|
58
|
+
JSON = "json",
|
|
59
|
+
BER = "ber",
|
|
60
|
+
DER = "der",
|
|
61
|
+
FastInfoSet = "fastinfoset",
|
|
62
|
+
WBXML = "wbxml",
|
|
63
|
+
Zip = "zip",
|
|
64
|
+
CBOR = "cbor"
|
|
65
|
+
}
|
|
66
|
+
namespace Suffix {
|
|
67
|
+
function from(value: string): Suffix | undefined;
|
|
68
|
+
}
|
|
69
|
+
enum ParameterName {
|
|
70
|
+
CharSet = "charset"
|
|
71
|
+
}
|
|
72
|
+
function from(value?: string | null): MediaType;
|
|
73
|
+
function from(value: string | null | undefined, def: MediaType): MediaType;
|
|
74
|
+
const Plain: MediaType;
|
|
75
|
+
const HTML: MediaType;
|
|
76
|
+
const JSON: MediaType;
|
|
77
|
+
const YAML: MediaType;
|
|
78
|
+
const CBOR: MediaType;
|
|
79
|
+
const EventStream: MediaType;
|
|
80
|
+
const OctetStream: MediaType;
|
|
81
|
+
const WWWFormUrlEncoded: MediaType;
|
|
82
|
+
const X509CACert: MediaType;
|
|
83
|
+
const X509UserCert: MediaType;
|
|
84
|
+
const Any: MediaType;
|
|
85
|
+
const AnyText: MediaType;
|
|
86
|
+
const AnyImage: MediaType;
|
|
87
|
+
const AnyAudio: MediaType;
|
|
88
|
+
const AnyVideo: MediaType;
|
|
89
|
+
const JSONStructured: MediaType;
|
|
90
|
+
const XMLStructured: MediaType;
|
|
91
|
+
const Problem: MediaType;
|
|
92
|
+
const JsonPatch: MediaType;
|
|
93
|
+
const MergePatch: MediaType;
|
|
94
|
+
}
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
// Copyright 2020 Outfox, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
export class MediaType {
|
|
15
|
+
constructor(params) {
|
|
16
|
+
this.type = params.type;
|
|
17
|
+
this.tree = params.tree ?? MediaType.Tree.Standard;
|
|
18
|
+
this.subtype = params.subtype.toLowerCase();
|
|
19
|
+
this.suffix = params.suffix;
|
|
20
|
+
this.parameters = Object.entries(params.parameters ?? {}).reduce((obj, [name, value]) => {
|
|
21
|
+
obj[name.toLowerCase()] = value.toLowerCase();
|
|
22
|
+
return obj;
|
|
23
|
+
}, {});
|
|
24
|
+
}
|
|
25
|
+
parameter(name) {
|
|
26
|
+
return this.parameters[name];
|
|
27
|
+
}
|
|
28
|
+
with(params) {
|
|
29
|
+
return new MediaType({
|
|
30
|
+
type: params.type ?? this.type,
|
|
31
|
+
tree: params.tree ?? this.tree,
|
|
32
|
+
subtype: params.subtype ?? this.subtype,
|
|
33
|
+
suffix: params.suffix ?? this.suffix,
|
|
34
|
+
parameters: params.parameters ?? this.parameters,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
withParameter(parameter, value) {
|
|
38
|
+
const parameters = Object.assign({}, this.parameters, {
|
|
39
|
+
[parameter]: value,
|
|
40
|
+
});
|
|
41
|
+
return this.with({ parameters });
|
|
42
|
+
}
|
|
43
|
+
get value() {
|
|
44
|
+
const type = this.type;
|
|
45
|
+
const tree = this.tree;
|
|
46
|
+
const suffix = this.suffix ? `+${this.suffix.toLowerCase()}` : '';
|
|
47
|
+
const parameters = Object.keys(this.parameters)
|
|
48
|
+
.sort()
|
|
49
|
+
.map((key) => `;${key}=${this.parameters[key]}`)
|
|
50
|
+
.join('');
|
|
51
|
+
return `${type}/${tree}${this.subtype}${suffix}${parameters}`;
|
|
52
|
+
}
|
|
53
|
+
compatible(other) {
|
|
54
|
+
if (this.type != MediaType.Type.Any &&
|
|
55
|
+
other.type != MediaType.Type.Any &&
|
|
56
|
+
this.type != other.type) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
if (this.tree != MediaType.Tree.Any &&
|
|
60
|
+
other.tree != MediaType.Tree.Any &&
|
|
61
|
+
this.tree != other.tree) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
if (this.subtype != '*' &&
|
|
65
|
+
other.subtype != '*' &&
|
|
66
|
+
this.subtype != other.subtype) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
if (this.suffix != other.suffix) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
const thisKeys = Object.keys(this.parameters);
|
|
73
|
+
const otherKeys = Object.keys(other.parameters);
|
|
74
|
+
return thisKeys
|
|
75
|
+
.filter((key) => otherKeys.includes(key))
|
|
76
|
+
.every((key) => this.parameters[key] == other.parameters[key]);
|
|
77
|
+
}
|
|
78
|
+
equals(other) {
|
|
79
|
+
if (this === other)
|
|
80
|
+
return true;
|
|
81
|
+
if (this.type != other.type)
|
|
82
|
+
return false;
|
|
83
|
+
if (this.tree != other.tree)
|
|
84
|
+
return false;
|
|
85
|
+
if (this.suffix != other.suffix)
|
|
86
|
+
return false;
|
|
87
|
+
if (this.subtype != other.subtype)
|
|
88
|
+
return false;
|
|
89
|
+
for (const parameterName of Object.keys(this.parameters)) {
|
|
90
|
+
if (this.parameters[parameterName] != other.parameters[parameterName]) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
toString() {
|
|
97
|
+
return this.value;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
(function (MediaType) {
|
|
101
|
+
let Type;
|
|
102
|
+
(function (Type) {
|
|
103
|
+
Type["Application"] = "application";
|
|
104
|
+
Type["Audio"] = "audio";
|
|
105
|
+
Type["Example"] = "example";
|
|
106
|
+
Type["Font"] = "font";
|
|
107
|
+
Type["Image"] = "image";
|
|
108
|
+
Type["Message"] = "message";
|
|
109
|
+
Type["Model"] = "model";
|
|
110
|
+
Type["Multipart"] = "multipart";
|
|
111
|
+
Type["Text"] = "text";
|
|
112
|
+
Type["Video"] = "video";
|
|
113
|
+
Type["Any"] = "*";
|
|
114
|
+
})(Type = MediaType.Type || (MediaType.Type = {}));
|
|
115
|
+
(function (Type) {
|
|
116
|
+
function from(value) {
|
|
117
|
+
return Object.values(Type).includes(value)
|
|
118
|
+
? value
|
|
119
|
+
: undefined;
|
|
120
|
+
}
|
|
121
|
+
Type.from = from;
|
|
122
|
+
})(Type = MediaType.Type || (MediaType.Type = {}));
|
|
123
|
+
let Tree;
|
|
124
|
+
(function (Tree) {
|
|
125
|
+
Tree["Standard"] = "";
|
|
126
|
+
Tree["Vendor"] = "vnd.";
|
|
127
|
+
Tree["Personal"] = "prs.";
|
|
128
|
+
Tree["Unregistered"] = "x.";
|
|
129
|
+
Tree["Obsolete"] = "x-";
|
|
130
|
+
Tree["Any"] = "*";
|
|
131
|
+
})(Tree = MediaType.Tree || (MediaType.Tree = {}));
|
|
132
|
+
(function (Tree) {
|
|
133
|
+
function from(value) {
|
|
134
|
+
return Object.values(Tree).includes(value)
|
|
135
|
+
? value
|
|
136
|
+
: undefined;
|
|
137
|
+
}
|
|
138
|
+
Tree.from = from;
|
|
139
|
+
})(Tree = MediaType.Tree || (MediaType.Tree = {}));
|
|
140
|
+
let Suffix;
|
|
141
|
+
(function (Suffix) {
|
|
142
|
+
Suffix["XML"] = "xml";
|
|
143
|
+
Suffix["JSON"] = "json";
|
|
144
|
+
Suffix["BER"] = "ber";
|
|
145
|
+
Suffix["DER"] = "der";
|
|
146
|
+
Suffix["FastInfoSet"] = "fastinfoset";
|
|
147
|
+
Suffix["WBXML"] = "wbxml";
|
|
148
|
+
Suffix["Zip"] = "zip";
|
|
149
|
+
Suffix["CBOR"] = "cbor";
|
|
150
|
+
})(Suffix = MediaType.Suffix || (MediaType.Suffix = {}));
|
|
151
|
+
(function (Suffix) {
|
|
152
|
+
function from(value) {
|
|
153
|
+
return Object.values(Suffix).includes(value)
|
|
154
|
+
? value
|
|
155
|
+
: undefined;
|
|
156
|
+
}
|
|
157
|
+
Suffix.from = from;
|
|
158
|
+
})(Suffix = MediaType.Suffix || (MediaType.Suffix = {}));
|
|
159
|
+
let ParameterName;
|
|
160
|
+
(function (ParameterName) {
|
|
161
|
+
ParameterName["CharSet"] = "charset";
|
|
162
|
+
})(ParameterName = MediaType.ParameterName || (MediaType.ParameterName = {}));
|
|
163
|
+
function from(value, def = undefined) {
|
|
164
|
+
const reqDef = () => {
|
|
165
|
+
if (!def) {
|
|
166
|
+
throw Error('Invalid media type');
|
|
167
|
+
}
|
|
168
|
+
return def;
|
|
169
|
+
};
|
|
170
|
+
if (!value) {
|
|
171
|
+
return reqDef();
|
|
172
|
+
}
|
|
173
|
+
fullRegex.lastIndex = 0;
|
|
174
|
+
const match = fullRegex.exec(value);
|
|
175
|
+
if (match?.[0] != value) {
|
|
176
|
+
return reqDef();
|
|
177
|
+
}
|
|
178
|
+
const type = MediaType.Type.from(match[1]?.toLowerCase());
|
|
179
|
+
if (!type) {
|
|
180
|
+
return reqDef();
|
|
181
|
+
}
|
|
182
|
+
const tree = MediaType.Tree.from(match[2]?.toLowerCase()) ?? MediaType.Tree.Standard;
|
|
183
|
+
const subtype = match[3]?.toLowerCase();
|
|
184
|
+
if (!subtype) {
|
|
185
|
+
return reqDef();
|
|
186
|
+
}
|
|
187
|
+
const suffix = MediaType.Suffix.from(match[4]?.toLowerCase());
|
|
188
|
+
const parameters = {};
|
|
189
|
+
let parametersMatch = paramRegex.exec(match[5] ?? '');
|
|
190
|
+
while (parametersMatch?.[0]) {
|
|
191
|
+
const name = parametersMatch[1];
|
|
192
|
+
if (!name)
|
|
193
|
+
continue;
|
|
194
|
+
const value = parametersMatch[2];
|
|
195
|
+
if (!value)
|
|
196
|
+
continue;
|
|
197
|
+
parameters[name.toLowerCase()] = value.toLowerCase();
|
|
198
|
+
parametersMatch = paramRegex.exec(match[5]);
|
|
199
|
+
}
|
|
200
|
+
return new MediaType({
|
|
201
|
+
type,
|
|
202
|
+
tree,
|
|
203
|
+
subtype,
|
|
204
|
+
suffix,
|
|
205
|
+
parameters,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
MediaType.from = from;
|
|
209
|
+
const fullRegex = /^((?:[a-z]+|\*))\/(x(?:-|\\.)|(?:(?:vnd|prs|x)\.)|\*)?([a-z0-9\-.]+|\*)(?:\+([a-z]+))?( *(?:; *(?:(?:[\w.-]+) *= *(?:[\w.-]+)) *)*)$/gi;
|
|
210
|
+
const paramRegex = / *; *([\w.-]+) *= *([\w.-]+)/gi;
|
|
211
|
+
MediaType.Plain = new MediaType({
|
|
212
|
+
type: MediaType.Type.Text,
|
|
213
|
+
subtype: 'plain',
|
|
214
|
+
});
|
|
215
|
+
MediaType.HTML = new MediaType({
|
|
216
|
+
type: MediaType.Type.Text,
|
|
217
|
+
subtype: 'html',
|
|
218
|
+
});
|
|
219
|
+
MediaType.JSON = new MediaType({
|
|
220
|
+
type: MediaType.Type.Application,
|
|
221
|
+
subtype: 'json',
|
|
222
|
+
});
|
|
223
|
+
MediaType.YAML = new MediaType({
|
|
224
|
+
type: MediaType.Type.Application,
|
|
225
|
+
subtype: 'yaml',
|
|
226
|
+
});
|
|
227
|
+
MediaType.CBOR = new MediaType({
|
|
228
|
+
type: MediaType.Type.Application,
|
|
229
|
+
subtype: 'cbor',
|
|
230
|
+
});
|
|
231
|
+
MediaType.EventStream = new MediaType({
|
|
232
|
+
type: MediaType.Type.Text,
|
|
233
|
+
subtype: 'event-stream',
|
|
234
|
+
});
|
|
235
|
+
MediaType.OctetStream = new MediaType({
|
|
236
|
+
type: MediaType.Type.Application,
|
|
237
|
+
subtype: 'octet-stream',
|
|
238
|
+
});
|
|
239
|
+
MediaType.WWWFormUrlEncoded = new MediaType({
|
|
240
|
+
type: MediaType.Type.Application,
|
|
241
|
+
tree: MediaType.Tree.Obsolete,
|
|
242
|
+
subtype: 'www-form-urlencoded',
|
|
243
|
+
});
|
|
244
|
+
MediaType.X509CACert = new MediaType({
|
|
245
|
+
type: MediaType.Type.Application,
|
|
246
|
+
tree: MediaType.Tree.Obsolete,
|
|
247
|
+
subtype: 'x509-ca-cert',
|
|
248
|
+
});
|
|
249
|
+
MediaType.X509UserCert = new MediaType({
|
|
250
|
+
type: MediaType.Type.Application,
|
|
251
|
+
tree: MediaType.Tree.Obsolete,
|
|
252
|
+
subtype: 'x509-user-cert',
|
|
253
|
+
});
|
|
254
|
+
MediaType.Any = new MediaType({
|
|
255
|
+
type: MediaType.Type.Any,
|
|
256
|
+
subtype: '*',
|
|
257
|
+
});
|
|
258
|
+
MediaType.AnyText = new MediaType({
|
|
259
|
+
type: MediaType.Type.Text,
|
|
260
|
+
subtype: '*',
|
|
261
|
+
});
|
|
262
|
+
MediaType.AnyImage = new MediaType({
|
|
263
|
+
type: MediaType.Type.Image,
|
|
264
|
+
subtype: '*',
|
|
265
|
+
});
|
|
266
|
+
MediaType.AnyAudio = new MediaType({
|
|
267
|
+
type: MediaType.Type.Audio,
|
|
268
|
+
subtype: '*',
|
|
269
|
+
});
|
|
270
|
+
MediaType.AnyVideo = new MediaType({
|
|
271
|
+
type: MediaType.Type.Video,
|
|
272
|
+
subtype: '*',
|
|
273
|
+
});
|
|
274
|
+
MediaType.JSONStructured = new MediaType({
|
|
275
|
+
type: MediaType.Type.Any,
|
|
276
|
+
tree: MediaType.Tree.Any,
|
|
277
|
+
subtype: '*',
|
|
278
|
+
suffix: Suffix.JSON,
|
|
279
|
+
});
|
|
280
|
+
MediaType.XMLStructured = new MediaType({
|
|
281
|
+
type: MediaType.Type.Any,
|
|
282
|
+
tree: MediaType.Tree.Any,
|
|
283
|
+
subtype: '*',
|
|
284
|
+
suffix: Suffix.XML,
|
|
285
|
+
});
|
|
286
|
+
MediaType.Problem = new MediaType({
|
|
287
|
+
type: MediaType.Type.Application,
|
|
288
|
+
subtype: 'problem',
|
|
289
|
+
suffix: Suffix.JSON,
|
|
290
|
+
});
|
|
291
|
+
MediaType.JsonPatch = new MediaType({
|
|
292
|
+
type: MediaType.Type.Application,
|
|
293
|
+
subtype: 'json-patch',
|
|
294
|
+
suffix: Suffix.JSON,
|
|
295
|
+
});
|
|
296
|
+
MediaType.MergePatch = new MediaType({
|
|
297
|
+
type: MediaType.Type.Application,
|
|
298
|
+
subtype: 'merge-patch',
|
|
299
|
+
suffix: Suffix.JSON,
|
|
300
|
+
});
|
|
301
|
+
})(MediaType || (MediaType = {}));
|
|
302
|
+
//# sourceMappingURL=media-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-type.js","sourceRoot":"","sources":["../../src/media-type.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface ProblemSpec {
|
|
2
|
+
type: URL | string;
|
|
3
|
+
title: string;
|
|
4
|
+
status: number;
|
|
5
|
+
detail?: string;
|
|
6
|
+
instance?: URL | string;
|
|
7
|
+
[key: string]: unknown;
|
|
8
|
+
}
|
|
9
|
+
export interface Problem {
|
|
10
|
+
type: URL;
|
|
11
|
+
title: string;
|
|
12
|
+
status: number;
|
|
13
|
+
detail?: string;
|
|
14
|
+
instance?: URL;
|
|
15
|
+
[key: string]: unknown;
|
|
16
|
+
}
|
|
17
|
+
export declare class Problem extends Error implements Problem {
|
|
18
|
+
type: URL;
|
|
19
|
+
title: string;
|
|
20
|
+
status: number;
|
|
21
|
+
detail?: string;
|
|
22
|
+
instance?: URL;
|
|
23
|
+
private _parameters?;
|
|
24
|
+
get parameters(): Record<string, unknown> | undefined;
|
|
25
|
+
private setParameter;
|
|
26
|
+
constructor(spec: ProblemSpec);
|
|
27
|
+
toString(): string;
|
|
28
|
+
static fromStatus(status: number, title: string): Problem;
|
|
29
|
+
static fromResponse(response: Response): Promise<Problem>;
|
|
30
|
+
private static parseURL;
|
|
31
|
+
}
|