@outfoxx/sunday 1.0.9 → 1.0.10
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/LICENSE.txt +203 -0
- package/README.md +36 -2
- package/build/date-time-types.d.ts +35 -0
- package/build/date-time-types.js +699 -0
- package/build/date-time-types.js.map +1 -0
- package/build/event-parser.d.ts +17 -0
- package/build/event-parser.js +151 -0
- package/build/event-parser.js.map +1 -0
- package/build/fetch-event-source.d.ts +66 -0
- package/build/fetch-event-source.js +365 -0
- package/build/fetch-event-source.js.map +1 -0
- package/build/fetch-request-factory.d.ts +32 -0
- package/build/fetch-request-factory.js +316 -0
- package/build/fetch-request-factory.js.map +1 -0
- package/build/fetch.d.ts +9 -0
- package/build/fetch.js +140 -0
- package/build/fetch.js.map +1 -0
- package/build/header-parameters.d.ts +3 -0
- package/build/header-parameters.js +82 -0
- package/build/header-parameters.js.map +1 -0
- package/build/index.d.ts +26 -0
- package/build/index.js +41 -0
- package/build/index.js.map +1 -0
- package/{dist → build}/logger.d.ts +9 -0
- package/build/logger.js +36 -0
- package/build/logger.js.map +1 -0
- package/build/media-type-codecs/any-text-decoder.d.ts +7 -0
- package/build/media-type-codecs/any-text-decoder.js +29 -0
- package/build/media-type-codecs/any-text-decoder.js.map +1 -0
- package/build/media-type-codecs/any-text-encoder.d.ts +6 -0
- package/build/media-type-codecs/any-text-encoder.js +27 -0
- package/build/media-type-codecs/any-text-encoder.js.map +1 -0
- package/build/media-type-codecs/binary-decoder.d.ts +7 -0
- package/build/media-type-codecs/binary-decoder.js +33 -0
- package/build/media-type-codecs/binary-decoder.js.map +1 -0
- package/build/media-type-codecs/binary-encoder.d.ts +6 -0
- package/build/media-type-codecs/binary-encoder.js +30 -0
- package/build/media-type-codecs/binary-encoder.js.map +1 -0
- package/build/media-type-codecs/cbor-decoder.d.ts +13 -0
- package/build/media-type-codecs/cbor-decoder.js +38 -0
- package/build/media-type-codecs/cbor-decoder.js.map +1 -0
- package/build/media-type-codecs/cbor-encoder.d.ts +12 -0
- package/build/media-type-codecs/cbor-encoder.js +36 -0
- package/build/media-type-codecs/cbor-encoder.js.map +1 -0
- package/build/media-type-codecs/cbor-tags.d.ts +6 -0
- package/build/media-type-codecs/cbor-tags.js +20 -0
- package/build/media-type-codecs/cbor-tags.js.map +1 -0
- package/build/media-type-codecs/default-policies.d.ts +3 -0
- package/build/media-type-codecs/default-policies.js +33 -0
- package/build/media-type-codecs/default-policies.js.map +1 -0
- package/build/media-type-codecs/json-decoder.d.ts +14 -0
- package/build/media-type-codecs/json-decoder.js +40 -0
- package/build/media-type-codecs/json-decoder.js.map +1 -0
- package/build/media-type-codecs/json-encoder.d.ts +13 -0
- package/build/media-type-codecs/json-encoder.js +43 -0
- package/build/media-type-codecs/json-encoder.js.map +1 -0
- package/build/media-type-codecs/media-type-decoder.d.ts +14 -0
- package/build/media-type-codecs/media-type-decoder.js +18 -0
- package/build/media-type-codecs/media-type-decoder.js.map +1 -0
- package/build/media-type-codecs/media-type-decoders.d.ts +16 -0
- package/build/media-type-codecs/media-type-decoders.js +63 -0
- package/build/media-type-codecs/media-type-decoders.js.map +1 -0
- package/build/media-type-codecs/media-type-encoder.d.ts +12 -0
- package/build/media-type-codecs/media-type-encoder.js +22 -0
- package/build/media-type-codecs/media-type-encoder.js.map +1 -0
- package/build/media-type-codecs/media-type-encoders.d.ts +16 -0
- package/build/media-type-codecs/media-type-encoders.js +65 -0
- package/build/media-type-codecs/media-type-encoders.js.map +1 -0
- package/build/media-type-codecs/www-form-url-encoder.d.ts +31 -0
- package/build/media-type-codecs/www-form-url-encoder.js +281 -0
- package/build/media-type-codecs/www-form-url-encoder.js.map +1 -0
- package/build/media-type.d.ts +94 -0
- package/build/media-type.js +305 -0
- package/build/media-type.js.map +1 -0
- package/build/problem.d.ts +35 -0
- package/build/problem.js +122 -0
- package/build/problem.js.map +1 -0
- package/build/request-adapters.d.ts +23 -0
- package/build/request-adapters.js +53 -0
- package/build/request-adapters.js.map +1 -0
- package/build/request-factory.d.ts +39 -0
- package/build/request-factory.js +15 -0
- package/build/request-factory.js.map +1 -0
- package/build/result-response.d.ts +4 -0
- package/build/result-response.js +15 -0
- package/build/result-response.js.map +1 -0
- package/build/schema-builtins.d.ts +21 -0
- package/build/schema-builtins.js +201 -0
- package/build/schema-builtins.js.map +1 -0
- package/build/schema-policy.d.ts +31 -0
- package/build/schema-policy.js +41 -0
- package/build/schema-policy.js.map +1 -0
- package/build/schema-runtime.d.ts +25 -0
- package/build/schema-runtime.js +77 -0
- package/build/schema-runtime.js.map +1 -0
- package/build/sunday-error.d.ts +10 -0
- package/build/sunday-error.js +36 -0
- package/build/sunday-error.js.map +1 -0
- package/build/url-template.js +33 -0
- package/build/url-template.js.map +1 -0
- package/build/util/async-iterables.d.ts +15 -0
- package/build/util/async-iterables.js +179 -0
- package/build/util/async-iterables.js.map +1 -0
- package/build/util/errors.d.ts +2 -0
- package/build/util/errors.js +65 -0
- package/build/util/errors.js.map +1 -0
- package/build/util/nullify.d.ts +5 -0
- package/build/util/nullify.js +37 -0
- package/build/util/nullify.js.map +1 -0
- package/build/util/numbers.d.ts +11 -0
- package/build/util/numbers.js +41 -0
- package/build/util/numbers.js.map +1 -0
- package/build/util/subscriptions.d.ts +16 -0
- package/build/util/subscriptions.js +78 -0
- package/build/util/subscriptions.js.map +1 -0
- package/build/util/unknowns.d.ts +2 -0
- package/build/util/unknowns.js +23 -0
- package/build/util/unknowns.js.map +1 -0
- package/package.json +72 -49
- package/dist/any-type.d.ts +0 -2
- package/dist/any-type.js +0 -2
- package/dist/any-type.js.map +0 -1
- package/dist/binary-decoder.d.ts +0 -6
- package/dist/binary-decoder.js +0 -16
- package/dist/binary-decoder.js.map +0 -1
- package/dist/binary-encoder.d.ts +0 -5
- package/dist/binary-encoder.js +0 -13
- package/dist/binary-encoder.js.map +0 -1
- package/dist/cbor-decoder.d.ts +0 -15
- package/dist/cbor-decoder.js +0 -126
- package/dist/cbor-decoder.js.map +0 -1
- package/dist/cbor-encoder.d.ts +0 -29
- package/dist/cbor-encoder.js +0 -81
- package/dist/cbor-encoder.js.map +0 -1
- package/dist/cbor-tags.d.ts +0 -3
- package/dist/cbor-tags.js +0 -4
- package/dist/cbor-tags.js.map +0 -1
- package/dist/class-type.d.ts +0 -2
- package/dist/class-type.js +0 -2
- package/dist/class-type.js.map +0 -1
- package/dist/date-time-types.d.ts +0 -7
- package/dist/date-time-types.js +0 -5
- package/dist/date-time-types.js.map +0 -1
- package/dist/fetch-event-source.d.ts +0 -52
- package/dist/fetch-event-source.js +0 -271
- package/dist/fetch-event-source.js.map +0 -1
- package/dist/fetch-request-factory.d.ts +0 -26
- package/dist/fetch-request-factory.js +0 -125
- package/dist/fetch-request-factory.js.map +0 -1
- package/dist/fetch.d.ts +0 -1
- package/dist/fetch.js +0 -19
- package/dist/fetch.js.map +0 -1
- package/dist/http-error.d.ts +0 -10
- package/dist/http-error.js +0 -45
- package/dist/http-error.js.map +0 -1
- package/dist/index.d.ts +0 -25
- package/dist/index.js +0 -26
- package/dist/index.js.map +0 -1
- package/dist/json-decoder.d.ts +0 -31
- package/dist/json-decoder.js +0 -139
- package/dist/json-decoder.js.map +0 -1
- package/dist/json-encoder.d.ts +0 -35
- package/dist/json-encoder.js +0 -134
- package/dist/json-encoder.js.map +0 -1
- package/dist/logger.js +0 -2
- package/dist/logger.js.map +0 -1
- package/dist/media-type-decoder.d.ts +0 -4
- package/dist/media-type-decoder.js +0 -2
- package/dist/media-type-decoder.js.map +0 -1
- package/dist/media-type-decoders.d.ts +0 -17
- package/dist/media-type-decoders.js +0 -40
- package/dist/media-type-decoders.js.map +0 -1
- package/dist/media-type-encoder.d.ts +0 -8
- package/dist/media-type-encoder.js +0 -6
- package/dist/media-type-encoder.js.map +0 -1
- package/dist/media-type-encoders.d.ts +0 -17
- package/dist/media-type-encoders.js +0 -42
- package/dist/media-type-encoders.js.map +0 -1
- package/dist/media-type.d.ts +0 -14
- package/dist/media-type.js +0 -18
- package/dist/media-type.js.map +0 -1
- package/dist/problem.d.ts +0 -16
- package/dist/problem.js +0 -11
- package/dist/problem.js.map +0 -1
- package/dist/request-factory.d.ts +0 -38
- package/dist/request-factory.js +0 -2
- package/dist/request-factory.js.map +0 -1
- package/dist/url-encoder.d.ts +0 -59
- package/dist/url-encoder.js +0 -141
- package/dist/url-encoder.js.map +0 -1
- package/dist/url-template.js +0 -18
- package/dist/url-template.js.map +0 -1
- package/dist/util/base64.d.ts +0 -5
- package/dist/util/base64.js +0 -64
- package/dist/util/base64.js.map +0 -1
- package/dist/util/hex.d.ts +0 -4
- package/dist/util/hex.js +0 -18
- package/dist/util/hex.js.map +0 -1
- package/dist/util/rxjs.d.ts +0 -2
- package/dist/util/rxjs.js +0 -14
- package/dist/util/rxjs.js.map +0 -1
- package/dist/util/stream-rxjs.d.ts +0 -2
- package/dist/util/stream-rxjs.js +0 -26
- package/dist/util/stream-rxjs.js.map +0 -1
- package/src/any-type.ts +0 -4
- package/src/binary-decoder.ts +0 -24
- package/src/binary-encoder.ts +0 -19
- package/src/cbor-decoder.ts +0 -148
- package/src/cbor-encoder.ts +0 -95
- package/src/cbor-tags.ts +0 -3
- package/src/class-type.ts +0 -3
- package/src/date-time-types.ts +0 -10
- package/src/fetch-event-source.ts +0 -387
- package/src/fetch-request-factory.ts +0 -225
- package/src/fetch.ts +0 -30
- package/src/http-error.ts +0 -55
- package/src/index.ts +0 -26
- package/src/json-decoder.ts +0 -164
- package/src/json-encoder.ts +0 -162
- package/src/logger.ts +0 -8
- package/src/media-type-decoder.ts +0 -5
- package/src/media-type-decoders.ts +0 -59
- package/src/media-type-encoder.ts +0 -16
- package/src/media-type-encoders.ts +0 -61
- package/src/media-type.ts +0 -25
- package/src/problem.ts +0 -25
- package/src/request-factory.ts +0 -76
- package/src/url-encoder.ts +0 -173
- package/src/url-template.ts +0 -21
- package/src/util/base64.ts +0 -77
- package/src/util/hex.ts +0 -15
- package/src/util/rxjs.ts +0 -18
- package/src/util/stream-rxjs.ts +0 -28
- /package/{dist → build}/url-template.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-time-types.js","sourceRoot":"","sources":["../src/date-time-types.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,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,QAAQ,IAAI,cAAc,EAC1B,OAAO,IAAI,aAAa,EACxB,SAAS,IAAI,eAAe,EAC5B,aAAa,IAAI,mBAAmB,EACpC,SAAS,IAAI,eAAe,EAC5B,cAAc,IAAI,oBAAoB,EACtC,UAAU,IAAI,gBAAgB,EAC9B,MAAM,IAAI,YAAY,EACtB,aAAa,EACb,QAAQ,IAAI,cAAc,EAC1B,aAAa,IAAI,mBAAmB,EACpC,MAAM,IAAI,YAAY,EACtB,UAAU,IAAI,gBAAgB,GAC/B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAqB,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAe7E,MAAM,CAAC,MAAM,QAAQ,GAAG,cAAc,CAAC;AACvC,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AACrC,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC;AACzC,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAC;AACjD,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAC3C,MAAM,CAAC,MAAM,cAAc,GAAG,oBAAoB,CAAC;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAC;AACjD,MAAM,CAAC,MAAM,QAAQ,GAAG,cAAc,CAAC;AACvC,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC;AACnC,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC;AACnC,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAW3C,gGAAgG;AAChG,qEAAqE;AAErE,MAAM,mBAAmB,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAEtD,MAAM,kBAAkB,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9C,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAgB,CAAC,KAAK,EAA0B,EAAE,CAAC,KAAK,YAAY,OAAO,CAAC,CAAC;AACnH,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAC5C,CAAC,KAAK,EAAgC,EAAE,CAAC,KAAK,YAAY,aAAa,CACxE,CAAC;AACF,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAC7C,CAAC,KAAK,EAAiC,EAAE,CAAC,KAAK,YAAY,cAAc,CAC1E,CAAC;AACF,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CACxC,CAAC,KAAK,EAA6B,EAAE,CAAC,KAAK,YAAY,UAAU,CAClE,CAAC;AACF,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAC5C,CAAC,KAAK,EAAgC,EAAE,CAAC,KAAK,YAAY,aAAa,CACxE,CAAC;AACF,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CACvC,CAAC,KAAK,EAA4B,EAAE,CAAC,KAAK,YAAY,SAAS,CAChE,CAAC;AACF,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CACvC,CAAC,KAAK,EAA4B,EAAE,CAAC,KAAK,YAAY,SAAS,CAChE,CAAC;AACF,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CACrC,CAAC,KAAK,EAA2B,EAAE,CAAC,KAAK,YAAY,QAAQ,CAC9D,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACpE,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAEzF,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC5E,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAEjG,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC7E,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAElG,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC/D,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1D,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1D,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAElF,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,8BAA8B,CAAC,CAAC,CAAC;AAEvF,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,kCAAkC,CAAC,CAAC,CAAC;AAC/F,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC;AAC1F,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,6BAA6B,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAC/G,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC;AACrF,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACrE,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAErE,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACjE,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAEtF,MAAM,mBAAmB,GAAG,IAAI,wBAAwB,EAAE;KACvD,oBAAoB,EAAE;KACtB,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC;KACxC,cAAc,EAAE;KAChB,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAErC,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAoC,CAAC;AACzE,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAA0C,CAAC;AACrF,MAAM,2BAA2B,GAAG,IAAI,GAAG,EAA2C,CAAC;AACvF,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAuC,CAAC;AAC/E,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAA0C,CAAC;AACrF,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAsC,CAAC;AAC7E,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAsC,CAAC;AAC7E,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAqC,CAAC;AAC3E,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA2B,CAAC;AAE7D,SAAS,SAAS,CAAC,MAAoB;IACrC,OAAO;QACL,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE;QAC9B,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE;KACtC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CACrB,KAAgC,EAChC,MAAoB,EACpB,OAA+C;IAE/C,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,SAAS,CAAC,GAAiB,EAAE,OAAe,EAAE,KAAc;IACnE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,QAAQ;QACd,OAAO;QACP,KAAK;KACN,CAAC,CAAC;IACH,OAAO,CAAC,CAAC,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;IACjC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,aAAa,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;IACnE,IAAI,KAAK,IAAI,aAAa,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,CAAC;QACb,KAAK,GAAG,CAAC,CAAC;IACZ,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,OAAO,IAAI,CAAC,CAAC;QACb,KAAK,IAAI,aAAa,CAAC;IACzB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,8BAA8B,CAAC,KAAa,EAAE,MAAoB;IACzE,IAAI,MAAM,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,wBAAwB,EAAE,CAAC;QAChF,OAAO,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAa;IAClD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB,EAAE,MAAoB;IACnE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,MAAM,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,wBAAwB,EAAE,CAAC;QAChF,OAAO,QAAQ,GAAG,SAAS,CAAC;IAC9B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa,EAAE,YAA0B;IACxE,IAAI,YAAY,KAAK,YAAY,CAAC,wBAAwB,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,wBAAwB,CAAC,KAA0B,EAAE,YAA0B;IACtF,OAAO,uBAAuB,CAC5B,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EACpF,KAAK,CAAC,MAAM,EAAE,EACd,uBAAuB,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CACpD,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAsB;IAClD,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAsB,EAAE,YAA0B;IAC9E,OAAO,uBAAuB,CAC5B,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAC9B,KAAK,CAAC,MAAM,EAAE,EACd,uBAAuB,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CACpD,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAuB,EAAE,YAA0B;IAChF,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAAe,EACf,MAAoB,EACpB,GAAiB;IAEjB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,SAAS,CACd,GAAG,EACH,2CAA2C;YACzC,kDAAkD,EACpD,KAAK,CACN,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,OAAO,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,SAAS,CACd,GAAG,EACH,gDAAgD,OAAO,EAAE,EACzD,KAAK,CACN,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAe,EAAE,GAAiB;IAC7D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC,GAAG,EAAE,uDAAuD,EAAE,KAAK,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,CAAC;QACL,OAAO,SAAS,CAAC,GAAG,EAAE,2CAA2C,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAe,EACf,MAAoB,EACpB,GAAiB;IAEjB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,SAAS,CAAC,GAAG,EAAE,wEAAwE,EAAE,KAAK,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,OAAO,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,SAAS,CACd,GAAG,EACH,4CAA4C,OAAO,EAAE,EACrD,KAAK,CACN,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAA6B,EAC7B,MAAoB,EACpB,GAAiB;IAEjB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,SAAS,CAAC,GAAG,EAAE,gFAAgF,EAAE,KAAK,CAAC,CAAC;IACjH,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC,GAAG,EAAE,8DAA8D,EAAE,KAAK,CAAC,CAAC;IAC/F,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;QACzE,OAAO,SAAS,CAAC,GAAG,EAAE,+DAA+D,EAAE,KAAK,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,SAAS,GAAG,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9D,IAAI,SAAS,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,CAAC;QACL,OAAO,SAAS,CAAC,GAAG,EAAE,2BAA2B,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,GAAiB;IACvD,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,CAAC;QACL,OAAO,SAAS,CAAC,GAAG,EAAE,wBAAwB,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa,EAAE,GAAiB;IAC7D,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,CAAC;QACL,OAAO,SAAS,CAAC,GAAG,EAAE,gCAAgC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa,EAAE,GAAiB;IAC9D,IAAI,CAAC;QACH,OAAO,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,CAAC;QACL,OAAO,SAAS,CAAC,GAAG,EAAE,iCAAiC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,GAAiB;IACpD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC,GAAG,EAAE,0BAA0B,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,GAAiB;IACxD,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,CAAC;QACL,OAAO,SAAS,CAAC,GAAG,EAAE,yBAAyB,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAmB,EAAE,GAAiB;IAClE,QAAQ,MAAM,CAAC,GAAG,EAAE,CAAC;QACnB,KAAK,cAAc;YACjB,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrC,OAAO,SAAS,CAAC,GAAG,EAAE,2CAA2C,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACnF,CAAC;YACD,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACtD,KAAK,gBAAgB;YACnB,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrC,OAAO,SAAS,CAAC,GAAG,EAAE,uCAAuC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACxD;YACE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;gBAC1C,KAAK,EAAE,MAAM,CAAC,GAAG;gBACjB,OAAO,EAAE,wCAAwC;aAClD,CAAC,CAAC;YACH,OAAO,CAAC,CAAC,KAAK,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAmB,EAAE,GAAiB;IACnE,IAAI,MAAM,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;QAChC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,CAAC,YAAY,CAAC;YACtB,KAAK,EAAE,MAAM,CAAC,GAAG;YACjB,OAAO,EAAE,yCAAyC;SACnD,CAAC,CAAC;QACH,OAAO,CAAC,CAAC,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,SAAS,CAAC,GAAG,EAAE,gDAAgD,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,qBAAqB,CAC5B,YAA0B,EAC1B,GAAyB,EACzB,YAAkC,EAClC,cAAoC,EACpC,OAAwB;IAExB,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,YAAY,CAAC,OAAO;YACvB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;QAChE,KAAK,YAAY,CAAC,wBAAwB;YACxC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,KAAK,YAAY,CAAC,2BAA2B;YAC3C,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAoB;IAC/C,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,KAAK,CAAC,yBAAyB,EAAE,qBAAqB,EAAE;gBAC/D,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBACrB,QAAQ,OAAO,KAAK,EAAE,CAAC;wBACrB,KAAK,QAAQ;4BACX,OAAO,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;wBACrC,KAAK,QAAQ;4BACX,OAAO,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBACzD,CAAC;gBACH,CAAC;gBACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBAChB,QAAQ,MAAM,CAAC,YAAY,EAAE,CAAC;wBAC5B,KAAK,YAAY,CAAC,OAAO;4BACvB,OAAO,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBACrD,KAAK,YAAY,CAAC,wBAAwB;4BACxC,OAAO,KAAK,CAAC,YAAY,EAAE,CAAC;wBAC9B,KAAK,YAAY,CAAC,2BAA2B;4BAC3C,OAAO,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC9D,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;QACL,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,KAAK,CAAC,yBAAyB,EAAE,qBAAqB,EAAE;gBAC/D,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBACrB,QAAQ,OAAO,KAAK,EAAE,CAAC;wBACrB,KAAK,QAAQ;4BACX,OAAO,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;wBACrC,KAAK,QAAQ;4BACX,OAAO,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;wBACvD,OAAO,CAAC,CAAC,CAAC;4BACR,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;4BAChD,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gCACvB,OAAO,CAAC,CAAC,KAAK,CAAC;4BACjB,CAAC;4BACD,OAAO,MAAM,CAAC,GAAG,KAAK,cAAc;gCAClC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;gCACpC,CAAC,CAAC,6BAA6B,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAClD,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,MAAM,EAAE,qBAAqB,CAC3B,MAAM,CAAC,YAAY,EACnB,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAC1D,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EACnC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,EACnE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CACrB;aACF,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAoB;IACrD,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,KAAK,CAAC,iCAAiC,EAAE,6BAA6B,EAAE;gBAC/E,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAC3C,CAAC;oBACD,OAAO,aAAa,CAAC,SAAS,CAAC,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC5F,CAAC;gBACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBAChB,QAAQ,MAAM,CAAC,YAAY,EAAE,CAAC;wBAC5B,KAAK,YAAY,CAAC,OAAO;4BACvB,OAAO,iBAAiB,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC7D,KAAK,YAAY,CAAC,wBAAwB;4BACxC,OAAO,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,CAAC;wBAC9E,KAAK,YAAY,CAAC,2BAA2B,CAAC,CAAC,CAAC;4BAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;4BACtE,OAAO,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;wBAChE,CAAC;oBACH,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;QACL,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,KAAK,CAAC,iCAAiC,EAAE,6BAA6B,EAAE;gBAC/E,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBACrB,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;wBACjC,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;wBAChD,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;4BACvB,OAAO,CAAC,CAAC,KAAK,CAAC;wBACjB,CAAC;wBACD,OAAO,MAAM,CAAC,GAAG,KAAK,cAAc;4BAClC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;4BAC1C,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,6BAA6B,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;oBACvF,CAAC;oBACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,aAAa,CAAC,SAAS,CAAC,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC5F,CAAC;oBACD,OAAO,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC3C,CAAC;gBACD,MAAM,EAAE,qBAAqB,CAC3B,MAAM,CAAC,YAAY,EACnB,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9D,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EACnC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,EACnE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAC7B;aACF,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,MAAoB;IACtD,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,KAAK,CAAC,kCAAkC,EAAE,8BAA8B,EAAE;gBACjF,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAC5C,CAAC;oBACD,OAAO,cAAc,CAAC,SAAS,CAAC,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBACjG,CAAC;gBACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBAChB,QAAQ,MAAM,CAAC,YAAY,EAAE,CAAC;wBAC5B,KAAK,YAAY,CAAC,OAAO;4BACvB,OAAO,iBAAiB,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC9D,KAAK,YAAY,CAAC,wBAAwB;4BACxC,OAAO,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,CAAC;wBAChF,KAAK,YAAY,CAAC,2BAA2B,CAAC,CAAC,CAAC;4BAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;4BACxE,OAAO,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;wBAChE,CAAC;oBACH,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;QACL,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,KAAK,CAAC,kCAAkC,EAAE,8BAA8B,EAAE;gBACjF,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBACrB,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;wBACjC,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;wBAChD,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;4BACvB,OAAO,CAAC,CAAC,KAAK,CAAC;wBACjB,CAAC;wBACD,OAAO,MAAM,CAAC,GAAG,KAAK,cAAc;4BAClC,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;4BAC3C,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,6BAA6B,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;oBAC5F,CAAC;oBACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,cAAc,CAAC,SAAS,CAAC,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;oBACjG,CAAC;oBACD,OAAO,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM,EAAE,qBAAqB,CAC3B,MAAM,CAAC,YAAY,EACnB,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,EACjE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EACnC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,EACnE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAC/B;aACF,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAoB;IAClD,OAAO,CAAC,CAAC,KAAK,CAAC,wBAAwB,EAAE,yBAAyB,EAAE;QAClE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;gBACjD,OAAO,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3D,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAoB;IACrD,OAAO,CAAC,CAAC,KAAK,CAAC,4BAA4B,EAAE,6BAA6B,EAAE;QAC1E,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;gBACjD,OAAO,iBAAiB,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7D,CAAC;YACD,oEAAoE;YACpE,qEAAqE;YACrE,gBAAgB;YAChB,OAAO,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAoB;IACjD,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,KAAK,CAAC,4BAA4B,EAAE,wBAAwB,EAAE;gBACrE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAChC,CAAC;oBACD,OAAO,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACzC,CAAC;gBACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBAChB,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;wBACjD,OAAO,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACxD,CAAC;oBACD,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC;aACF,CAAC,CAAC;QACL,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,KAAK,CAAC,4BAA4B,EAAE,wBAAwB,EAAE;gBACrE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAChC,CAAC;oBACD,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;wBACjC,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;wBACjD,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;4BACvB,OAAO,CAAC,CAAC,KAAK,CAAC;wBACjB,CAAC;wBACD,OAAO,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5C,CAAC;oBACD,OAAO,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACzC,CAAC;gBACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBAChB,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;wBACjD,OAAO,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACxD,CAAC;oBACD,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC;aACF,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAoB;IACjD,OAAO,CAAC,CAAC,KAAK,CAAC,uBAAuB,EAAE,wBAAwB,EAAE;QAChE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;gBACjD,OAAO,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxD,CAAC;YACD,OAAO,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1D,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAoB;IAChD,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,KAAK,CAAC,0BAA0B,EAAE,sBAAsB,EAAE;gBACjE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACtC,CAAC;oBACD,IAAI,MAAM,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,wBAAwB,EAAE,CAAC;wBAChF,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAClC,CAAC;oBACD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBACpD,OAAO,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBAChB,QAAQ,MAAM,CAAC,YAAY,EAAE,CAAC;wBAC5B,KAAK,YAAY,CAAC,OAAO;4BACvB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;wBAC1B,KAAK,YAAY,CAAC,wBAAwB;4BACxC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;wBAC1B,KAAK,YAAY,CAAC,2BAA2B;4BAC3C,OAAO,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;QACL,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,KAAK,CAAC,0BAA0B,EAAE,sBAAsB,EAAE;gBACjE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACtC,CAAC;oBACD,IAAI,MAAM,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,wBAAwB,EAAE,CAAC;wBAChF,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAClC,CAAC;oBACD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBACpD,OAAO,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBAChB,QAAQ,MAAM,CAAC,YAAY,EAAE,CAAC;wBAC5B,KAAK,YAAY,CAAC,OAAO;4BACvB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;wBAC1B,KAAK,YAAY,CAAC,wBAAwB;4BACxC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;wBAC1B,KAAK,YAAY,CAAC,2BAA2B;4BAC3C,OAAO,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAoB;IAC5C,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,KAAK,CAAC,sBAAsB,EAAE,kBAAkB,EAAE;gBACzD,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAClC,CAAC;oBACD,IAAI,MAAM,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,wBAAwB,EAAE,CAAC;wBAChF,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzB,CAAC;oBACD,OAAO,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;gBAChC,CAAC;gBACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBAChB,QAAQ,MAAM,CAAC,YAAY,EAAE,CAAC;wBAC5B,KAAK,YAAY,CAAC,OAAO;4BACvB,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;wBAC7B,KAAK,YAAY,CAAC,wBAAwB;4BACxC,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;wBACzB,KAAK,YAAY,CAAC,2BAA2B;4BAC3C,OAAO,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;oBAClC,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;QACL,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,KAAK,CAAC,sBAAsB,EAAE,kBAAkB,EAAE;gBACzD,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,OAAO,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAClC,CAAC;oBACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,IAAI,MAAM,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,wBAAwB,EAAE,CAAC;4BAChF,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;wBACzB,CAAC;wBACD,OAAO,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;oBAChC,CAAC;oBACD,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAChD,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;wBACvB,OAAO,CAAC,CAAC,KAAK,CAAC;oBACjB,CAAC;oBACD,OAAO,MAAM,CAAC,GAAG,KAAK,cAAc;wBAClC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;wBACjC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;gBACpC,CAAC;gBACD,MAAM,EAAE,qBAAqB,CAC3B,MAAM,CAAC,YAAY,EACnB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAC5B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EACxB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,EAC/B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CACf;aACF,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAoB;IACjD,OAAO,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAoB;IACvD,OAAO,cAAc,CAAC,0BAA0B,EAAE,MAAM,EAAE,yBAAyB,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAoB;IACxD,OAAO,cAAc,CAAC,2BAA2B,EAAE,MAAM,EAAE,0BAA0B,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAoB;IACpD,OAAO,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAoB;IACvD,OAAO,cAAc,CAAC,0BAA0B,EAAE,MAAM,EAAE,yBAAyB,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAoB;IACnD,OAAO,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAoB;IACnD,OAAO,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAoB;IAClD,OAAO,cAAc,CAAC,qBAAqB,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAoB;IAC9C,OAAO,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CACpC,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAC/C;IACE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC;IAC5C,SAAS,EAAE,YAAY;CACxB,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CACvC,CAAC,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,EAClD;IACE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC;IAC/C,SAAS,EAAE,eAAe;CAC3B,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAC7C,CAAC,OAAO,EAAE,EAAE,CAAC,2BAA2B,CAAC,OAAO,CAAC,MAAM,CAAC,EACxD;IACE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC;IACrD,SAAS,EAAE,qBAAqB;CACjC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAC9C,CAAC,OAAO,EAAE,EAAE,CAAC,4BAA4B,CAAC,OAAO,CAAC,MAAM,CAAC,EACzD;IACE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC;IACtD,SAAS,EAAE,sBAAsB;CAClC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAC1C,CAAC,OAAO,EAAE,EAAE,CAAC,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,EACrD;IACE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC;IAClD,SAAS,EAAE,kBAAkB;CAC9B,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAC7C,CAAC,OAAO,EAAE,EAAE,CAAC,2BAA2B,CAAC,OAAO,CAAC,MAAM,CAAC,EACxD;IACE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC;IACrD,SAAS,EAAE,qBAAqB;CACjC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CACzC,CAAC,OAAO,EAAE,EAAE,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,EACpD;IACE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC;IACjD,SAAS,EAAE,iBAAiB;CAC7B,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CACzC,CAAC,OAAO,EAAE,EAAE,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,EACpD;IACE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC;IACjD,SAAS,EAAE,iBAAiB;CAC7B,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CACxC,CAAC,OAAO,EAAE,EAAE,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,EACnD;IACE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC;IAChD,SAAS,EAAE,gBAAgB;CAC5B,CACF,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface EventInfo {
|
|
2
|
+
id?: string;
|
|
3
|
+
event?: string;
|
|
4
|
+
data?: string;
|
|
5
|
+
retry?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class EventParser {
|
|
8
|
+
private readonly decoder;
|
|
9
|
+
private unprocessedBuffer?;
|
|
10
|
+
process(buffer: ArrayBuffer, dispatcher: (eventInfo: EventInfo) => void): void;
|
|
11
|
+
private buildAvailableBuffer;
|
|
12
|
+
private extractEventStringsFromBuffer;
|
|
13
|
+
private static findEventSeparator;
|
|
14
|
+
private static parseAndDispatchEvents;
|
|
15
|
+
private static parseEvent;
|
|
16
|
+
private static trimFieldValue;
|
|
17
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
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 EventParser {
|
|
15
|
+
decoder = new TextDecoder('utf-8');
|
|
16
|
+
unprocessedBuffer;
|
|
17
|
+
process(buffer, dispatcher) {
|
|
18
|
+
const availableBuffer = this.buildAvailableBuffer(buffer);
|
|
19
|
+
if (!availableBuffer) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const eventStrings = this.extractEventStringsFromBuffer(availableBuffer);
|
|
23
|
+
if (!eventStrings.length) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
EventParser.parseAndDispatchEvents(eventStrings, dispatcher);
|
|
27
|
+
}
|
|
28
|
+
buildAvailableBuffer(buffer) {
|
|
29
|
+
const unprocessedBuffer = this.unprocessedBuffer;
|
|
30
|
+
this.unprocessedBuffer = undefined;
|
|
31
|
+
if (!buffer.byteLength) {
|
|
32
|
+
return unprocessedBuffer;
|
|
33
|
+
}
|
|
34
|
+
else if (!unprocessedBuffer?.byteLength) {
|
|
35
|
+
return buffer;
|
|
36
|
+
}
|
|
37
|
+
const newBuffer = new Uint8Array(unprocessedBuffer.byteLength + buffer.byteLength);
|
|
38
|
+
newBuffer.set(new Uint8Array(unprocessedBuffer), 0);
|
|
39
|
+
newBuffer.set(new Uint8Array(buffer), unprocessedBuffer.byteLength);
|
|
40
|
+
return newBuffer.buffer;
|
|
41
|
+
}
|
|
42
|
+
extractEventStringsFromBuffer(buffer) {
|
|
43
|
+
const eventStrings = [];
|
|
44
|
+
while (buffer.byteLength) {
|
|
45
|
+
// Find end of next event separator in buffer, exiting if none found.
|
|
46
|
+
const eventSeparator = EventParser.findEventSeparator(buffer);
|
|
47
|
+
if (!eventSeparator) {
|
|
48
|
+
// Save unprocessed data
|
|
49
|
+
this.unprocessedBuffer = buffer;
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
const [endOfCurrentEventIdx, startOfNextEventIdx] = eventSeparator;
|
|
53
|
+
const eventBuffer = buffer.slice(0, endOfCurrentEventIdx);
|
|
54
|
+
buffer = buffer.slice(startOfNextEventIdx);
|
|
55
|
+
const eventString = this.decoder.decode(eventBuffer, {
|
|
56
|
+
stream: true,
|
|
57
|
+
});
|
|
58
|
+
eventStrings.push(eventString);
|
|
59
|
+
}
|
|
60
|
+
return eventStrings;
|
|
61
|
+
}
|
|
62
|
+
static findEventSeparator(buffer) {
|
|
63
|
+
const bytes = new Uint8Array(buffer);
|
|
64
|
+
for (let idx = 0; idx < bytes.length; ++idx) {
|
|
65
|
+
const byte = bytes[idx];
|
|
66
|
+
switch (byte) {
|
|
67
|
+
// line-feed
|
|
68
|
+
case 0xa: {
|
|
69
|
+
// if the next byte is the
|
|
70
|
+
// same, we found a separator
|
|
71
|
+
if (bytes[idx + 1] == 0xa) {
|
|
72
|
+
return [idx, idx + 2];
|
|
73
|
+
}
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
// carriage-return
|
|
77
|
+
case 0xd: {
|
|
78
|
+
// if the next byte is the
|
|
79
|
+
// same, we found a separator
|
|
80
|
+
if (bytes[idx + 1] == 0xd) {
|
|
81
|
+
return [idx, idx + 2];
|
|
82
|
+
}
|
|
83
|
+
// if next is line-feed, and pattern
|
|
84
|
+
// repeats, we found a separator.
|
|
85
|
+
if (bytes[idx + 1] == 0xa &&
|
|
86
|
+
bytes[idx + 2] == 0xd &&
|
|
87
|
+
bytes[idx + 3] == 0xa) {
|
|
88
|
+
return [idx, idx + 4];
|
|
89
|
+
}
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
default:
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
static parseAndDispatchEvents(eventStrings, dispatcher) {
|
|
98
|
+
for (const eventString of eventStrings) {
|
|
99
|
+
if (!eventString.length) {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
const parsedEvent = EventParser.parseEvent(eventString);
|
|
103
|
+
dispatcher(parsedEvent);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
static parseEvent(eventString) {
|
|
107
|
+
const event = {};
|
|
108
|
+
for (const line of eventString.split(lineSeparatorsRegEx)) {
|
|
109
|
+
const keyValueSeparatorIdx = line.indexOf(':');
|
|
110
|
+
let key;
|
|
111
|
+
let value;
|
|
112
|
+
if (keyValueSeparatorIdx != -1) {
|
|
113
|
+
key = line.slice(0, keyValueSeparatorIdx);
|
|
114
|
+
value = line.slice(keyValueSeparatorIdx + 1);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
key = line;
|
|
118
|
+
value = '';
|
|
119
|
+
}
|
|
120
|
+
switch (key) {
|
|
121
|
+
case 'retry':
|
|
122
|
+
event.retry = EventParser.trimFieldValue(value);
|
|
123
|
+
break;
|
|
124
|
+
case 'data': {
|
|
125
|
+
const data = event.data ?? '';
|
|
126
|
+
event.data = `${data}${EventParser.trimFieldValue(value)}\n`;
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
case '':
|
|
130
|
+
// comment do nothing
|
|
131
|
+
break;
|
|
132
|
+
default: {
|
|
133
|
+
event[key] =
|
|
134
|
+
EventParser.trimFieldValue(value);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (event.data?.[event.data?.length - 1] == '\n') {
|
|
139
|
+
event.data = event.data.slice(0, -1);
|
|
140
|
+
}
|
|
141
|
+
return event;
|
|
142
|
+
}
|
|
143
|
+
static trimFieldValue(value) {
|
|
144
|
+
if (value[0] !== ' ') {
|
|
145
|
+
return value;
|
|
146
|
+
}
|
|
147
|
+
return value.slice(1);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
const lineSeparatorsRegEx = /\r\n|\r|\n/;
|
|
151
|
+
//# sourceMappingURL=event-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-parser.js","sourceRoot":"","sources":["../src/event-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Logger } from './logger.js';
|
|
2
|
+
import { ExtEventSource } from './request-factory.js';
|
|
3
|
+
export interface FetchEventSource {
|
|
4
|
+
addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5
|
+
removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
6
|
+
}
|
|
7
|
+
export declare class FetchEventSource extends EventTarget implements ExtEventSource {
|
|
8
|
+
private static readonly LAST_EVENT_ID_HEADER;
|
|
9
|
+
private static readonly MAX_RETRY_TIME_MULTIPLIER;
|
|
10
|
+
private static readonly RETRY_EXPONENT;
|
|
11
|
+
private static readonly EVENT_TIMEOUT_DEFAULT;
|
|
12
|
+
private static readonly EVENT_TIMEOUT_CHECK_INTERVAL_DEFAULT;
|
|
13
|
+
readonly CONNECTING = 0;
|
|
14
|
+
readonly OPEN = 1;
|
|
15
|
+
readonly CLOSED = 2;
|
|
16
|
+
readyState: number;
|
|
17
|
+
url: string;
|
|
18
|
+
withCredentials: boolean;
|
|
19
|
+
onerror: ((this: EventSource, ev: Event) => unknown) | null;
|
|
20
|
+
onmessage: ((this: EventSource, ev: MessageEvent) => unknown) | null;
|
|
21
|
+
onopen: ((this: EventSource, ev: Event) => unknown) | null;
|
|
22
|
+
get retryTime(): number;
|
|
23
|
+
private readonly adapter;
|
|
24
|
+
private readonly signal?;
|
|
25
|
+
private connectionAbortController?;
|
|
26
|
+
private connectionReader?;
|
|
27
|
+
private externalAbortSignal?;
|
|
28
|
+
private externalAbortHandler?;
|
|
29
|
+
private internalRetryTime;
|
|
30
|
+
private retryAttempt;
|
|
31
|
+
private connectionAttemptTime;
|
|
32
|
+
private connectionOrigin?;
|
|
33
|
+
private reconnectTimeoutHandle?;
|
|
34
|
+
private lastEventId?;
|
|
35
|
+
private readonly logger?;
|
|
36
|
+
private readonly eventTimeout?;
|
|
37
|
+
private readonly eventTimeoutCheckInterval;
|
|
38
|
+
private eventTimeoutCheckHandle?;
|
|
39
|
+
private lastEventReceivedTime;
|
|
40
|
+
private readonly eventParser;
|
|
41
|
+
constructor(url: string, eventSourceInit?: EventSourceInit & {
|
|
42
|
+
adapter?: (url: string, requestInit: RequestInit) => Promise<Request>;
|
|
43
|
+
signal?: AbortSignal;
|
|
44
|
+
eventTimeout?: number;
|
|
45
|
+
eventTimeoutCheckInterval?: number;
|
|
46
|
+
logger?: Logger;
|
|
47
|
+
});
|
|
48
|
+
connect(): void;
|
|
49
|
+
private internalConnect;
|
|
50
|
+
close(): void;
|
|
51
|
+
private internalClose;
|
|
52
|
+
private updateLastEventReceived;
|
|
53
|
+
private startEventTimeoutCheck;
|
|
54
|
+
private stopEventTimeoutCheck;
|
|
55
|
+
private checkEventTimeout;
|
|
56
|
+
private receivedHeaders;
|
|
57
|
+
private receivedData;
|
|
58
|
+
private receivedError;
|
|
59
|
+
private receivedComplete;
|
|
60
|
+
private scheduleReconnect;
|
|
61
|
+
private static calculateRetryTime;
|
|
62
|
+
private clearReconnect;
|
|
63
|
+
private readonly dispatchParsedEvent;
|
|
64
|
+
fireErrorEvent(error: unknown): void;
|
|
65
|
+
private abortConnection;
|
|
66
|
+
}
|
|
@@ -0,0 +1,365 @@
|
|
|
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 { EventParser } from './event-parser.js';
|
|
15
|
+
import { validate } from './fetch.js';
|
|
16
|
+
import { levelLogger, LogLevel } from './logger.js';
|
|
17
|
+
import { MediaType } from './media-type.js';
|
|
18
|
+
import { unknownSet } from './util/unknowns.js';
|
|
19
|
+
export class FetchEventSource extends EventTarget {
|
|
20
|
+
static LAST_EVENT_ID_HEADER = 'Last-Event-ID';
|
|
21
|
+
static MAX_RETRY_TIME_MULTIPLIER = 12;
|
|
22
|
+
static RETRY_EXPONENT = 2.6;
|
|
23
|
+
static EVENT_TIMEOUT_DEFAULT = 120 * 1000;
|
|
24
|
+
static EVENT_TIMEOUT_CHECK_INTERVAL_DEFAULT = 2 * 1000;
|
|
25
|
+
CONNECTING = 0;
|
|
26
|
+
OPEN = 1;
|
|
27
|
+
CLOSED = 2;
|
|
28
|
+
readyState = this.CLOSED;
|
|
29
|
+
url;
|
|
30
|
+
withCredentials = false;
|
|
31
|
+
onerror = null;
|
|
32
|
+
onmessage = null;
|
|
33
|
+
onopen = null;
|
|
34
|
+
get retryTime() {
|
|
35
|
+
return this.internalRetryTime;
|
|
36
|
+
}
|
|
37
|
+
adapter;
|
|
38
|
+
signal;
|
|
39
|
+
connectionAbortController;
|
|
40
|
+
connectionReader;
|
|
41
|
+
externalAbortSignal;
|
|
42
|
+
externalAbortHandler;
|
|
43
|
+
internalRetryTime = 100;
|
|
44
|
+
retryAttempt = 0;
|
|
45
|
+
connectionAttemptTime;
|
|
46
|
+
connectionOrigin;
|
|
47
|
+
reconnectTimeoutHandle;
|
|
48
|
+
lastEventId;
|
|
49
|
+
logger;
|
|
50
|
+
eventTimeout;
|
|
51
|
+
eventTimeoutCheckInterval;
|
|
52
|
+
eventTimeoutCheckHandle;
|
|
53
|
+
lastEventReceivedTime = 0;
|
|
54
|
+
eventParser = new EventParser();
|
|
55
|
+
constructor(url, eventSourceInit) {
|
|
56
|
+
super();
|
|
57
|
+
this.url = url;
|
|
58
|
+
this.adapter =
|
|
59
|
+
eventSourceInit?.adapter ??
|
|
60
|
+
((_url, requestInit) => Promise.resolve(new Request(_url, requestInit)));
|
|
61
|
+
this.signal = eventSourceInit?.signal;
|
|
62
|
+
this.eventTimeout =
|
|
63
|
+
eventSourceInit?.eventTimeout ?? FetchEventSource.EVENT_TIMEOUT_DEFAULT;
|
|
64
|
+
this.eventTimeoutCheckInterval =
|
|
65
|
+
eventSourceInit?.eventTimeoutCheckInterval ??
|
|
66
|
+
FetchEventSource.EVENT_TIMEOUT_CHECK_INTERVAL_DEFAULT;
|
|
67
|
+
this.logger = levelLogger(LogLevel.Info, eventSourceInit?.logger);
|
|
68
|
+
}
|
|
69
|
+
//
|
|
70
|
+
// Connect
|
|
71
|
+
//
|
|
72
|
+
connect() {
|
|
73
|
+
if (this.readyState === this.CONNECTING || this.readyState === this.OPEN) {
|
|
74
|
+
this.logger?.trace?.('skipping connect', { state: this.readyState });
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
this.internalConnect();
|
|
78
|
+
}
|
|
79
|
+
internalConnect() {
|
|
80
|
+
this.logger?.debug?.('connecting');
|
|
81
|
+
this.readyState = this.CONNECTING;
|
|
82
|
+
const headers = new Headers({
|
|
83
|
+
accept: MediaType.EventStream.toString(),
|
|
84
|
+
});
|
|
85
|
+
if (this.lastEventId) {
|
|
86
|
+
headers.append(FetchEventSource.LAST_EVENT_ID_HEADER, this.lastEventId);
|
|
87
|
+
}
|
|
88
|
+
this.abortConnection();
|
|
89
|
+
const connectionAbortController = new AbortController();
|
|
90
|
+
this.connectionAbortController = connectionAbortController;
|
|
91
|
+
const externalSignal = this.signal;
|
|
92
|
+
if (externalSignal instanceof AbortSignal) {
|
|
93
|
+
this.externalAbortSignal = externalSignal;
|
|
94
|
+
this.externalAbortHandler = () => {
|
|
95
|
+
this.connectionAbortController?.abort();
|
|
96
|
+
};
|
|
97
|
+
externalSignal.addEventListener('abort', this.externalAbortHandler);
|
|
98
|
+
}
|
|
99
|
+
const requestInit = {
|
|
100
|
+
headers,
|
|
101
|
+
cache: 'no-store',
|
|
102
|
+
redirect: 'follow',
|
|
103
|
+
signal: connectionAbortController.signal,
|
|
104
|
+
};
|
|
105
|
+
this.connectionAttemptTime = Date.now();
|
|
106
|
+
void this.adapter(this.url, requestInit)
|
|
107
|
+
.then(async (request) => {
|
|
108
|
+
const response = await fetch(request, {
|
|
109
|
+
signal: connectionAbortController.signal,
|
|
110
|
+
});
|
|
111
|
+
const validatedResponse = await validate(response, true, undefined, this.logger);
|
|
112
|
+
this.receivedHeaders(validatedResponse);
|
|
113
|
+
const body = validatedResponse.body;
|
|
114
|
+
if (!body) {
|
|
115
|
+
this.receivedComplete();
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
const reader = body.getReader();
|
|
119
|
+
this.connectionReader = reader;
|
|
120
|
+
while (true) {
|
|
121
|
+
const result = await reader.read();
|
|
122
|
+
if (result.done) {
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
this.receivedData(result.value);
|
|
126
|
+
}
|
|
127
|
+
this.receivedComplete();
|
|
128
|
+
})
|
|
129
|
+
.catch((error) => {
|
|
130
|
+
this.receivedError(error);
|
|
131
|
+
})
|
|
132
|
+
.finally(() => {
|
|
133
|
+
if (this.connectionReader) {
|
|
134
|
+
try {
|
|
135
|
+
this.connectionReader.releaseLock();
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
// ignore
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
this.connectionReader = undefined;
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
//
|
|
145
|
+
// Close
|
|
146
|
+
//
|
|
147
|
+
close() {
|
|
148
|
+
if (this.readyState === this.CLOSED) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
this.logger?.debug?.('closing');
|
|
152
|
+
this.readyState = this.CLOSED;
|
|
153
|
+
this.internalClose();
|
|
154
|
+
}
|
|
155
|
+
internalClose() {
|
|
156
|
+
this.abortConnection();
|
|
157
|
+
this.clearReconnect();
|
|
158
|
+
this.stopEventTimeoutCheck();
|
|
159
|
+
}
|
|
160
|
+
//
|
|
161
|
+
// Event Timeout
|
|
162
|
+
//
|
|
163
|
+
updateLastEventReceived(time = Date.now()) {
|
|
164
|
+
this.lastEventReceivedTime = time;
|
|
165
|
+
}
|
|
166
|
+
startEventTimeoutCheck(lastEventReceivedTime) {
|
|
167
|
+
this.stopEventTimeoutCheck();
|
|
168
|
+
if (!this.eventTimeout) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
this.updateLastEventReceived(lastEventReceivedTime);
|
|
172
|
+
this.logger?.trace?.('starting event timeout checks');
|
|
173
|
+
this.eventTimeoutCheckHandle = setInterval(() => this.checkEventTimeout(), this.eventTimeoutCheckInterval);
|
|
174
|
+
}
|
|
175
|
+
stopEventTimeoutCheck() {
|
|
176
|
+
if (this.eventTimeoutCheckHandle) {
|
|
177
|
+
this.logger?.trace?.('stopping event timeout checks');
|
|
178
|
+
clearInterval(this.eventTimeoutCheckHandle);
|
|
179
|
+
}
|
|
180
|
+
this.eventTimeoutCheckHandle = undefined;
|
|
181
|
+
}
|
|
182
|
+
checkEventTimeout() {
|
|
183
|
+
if (!this.eventTimeout) {
|
|
184
|
+
this.stopEventTimeoutCheck();
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
this.logger?.trace?.('checking event timeout');
|
|
188
|
+
// Check elapsed time since last received event
|
|
189
|
+
const elapsed = Date.now() - this.lastEventReceivedTime;
|
|
190
|
+
if (elapsed > this.eventTimeout) {
|
|
191
|
+
this.logger?.debug?.('event timeout reached', {
|
|
192
|
+
elapsed,
|
|
193
|
+
});
|
|
194
|
+
this.fireErrorEvent(new Error('EventTimeout'));
|
|
195
|
+
this.scheduleReconnect();
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
//
|
|
199
|
+
// Connection Handlers
|
|
200
|
+
//
|
|
201
|
+
receivedHeaders(response) {
|
|
202
|
+
if (this.readyState !== this.CONNECTING) {
|
|
203
|
+
this.logger?.error?.('invalid readyState for receivedHeaders', {
|
|
204
|
+
readyState: this.readyState,
|
|
205
|
+
});
|
|
206
|
+
this.fireErrorEvent(new Error('InvalidState'));
|
|
207
|
+
this.scheduleReconnect();
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
this.logger?.info?.('opened');
|
|
211
|
+
this.connectionOrigin = response.url;
|
|
212
|
+
this.retryAttempt = 0;
|
|
213
|
+
this.readyState = this.OPEN;
|
|
214
|
+
// Start event timeout check, treating this connection
|
|
215
|
+
// as the last time we received an event
|
|
216
|
+
this.startEventTimeoutCheck(Date.now());
|
|
217
|
+
const event = new Event('open');
|
|
218
|
+
this.onopen?.(event);
|
|
219
|
+
this.dispatchEvent(event);
|
|
220
|
+
}
|
|
221
|
+
receivedData(buffer) {
|
|
222
|
+
if (this.readyState !== this.OPEN) {
|
|
223
|
+
this.logger?.error?.('invalid readyState for receiveData', {
|
|
224
|
+
readyState: this.readyState,
|
|
225
|
+
});
|
|
226
|
+
this.fireErrorEvent(new Error('InvalidState'));
|
|
227
|
+
this.scheduleReconnect();
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
if (!buffer) {
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
const slicedBuffer = buffer instanceof ArrayBuffer
|
|
234
|
+
? buffer
|
|
235
|
+
: buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
|
|
236
|
+
const arrayBuffer = slicedBuffer instanceof ArrayBuffer
|
|
237
|
+
? slicedBuffer
|
|
238
|
+
: Uint8Array.from(new Uint8Array(slicedBuffer)).buffer;
|
|
239
|
+
this.logger?.debug?.('received data', { length: arrayBuffer.byteLength });
|
|
240
|
+
this.eventParser.process(arrayBuffer, this.dispatchParsedEvent);
|
|
241
|
+
}
|
|
242
|
+
receivedError(error) {
|
|
243
|
+
if (this.readyState === this.CLOSED) {
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
this.logger?.debug?.('received error', { error });
|
|
247
|
+
this.fireErrorEvent(error);
|
|
248
|
+
if (this.readyState !== this.CLOSED) {
|
|
249
|
+
this.scheduleReconnect();
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
receivedComplete() {
|
|
253
|
+
if (this.readyState == this.CLOSED) {
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
this.logger?.debug?.('received complete');
|
|
257
|
+
this.scheduleReconnect();
|
|
258
|
+
}
|
|
259
|
+
//
|
|
260
|
+
// Reconnection
|
|
261
|
+
//
|
|
262
|
+
scheduleReconnect() {
|
|
263
|
+
this.internalClose();
|
|
264
|
+
const lastConnectionTime = this.connectionAttemptTime
|
|
265
|
+
? Date.now() - this.connectionAttemptTime
|
|
266
|
+
: 0;
|
|
267
|
+
const retryDelay = FetchEventSource.calculateRetryTime(this.retryAttempt, this.retryTime, lastConnectionTime);
|
|
268
|
+
this.retryAttempt++;
|
|
269
|
+
this.readyState = this.CONNECTING;
|
|
270
|
+
this.logger?.debug?.('scheduling reconnect', { retryDelay });
|
|
271
|
+
this.reconnectTimeoutHandle = setTimeout(() => this.internalConnect(), retryDelay);
|
|
272
|
+
}
|
|
273
|
+
static calculateRetryTime(retryAttempt, retryTime, lastConnectTime) {
|
|
274
|
+
const retryMultiplier = Math.min(retryAttempt, this.MAX_RETRY_TIME_MULTIPLIER);
|
|
275
|
+
// calculate total delay
|
|
276
|
+
let retryDelay = Math.pow(retryMultiplier, this.RETRY_EXPONENT) * retryTime;
|
|
277
|
+
// Adjust delay by the amount of time the last connection
|
|
278
|
+
// cycle took, except on the first attempt
|
|
279
|
+
if (retryAttempt > 0) {
|
|
280
|
+
retryDelay -= lastConnectTime;
|
|
281
|
+
// Ensure the delay is at least as large as
|
|
282
|
+
// the minimum retry time interval
|
|
283
|
+
retryDelay = Math.max(retryDelay, retryTime);
|
|
284
|
+
}
|
|
285
|
+
return retryDelay;
|
|
286
|
+
}
|
|
287
|
+
clearReconnect() {
|
|
288
|
+
if (this.reconnectTimeoutHandle) {
|
|
289
|
+
clearTimeout(this.reconnectTimeoutHandle);
|
|
290
|
+
}
|
|
291
|
+
this.reconnectTimeoutHandle = undefined;
|
|
292
|
+
}
|
|
293
|
+
//
|
|
294
|
+
// Event Dispatch
|
|
295
|
+
//
|
|
296
|
+
dispatchParsedEvent = (eventInfo) => {
|
|
297
|
+
this.updateLastEventReceived();
|
|
298
|
+
if (eventInfo.retry) {
|
|
299
|
+
const retryTime = Number.parseInt(eventInfo.retry, 10);
|
|
300
|
+
if (Number.isSafeInteger(retryTime)) {
|
|
301
|
+
this.logger?.debug?.('updating retry timeout', { retryTime });
|
|
302
|
+
this.internalRetryTime = retryTime;
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
this.logger?.warn?.('ignoring invalid retry timeout event', {
|
|
306
|
+
eventInfo,
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
// skip empty events
|
|
311
|
+
if (eventInfo.id == null &&
|
|
312
|
+
eventInfo.event == null &&
|
|
313
|
+
eventInfo.data == null) {
|
|
314
|
+
// skip empty events
|
|
315
|
+
this.logger?.trace?.('skipping empty event');
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
// Save last-event-id if the new id is valid
|
|
319
|
+
if (eventInfo.id != null) {
|
|
320
|
+
// Check for NULL as it is not allowed
|
|
321
|
+
if (!eventInfo.id.includes('\0')) {
|
|
322
|
+
this.lastEventId = eventInfo.id;
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
this.logger?.warn?.('event id contains NULL byte, unable to use for last-event-id');
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
// Dispatch event
|
|
329
|
+
const event = new MessageEvent(eventInfo.event ?? 'message', {
|
|
330
|
+
data: eventInfo.data,
|
|
331
|
+
lastEventId: this.lastEventId,
|
|
332
|
+
origin: this.connectionOrigin,
|
|
333
|
+
});
|
|
334
|
+
this.onmessage?.(event);
|
|
335
|
+
this.dispatchEvent(event);
|
|
336
|
+
};
|
|
337
|
+
fireErrorEvent(error) {
|
|
338
|
+
const event = new Event('error');
|
|
339
|
+
unknownSet(event, 'error', error);
|
|
340
|
+
this.onerror?.(event);
|
|
341
|
+
}
|
|
342
|
+
abortConnection() {
|
|
343
|
+
if (this.connectionAbortController) {
|
|
344
|
+
this.connectionAbortController.abort();
|
|
345
|
+
}
|
|
346
|
+
this.connectionAbortController = undefined;
|
|
347
|
+
if (this.connectionReader) {
|
|
348
|
+
void this.connectionReader.cancel()
|
|
349
|
+
.catch(() => this.logger?.warn?.('failed to cancel connection reader'));
|
|
350
|
+
try {
|
|
351
|
+
this.connectionReader.releaseLock();
|
|
352
|
+
}
|
|
353
|
+
catch {
|
|
354
|
+
// ignore
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
this.connectionReader = undefined;
|
|
358
|
+
if (this.externalAbortSignal && this.externalAbortHandler) {
|
|
359
|
+
this.externalAbortSignal.removeEventListener('abort', this.externalAbortHandler);
|
|
360
|
+
}
|
|
361
|
+
this.externalAbortSignal = undefined;
|
|
362
|
+
this.externalAbortHandler = undefined;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
//# sourceMappingURL=fetch-event-source.js.map
|