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

UserNoteEntry

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

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?

optional archived?: 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.

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?

optional archived?: 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?

optional link?: string

Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:247

Subreddit-relative permalink, e.g. /r/sub/comments/abc/-/def/.

messageLink?

optional messageLink?: 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?

optional type?: 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?

optional pruneAction?: "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 their nextIndex is 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?

optional pruneArchived?: 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?

optional pruneByNoteAgeDays?: 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?

optional pruneNoteTypeMode?: "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?

optional pruneNoteTypes?: 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?

optional checkedUsers?: number

Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:177

currentUser?

optional currentUser?: 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?

optional totalUsers?: 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?

optional autoArchiveDays?: 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?

optional banDuration?: 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?

optional colorDark?: 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?

optional archived?: NoteAttribution

Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:98

Set when the note is archived (hidden by default but kept).

index?

optional index?: 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?

optional link?: string

Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:90

messageLink?

optional messageLink?: 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?

optional type?: 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?

optional corrupted?: 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?

optional types?: 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?

optional nextIndex?: 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

const AUTO_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

const defaultUsernoteTypes: 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

const LEGACY_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

const notesMaxSchema: 6 = 6

Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:8

Maximum schema version this build can read.


notesMinSchema

const notesMinSchema: 6 = 6

Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:6

Minimum schema version this build can read.


notesSchema

const notesSchema: 6 = 6

Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:4

Current (write) schema version.


NXG_USERNOTES_FORMAT

const NXG_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

const NXG_USERNOTES_VER: 1 = 1

Defined in: extension/data/util/wiki/schemas/usernotes/schema.ts:222

Current NXG usernotes shard schema version.