/** * Regex that splits decoded SSE text into lines. * * The SSE wire format is line-oriented (`field: value` per line). Servers may * send `\r\n` (HTTP default), `\n` (Unix), or `\r` (legacy Mac). Matching all * three keeps parsing correct regardless of platform or server implementation. */ export const SSE_LINE_ENDINGS = /\r\n|\r|\n/; /** * Regex that matches the single optional leading space in an SSE field value. * * Per the SSE spec, `field: value` may include one space immediately after the * colon; that space is not part of the value. Used with `.replace()` to strip * it when parsing lines such as `data: hello` → `hello`. */ export const SSE_FIELD_VALUE_REGEX = /^ /; /** * Regex that matches a trailing newline at the end of a string. * * Multiple `data:` lines in one event are joined with `\n`. When the event is * completed, this removes any stray trailing newline so callers receive the * payload without an extra line break at the end. */ export const SSE_TRAILING_NEWLINE_REGEX = /\n$/; /** * The newline character used when normalizing SSE text internally. * * Used to join consecutive `data:` lines into one payload and to reassemble * buffered partial lines between streamed chunks before the next parse call. */ export const NEW_LINE = '\n';