Check blocked words against alphabet case-insensitively #7
+4
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The blocklist should be treated case-insensitively, which it is in
isBlockedId
:sqids-spec/src/index.ts
Lines 310 to 311 in 2127f4d
...but not in the constructor during the "cleanup" of the blocklist. If you have an alphabet like this (only uppercase letters):
The logic for cleaning up the blocklist in the constructor will remove the entire blocklist:
sqids-spec/src/index.ts
Lines 49 to 63 in 2127f4d
Specifically because of this:
And more specifically this part
sqids-spec/src/index.ts
Line 58 in 2127f4d
Where
includes
is doing case-sensitive comparisons.This means you could end up with IDs that contain profanity, e.g.
FUCK
,BITCH
,SEXY
, etc.I haven't added tests yet because I want the bug to be acknowledged first.