moderator-toolbox-nxg-for-reddit / util/wiki/schemas/usernotes/schema
util/wiki/schemas/usernotes/schema¶
Functions¶
formatArchiveAttribution()¶
formatArchiveAttribution(
by):string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:49
Renders a human-readable actor for an archive/delete attribution, mapping the sentinel archiver values to friendly phrases and otherwise formatting the acting mod’s username.
Parameters¶
by¶
string
The archived.by value (a username or one of the archiver sentinels).
Returns¶
string
isNoteActive()¶
isNoteActive(
note):boolean
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:102
Returns true when a note is not archived.
Parameters¶
note¶
Returns¶
boolean
Interfaces¶
ConstantPools¶
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:199
Constant pools used to compress repeated strings in the deflated format.
Properties¶
users¶
users:
string[]
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:200
warnings¶
warnings:
string[]
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:201
DecompressedBlob¶
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:205
Usernotes data after blob decompression but before inflation.
Properties¶
constants¶
constants:
ConstantPools
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:207
users¶
users:
Record<string,DeflatedUser>
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:208
ver¶
ver:
6
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:206
DeflatedNote¶
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:185
Compact on-disk representation of a single usernote (deflated form).
Properties¶
l¶
l:
string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:189
m¶
m:
number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:188
n¶
n:
string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:186
t¶
t:
number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:187
w¶
w:
number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:190
DeflatedUser¶
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:194
Compact on-disk representation of a user’s notes.
Properties¶
ns¶
ns:
DeflatedNote[]
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:195
ExistingNote¶
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:58
A usernote as displayed/edited in the popup, addressed by its per-user index.
Properties¶
archived?¶
optionalarchived?:NoteAttribution
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:72
Set when the note is archived (hidden but kept).
id¶
id:
number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:60
The note’s stable per-user index.
link?¶
optionallink?:string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:68
messageLink?¶
optionalmessageLink?:string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:70
Full URL of the removal message (modmail) sent alongside this note, if any.
mod¶
mod:
string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:65
Username of the moderator who created the note.
note¶
note:
string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:63
time¶
time:
number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:67
Creation timestamp in epoch seconds.
type¶
type:
string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:62
Note type key, or empty string for no type.
NoteAttribution¶
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:23
Attribution for an archive action: who archived the note and when (epoch seconds).
Properties¶
at¶
at:
number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:25
by¶
by:
string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:24
NxgShardNote¶
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:238
A note inside the NXG shard payload. Human-readable on purpose: named keys,
the mod inline (zlib makes string pooling pointless), epoch-second times, and
full subreddit-relative permalinks. type/link/archived are omitted
when empty.
Properties¶
archived?¶
optionalarchived?:NoteAttribution
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:250
index¶
index:
number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:239
link?¶
optionallink?:string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:247
Subreddit-relative permalink, e.g. /r/sub/comments/abc/-/def/.
messageLink?¶
optionalmessageLink?:string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:249
Full URL of the removal message (modmail) sent alongside this note.
mod¶
mod:
string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:244
Username of the moderator who created the note.
note¶
note:
string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:240
time¶
time:
number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:242
Creation timestamp in epoch seconds.
type?¶
optionaltype?:string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:245
NxgShardUserRecord¶
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:254
One user’s record inside the NXG shard payload.
Properties¶
nextIndex¶
nextIndex:
number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:256
The next note index to assign; persisted so indexes are never reused.
notes¶
notes:
NxgShardNote[]
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:257
NxgUsernotesShardPage¶
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:225
An NXG usernotes shard page: a small envelope around the compressed payload.
Properties¶
blob¶
blob:
string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:229
base64(zlib(payload JSON)) - see NxgShardPayload.
format¶
format:
"nxg-usernotes"
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:226
ver¶
ver:
1
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:227
PruneOptions¶
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:142
Configuration for a usernote prune operation.
Properties¶
pruneAction?¶
optionalpruneAction?:"delete"|"archive"|"purge"
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:166
What happens to notes that match the prune criteria:
'delete'(default): matching notes are permanently removed. On NXG storage, empty user records are retained so theirnextIndexis preserved; on legacy v6 storage they are removed.'purge': like delete, but empty user records are also removed on NXG storage.'archive': matching notes are marked as archived instead of deleted.
pruneArchived?¶
optionalpruneArchived?:ArchivedMode
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:158
How archived notes are treated during pruning:
'include'(default): archived and non-archived notes are both eligible for pruning.'exclude': archived notes are skipped and kept regardless of other criteria.'only': only archived notes are eligible for pruning.
pruneByNoteAge¶
pruneByNoteAge:
boolean
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:143
pruneByNoteAgeDays?¶
optionalpruneByNoteAgeDays?:number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:147
Age limit expressed in days, used for display.
pruneByNoteAgeLimit¶
pruneByNoteAgeLimit:
number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:145
Maximum note age threshold in milliseconds.
pruneByUserDeleted¶
pruneByUserDeleted:
boolean
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:167
pruneByUserInactivity¶
pruneByUserInactivity:
boolean
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:169
pruneByUserInactivityLimit¶
pruneByUserInactivityLimit:
number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:171
Inactivity threshold in milliseconds; users with no posts/comments newer than this are pruned.
pruneByUserSuspended¶
pruneByUserSuspended:
boolean
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:168
pruneNoteTypeMode?¶
optionalpruneNoteTypeMode?:"all"|"include"|"exclude"
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:149
How the pruneNoteTypes list is applied: include only those kinds, exclude them, or prune all kinds.
pruneNoteTypes?¶
optionalpruneNoteTypes?:string[]
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:151
Type keys to include or exclude, depending on pruneNoteTypeMode.
PruneProgress¶
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:175
Progress update emitted during a prune operation for display in the UI.
Properties¶
checkedUsers?¶
optionalcheckedUsers?:number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:177
currentUser?¶
optionalcurrentUser?:string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:180
Username currently being checked, for display during account-status checks.
message¶
message:
string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:181
stage¶
stage:
"preparing"|"checkingUsers"|"rateLimited"|"confirming"|"saving"|"complete"
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:176
totalUsers?¶
optionaltotalUsers?:number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:178
RawUsernotesBlob¶
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:212
Usernotes data as stored on-disk in schema v6 (users blob-compressed, constants plain).
Properties¶
blob¶
blob:
string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:214
constants¶
constants:
ConstantPools
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:215
ver¶
ver:
6
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:213
UserNoteColor¶
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:10
Properties¶
autoArchiveDays?¶
optionalautoArchiveDays?:number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:19
If set, notes of this type older than this many days (0 = immediately) are archived during saves.
banDuration?¶
optionalbanDuration?:number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:17
If set, auto-ban is offered when leaving this note type. 0 = permanent, positive integer = days.
color¶
color:
string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:13
colorDark?¶
optionalcolorDark?:string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:15
Color used in dark mode. Falls back to color when absent.
key¶
key:
string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:11
text¶
text:
string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:12
UserNoteEntry¶
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:76
A single usernote entry as stored in the wiki data.
Properties¶
archived?¶
optionalarchived?:NoteAttribution
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:98
Set when the note is archived (hidden by default but kept).
index?¶
optionalindex?:number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:83
Stable per-user note index, assigned from the user’s nextIndex at
creation and never reused. (username, index) is the unambiguous note
address for third-party tools. Ephemeral (position-derived) for data
read from legacy v6 pages; durable once stored in the NXG layout.
link?¶
optionallink?:string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:90
messageLink?¶
optionalmessageLink?:string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:96
Full URL of the removal message (modmail) sent alongside this note, if any. NXG-only: the legacy v6 page has a single squashed link slot, so the derived legacy mirror drops this field.
mod¶
mod:
string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:87
Username of the moderator who created the note.
note¶
note:
string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:84
time¶
time:
number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:89
Creation timestamp in epoch seconds.
type?¶
optionaltype?:string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:85
UserNotesData¶
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:107
The fully inflated usernotes data structure for a subreddit.
Properties¶
corrupted?¶
optionalcorrupted?:boolean
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:118
True when the data was found to contain malformed entries that were silently dropped on load.
types?¶
optionaltypes?:UserNoteColor[]
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:116
Usernote type definitions. The NXG usernotes manifest embeds these,
making the sharded layout self-contained; legacy v6 pages get them
seeded from the subreddit config (usernoteColors) or the built-in
defaults on load.
users¶
users:
Record<string,UsernotesUser>
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:109
ver¶
ver:
number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:108
UsernotesUser¶
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:122
All notes for a single Reddit user within a subreddit.
Extended by¶
Properties¶
name¶
name:
string
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:123
nextIndex?¶
optionalnextIndex?:number
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:129
The next note index to assign for this user. Persisted (not derived)
so indexes are never reused, even after notes are deleted or pruned.
notes¶
notes:
UserNoteEntry[]
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:124
Type Aliases¶
ArchivedMode¶
ArchivedMode =
"include"|"exclude"|"only"
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:139
How archived notes are treated by an operation that filters or selects notes (the browse filter and the prune executor share this vocabulary):
'include': archived and active notes alike.'exclude': only active notes; archived ones are skipped/hidden.'only': only archived notes.
NxgShardPayload¶
NxgShardPayload =
Record<string,NxgShardUserRecord>
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:261
The decompressed NXG shard payload: username -> user record, names sorted.
Variables¶
AUTO_ARCHIVER¶
constAUTO_ARCHIVER:"[auto]"='[auto]'
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:42
Sentinel archived.by value for notes archived automatically by the
per-type auto-archive sweep that runs on save. Brackets cannot appear in
reddit usernames, so this can’t collide. Rendered in the UI as
“auto-archived”.
defaultUsernoteTypes¶
constdefaultUsernoteTypes:UserNoteColor[]
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:270
Built-in usernote type definitions used when a subreddit has no custom
configuration. The dark colors match what classic toolbox’s dark-mode
CSS filter (invert(90%) hue-rotate(180deg)) produces for the light
colors, except abusewarn, which is hand-tuned for readability (the
filter output #9e5600 is too dim on dark backgrounds).
LEGACY_DELETION_ARCHIVER¶
constLEGACY_DELETION_ARCHIVER:"[6.x]"='[6.x]'
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:34
Sentinel archived.by value for notes archived because they were deleted
on the legacy 6.x wiki page - a page diff cannot attribute the acting mod.
Brackets cannot appear in reddit usernames, so this can’t collide.
Rendered in the UI as “archived via 6.x delete”.
notesMaxSchema¶
constnotesMaxSchema:6=6
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:8
Maximum schema version this build can read.
notesMinSchema¶
constnotesMinSchema:6=6
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:6
Minimum schema version this build can read.
notesSchema¶
constnotesSchema:6=6
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:4
Current (write) schema version.
NXG_USERNOTES_FORMAT¶
constNXG_USERNOTES_FORMAT:"nxg-usernotes"='nxg-usernotes'
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:219
Format marker for NXG usernotes shard pages.
NXG_USERNOTES_VER¶
constNXG_USERNOTES_VER:1=1
Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:222
Current NXG usernotes shard schema version.