+15
-2
@@ -17,8 +17,21 @@ persistent search history.
|
||||
archives and text files into deterministic checked-in source data. It derives
|
||||
names, aliases, general categories, scripts, blocks, ages, bidi and case
|
||||
properties, emoji, named sequences, selected Unihan fields, and UTS #39
|
||||
confusable mappings. Private-use and surrogate ranges are not expanded into
|
||||
synthetic catalog records.
|
||||
confusable mappings. The code chart virtualizes complete Unicode block or
|
||||
custom-range traversal into fixed row windows, requesting at most 512 entries
|
||||
from the worker. Assigned records come from the pinned catalog; missing entries
|
||||
are classified explicitly as unassigned, private-use, surrogate, or
|
||||
noncharacter instead of being omitted. Private-use and surrogate ranges are not
|
||||
expanded into the checked-in catalog itself.
|
||||
|
||||
The generated catalog also includes lazy worker shards for the checksum-pinned
|
||||
UTS #39 `IdentifierStatus.txt` and `IdentifierType.txt` ranges. Worker analysis
|
||||
loads them with the confusable table only when requested, applies those exact
|
||||
ranges per scalar, creates NFD skeletons, and emits structured diagnostics plus
|
||||
an intentionally conservative restriction-level estimate. `unicode/graphemes.ts` layers bounded structural
|
||||
inspection and small sequence-editing operations on the shared
|
||||
`Intl.Segmenter` wrapper; those operations construct code-point sequences but
|
||||
do not alter or validate the pinned RGI emoji catalog.
|
||||
|
||||
Rendering, normalization and grapheme segmentation use the current browser and
|
||||
operating-system Unicode implementation, which can differ from the pinned
|
||||
|
||||
@@ -6,16 +6,26 @@ versioned static catalog files and never sends search terms or inspected text.
|
||||
Input is rendered as React text, not executable HTML.
|
||||
|
||||
Text inspection is limited to 1,000,000 UTF-16 code units, scalar decoding to
|
||||
10,000 values, catalog results to 180, emoji results to 240, and displayed
|
||||
confusable mappings to 500. Large static datasets are held in a worker so the
|
||||
UI can remain responsive. Unihan data loads only on demand.
|
||||
10,000 values, catalog results to 180, emoji results to 240, displayed
|
||||
confusable mappings to 500, and each virtual code-chart worker request to 512
|
||||
entries. Large static datasets are held in a worker and chart rows are
|
||||
virtualized so the UI can remain responsive. Unihan data loads only on demand.
|
||||
|
||||
UTS #39 skeleton equivalence and mixed-script detection are review signals.
|
||||
They are not proof of spoofing, maliciousness, safety, or identifier validity;
|
||||
applications still need a context-specific identifier profile and policy.
|
||||
UTS #39 skeleton equivalence, pinned identifier status/type, mixed-script
|
||||
detection, bidi/default-ignorable controls, repeated combining marks and the
|
||||
displayed restriction-level estimate are review signals. They are not proof of
|
||||
spoofing, maliciousness, safety, or identifier validity; applications still
|
||||
need a context-specific identifier profile and policy. The comparison field
|
||||
tests skeleton equivalence only and does not perform account or domain lookup.
|
||||
Character glyphs come from the user's fonts, so a missing or surprising glyph
|
||||
does not alter the underlying code point.
|
||||
|
||||
Emoji editing removes or inserts specific variation selectors and skin-tone
|
||||
modifiers or joins 2–8 grapheme parts with ZWJ. It intentionally refuses
|
||||
ambiguous selector editing inside an existing ZWJ sequence, and it does not
|
||||
promise that constructed output is RGI, semantically appropriate, supported by
|
||||
the current font, or rendered as a single glyph.
|
||||
|
||||
Developers can regenerate the catalog, but every upstream byte sequence must
|
||||
match a hard-coded SHA-256 before parsing. The public release performs no such
|
||||
download. Data source identities are inspectable and exportable from the app.
|
||||
|
||||
Reference in New Issue
Block a user