diff --git a/packages/shared/src/uri.test.ts b/packages/shared/src/uri.test.ts index 34fef348..eb41ca05 100644 --- a/packages/shared/src/uri.test.ts +++ b/packages/shared/src/uri.test.ts @@ -17,6 +17,9 @@ describe('safeEncodeURIComponent', () => { expect(safeEncodeURIComponent('\uDC00\uD800')).toBe('%EF%BF%BD%EF%BF%BD') // a well-formed pair next to a lone surrogate is kept intact expect(safeEncodeURIComponent('😀\uD83D')).toBe('%F0%9F%98%80%EF%BF%BD') + expect(safeEncodeURIComponent('\u{1F600}\uDE00')).toBe('%F0%9F%98%80%EF%BF%BD') + expect(safeEncodeURIComponent('\u{10FFFF}\uD800')).toBe('%F4%8F%BF%BF%EF%BF%BD') + expect(safeEncodeURIComponent('\uD800\u{10000}\uDFFF')).toBe('%EF%BF%BD%F0%90%80%80%EF%BF%BD') }) }) diff --git a/packages/shared/src/uri.ts b/packages/shared/src/uri.ts index 7804be01..d16700d2 100644 --- a/packages/shared/src/uri.ts +++ b/packages/shared/src/uri.ts @@ -1,5 +1,5 @@ -const LONE_SURROGATE_REGEX = - /[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?